⚙️

Ascent Creator 技术架构文档

代码结构 · 后端交互 · 数据库设计 · 技术栈 · 输入输出流
⚙️ 版本 v1.0 📅 2026-05-31 🏷️ 初稿

📌 文档摘要

本文档从纯技术视角出发,详细阐述 Ascent Creator 平台的技术架构设计。涵盖前端构建体系、后端API规范、数据库ER设计、AI模型网关封装、SSE流式通信协议、消息路由机制、部署拓扑、以及从输入到输出的完整数据流。目标是为开发者和技术维护者提供完整的系统理解和技术参考。

一、技术全景图

┌────────────────────────────────────────────────────────────────────┐
│                    输入层 (7通道)                                    │
├──────────┬──────────┬──────────┬─────────┬────────┬────────┬──────┤
│  Browser │  REST    │  WeChat  │Telegram │  WeCom │ Feishu │  QQ  │
│ (Vue SPA)│  API     │  Plugin  │  Bot    │  MCP   │  Bot   │ Bot  │
└─────┬────┴─────┬────┴────┬─────┴────┬────┴───┬────┴───┬────┴─────┘
      │          │         │          │        │        │
      └──────────┴─────────┴──────────┴────────┴────────┘
                        │
              ┌─────────▼──────────────────────┐
              │   OpenClaw Gateway (消息路由)     │
              │   Node.js · Channel Proxy       │
              └─────────┬──────────────────────┘
                        │
┌───────────────────────▼───────────────────────────────────────────┐
│                      Ascent Creator Backend                        │
│              Flask 3.1.0 · Werkzeug 3.1.6 · Python 3.11            │
├────────────────────────────────────────────────────────────────────┤
│  ┌─────────────────┐  ┌─────────────────┐  ┌────────────────────┐ │
│  │   API Router    │  │   SSE Stream    │  │   Model Gateway    │ │
│  │  50+ Endpoints  │  │  typewriter I/O │  │   Qwen/External   │ │
│  └─────────────────┘  └─────────────────┘  └────────────────────┘ │
│  ┌─────────────────┐  ┌─────────────────┐  ┌────────────────────┐ │
│  │   SQLite ORM    │  │   Task Queue    │  │   File Manager     │ │
│  │  19 张数据表     │  │  异步视频轮询   │  │  Upload/Deploy     │ │
│  └─────────────────┘  └─────────────────┘  └────────────────────┘ │
└────────────────────────────────────────────────────────────────────┘
            │                    │                      │
   ┌────────▼───────┐   ┌───────▼───────┐    ┌─────────▼────────┐
   │  AI 模型层      │   │  存储层       │    │  消息通道层       │
   │  Qwen3-30B     │   │  SQLite DB    │    │  WeChat SDK     │
   │  混元视频       │   │  文件系统      │    │  Telegram Bot   │
   │  Suno/Flux     │   │  COS(Object)  │    │  WeCom API      │
   └────────────────┘   └───────────────┘    └──────────────────┘
            │
   ┌────────▼───────────┬────────────┬──────────────┐
   ▼                    ▼            ▼              ▼
  平台预览   微信小程序  小红书/抖音   B站/快手   PDF导出

二、技术栈清单

2.1 前端技术栈

技术 版本 类型 用途说明
Vue 33.5.12框架Composition API + `<script setup>`,构建复杂 SPA 交互
Vite5.4.10构建工具极速 HMR、按需编译、ESM 原生模块
Vue Router4.6.4路由13 条前端路由,懒加载页面组件
Pinia3.0.4状态管理全局侧边栏状态、页面状态
Tailwind CSS3.4.17CSS 框架原子化 CSS,自定义暗色主题 + 霓虹色系
Lucide Vue Next1.0.0图标库轻量图标,Tree-shaking 友好
Axios1.16.1HTTPAPI 请求封装,拦截器处理
PostCSS8.5CSS 后处理Autoprefixer + Tailwind 插件
Tailwind Animate1.0.7动画脉冲发光、渐变等自定义动画

2.2 后端技术栈

技术 版本 类型 用途
Flask3.1.0Web 框架REST API,50+ 端点,SSE 流式支持
Werkzeug3.1.6WSGI 工具Flask 底层 WSGI 实现
Flask-CORS6.0.2跨域前后端分离跨域支持
SQLite 3内置数据库零配置关系型数据库,19 张表
Requests2.33.0HTTP 客户端调用外部 AI 模型 API
Gunicorn23.0.0WSGI 服务器生产环境部署(待启用)
Jinja 2内置模板引擎论坛模板渲染
WeasyPrint68.1PDF 生成HTML → PDF 文档导出

2.3 AI 模型对接技术

模型 协议 认证方式 数据格式 调用模式
Qwen3 (开源)OpenAI 兼容Bearer TokenJSON + SSE流式(stream=True)
混元视频 (腾讯)RESTAPI Key + Key IDJSON异步提交+轮询
Suno (音乐)RESTCookie + KeyJSON同步/异步
SDXL / FLUX (图片)REST本地直连JSON/Binary同步
外部模型 (通用)OpenAI 兼容用户配置JSON + SSE可配置

2.4 部署与环境

服务器腾讯云轻量应用服务器,2核2G
操作系统OpenCloudOS 9 (Linux 6.6)
运行时Node.js v22.22.0 (前端构建)、Python 3.11 (后端)
进程管理nohup + 手动管理(待升级为systemd)
域名/端口:5000 (创作平台) · :5001 (论坛) · :3990 (Qwen API)

三、完整代码结构

Ascent Creator Platform ├── package.json ← 前端依赖:Vue 3 + Vite + Tailwind ├── vite.config.js ← Vite 配置:proxy → :5000 ├── tailwind.config.js ← 暗色主题 + 霓虹色系 (12种主题色) ├── postcss.config.js ← PostCSS + Autoprefixer ├── index.html ← SPA 入口 │ ├── src/ ← 前端源码 (Vue 3 Composition API) │ ├── main.js ← 入口:挂载App + Router + Pinia │ ├── App.vue ← 根组件 │ ├── style.css ← 全局样式:Tailwind + 自定义霓虹玻璃 │ │ │ ├── components/ ← 通用组件 │ │ ├── AppLayout.vue ← 全局布局(响应式侧边栏) │ │ ├── ShareDialog.vue ← 分享弹窗 │ │ └── KnowledgeBasePanel.vue ← 知识库面板 │ │ │ ├── views/ ← 页面组件(14个工坊/页面) │ │ ├── Dashboard.vue ← 仪表盘(统计卡片+快捷入口) │ │ ├── WritingStudio.vue ← AI写作工坊(35KB,最重) │ │ ├── ChatStudio.vue ← AI聊天助手(34KB,SSE流式+多媒体) │ │ ├── NovelStudio.vue ← AI小说工坊(30KB,五步设定+流式章节) │ │ ├── CodeStudio.vue ← AI应用工坊(22KB,代码沙箱+部署) │ │ ├── VoiceStudio.vue ← AI语音工坊(19KB,TTS播放) │ │ ├── AvatarStudio.vue ← 数字人工坊(14KB,VRM/Live2D) │ │ ├── VideoStudio.vue ← AI视频工坊(14KB,异步+轮询) │ │ ├── Gallery.vue ← 作品广场(14KB,Grid展示) │ │ ├── MusicStudio.vue ← AI音乐工坊(12KB,Suno集成) │ │ ├── AssetLibrary.vue ← 资料库(8KB) │ │ ├── ImageStudio.vue ← AI图片工坊(8KB,SDXL/Flux) │ │ ├── ModelHub.vue ← 模型管理(5KB,配置自定义模型) │ │ └── CodeStudio-backup.vue ← 旧版备份 │ │ │ ├── router/index.js ← 13条路由,懒加载 │ ├── services/api.js ← Axios封装,所有API调用 │ └── stores/app.js ← Pinia Store:侧边栏状态 │ ├── backend/ ← 后端源码 (Flask 3.1.0, 2828行) │ ├── app.py ← 主应用(50+API端点,SSE流式) │ ├── config.py ← 模型网关配置(159行) │ ├── configs/ │ │ ├── video_api.json ← 混元视频 Key/Endpoint │ │ └── suno_api.json ← Suno音乐 Key/Endpoint │ ├── knowledge/ ← 小说知识库(用户上传) │ │ └── default/ │ ├── generated/ ← 生成文件缓存 │ ├── uploads/ ← 用户上传文件 │ └── deployed/ ← 已部署的应用 │ ├── dist/ ← 构建产物(~500KB gzip) │ └── assets/ │ ├── index-xxx.js ← 主包(~124KB gzip: 47KB) │ ├── api-xxx.js ← API层(~43KB gzip: 17KB) │ ├── ChatStudio-xxx.js ← 聊天助手(~24KB) │ ├── NovelStudio-xxx.js ← 小说工坊(~22KB) │ └── ...其他视图懒加载~ │ ├── forum/ ← 论坛系统 (位于 workspace) │ └── forum.py ← 3729行,独立Flask实例 │ ├── forum.db ← SQLite 数据库(19张表) ├── downloads_whitelist.json ← 下载白名单 │ ├── .vscode/extensions.json ← 推荐扩展 └── README.md

四、后端交互详解

4.1 API 端点总表(50+ 端点)

分组 方法 端点 说明
🤖 聊天GET/api/chat/characters获取角色列表
POST/api/chat/characters创建角色
GET/api/chat/characters/:id角色详情
PUT/api/chat/characters/:id更新角色
DELETE/api/chat/characters/:id删除角色
POST/api/chat/completions✨ SSE 流式聊天
📖 小说POST/api/novel/create创建小说
GET/api/novel/list小说列表
GET/api/novel/:id小说详情
POST/api/novel/:id/setup保存设定(5步向导)
GET/api/novel/:id/chapter/stream✨ 流式章节生成
POST/api/novel/:id/character创建/批量生成角色
POST/api/novel/:id/delete删除小说(含章节角色)
GET/POST/api/novel/:id/knowledge知识库管理
POST/api/novel/:id/ai-suggestAI 建议
🎬 视频POST/api/video/generate提交视频生成(异步)
GET/api/video/status/:task_id查询生成状态
GET/api/video/history历史记录
GET/POST/api/video/configAPI 配置管理
🎵 音乐POST/api/music/generate生成音乐
GET/api/music/list音乐列表
GET/POST/api/music/config音乐配置
👤 数字人GET/api/avatar/models模型列表
GET/api/avatar/list数字人列表
POST/api/avatar/create创建数字人
💻 部署POST/api/deploy/html部署 Web 应用
GET/api/deploy/list部署列表
🖼️ 作品GET/api/gallery/works作品列表
POST/api/gallery/work/:id/like点赞
POST/api/gallery/work/share分享
⚙️GET/api/health健康检查

4.2 SSE 流式通信协议

平台的核心交互方式之一是 SSE (Server-Sent Events) 流式输出,用于实现「打字机效果」。以下是完整协议规范:

// 请求格式(前端 → 后端) POST /api/chat/completions Content-Type: application/json Accept: text/event-stream { "messages": [ {"role": "system", "content": "角色设定..."}, {"role": "user", "content": "你好"} ], "model": "qwen3_coder_30b_a3b_instruct...", "stream": true, "character_id": 1 // 可选,指定聊天角色 } // 响应格式(后端 → 前端,SSE逐字流) data: {"content": "你"} data: {"content": "好"} data: {"content": "!"} data: {"content": "我"} data: {"content": "是"} data: {"content": "As"} data: {"content": "cent"} data: {"content": "小"} data: {"content": "助"} data: {"content": "手"} data: {"content": "。"} data: {"content": "\n"} data: {"content": "有"} data: {"content": "什"} data: {"content": "么"} data: {"content": "可"} data: {"content": "以"} data: {"content": "帮"} data: {"content": "你"} data: {"content": "的"} data: {"content": "吗"} data: {"content": "?"} data: [DONE] // 流结束标记 // 前端解析逻辑 const reader = resp.body.getReader() const decoder = new TextDecoder() let buffer = '' for(;;) { const {done, value} = await reader.read() if (done) break buffer += decoder.decode(value, {stream: true}) for (const line of buffer.split('\n')) { if (line.startsWith('data: ')) { const data = line.slice(6).trim() if (data === '[DONE]') continue const parsed = JSON.parse(data) const content = parsed.content // ✅ 直接取 content 字段 // ↑ 注意:不是 choices[0].delta.content (OpenAI格式) updateUI(content) } } }

4.3 视频生成异步轮询

腾讯混元视频 API 使用异步提交 + 轮询模式:

Step 1: 提交任务 POST https://tokenhub.tencentmaas.com/v1/api/video/submit Authorization: Bearer sk-xxx X-Api-Key-Id: ak-xxx { "model": "hy-video-1.5", "prompt": "一只可爱的小猪在唱歌" } → Response: {"id": "145255...", "status": "queued"} Step 2~N: 轮询状态(每10-30秒) POST https://tokenhub.tencentmaas.com/v1/api/video/query { "model": "hy-video-1.5", "id": "145255..." } → Response: {"status": "in_progress"} Step N+1: 完成 → Response: { "status": "completed", "data": { "url": "https://cos.ap-guangzhou...mp4" } } Step N+2: 下载并存储 → 下载视频 → 保存到 ai_video_history → 返回给前端/微信

4.4 聊天角色注入机制

AI 聊天助手通过动态 system prompt 注入角色设定:

# 后端角色注入逻辑 (app.py) if character_id: row = db.execute("SELECT * FROM ai_chat_characters WHERE id=?", (character_id,)) char = dict(row) # 构造角色 system prompt system_prompt = '''你正在扮演以下角色,必须完全以这个身份说话。 【角色设定】 姓名:{name} 外貌:{appearance} 性格:{personality} 背景故事:{background} 对话风格:{style} 【知识库】{knowledge} ''' # 注入到消息列表首位 messages.insert(0, {"role": "system", "content": system_prompt}) # 为防止Qwen忽略system角色,追加用户消息强化 messages.append({ "role": "user", "content": "从现在开始,你是{name},不是其他任何AI。请以这个身份和我对话。" })

五、数据库设计

5.1 ER 关系图(核心模块)

┌───────────────────────────────────────────────────────────────┐ │ Ascent Creator 数据关系 │ ├───────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ AI 小说模块 │ │ │ │ │ │ │ │ ai_novels (主表) │ │ │ │ ├── ai_novel_chapters (章节) ──── novel_id ──────┘ │ │ │ ├── ai_novel_characters (角色) ──── novel_id ──────┐ │ │ │ ├── ai_novel_knowledge (知识库) ── novel_id ──────┐│ │ │ │ ├── ai_novel_settings (设定) ──── novel_id ──────┘│ │ │ │ └── ai_novel_world_items (世界观) ─ novel_id ─────┘ │ │ │ │ │ │ └──────────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌────────────────────┐ │ │ │ AI 视频模块 │ │ AI 音乐模块 │ │ AI 聊天角色模块 │ │ │ │ ai_video_ │ │ ai_music │ │ ai_chat_ │ │ │ │ history │ │ │ │ characters │ │ │ │ ai_videos │ │ │ │ (独立表,10+字段) │ │ │ └──────────────┘ └──────────────┘ └────────────────────┘ │ │ │ │ ┌──────────────┐ ┌────────────────────────────────────┐ │ │ │ 论坛模块 │ │ 投资理财模块 │ │ │ │ users │ │ portfolio / portfolio_history │ │ │ │ posts │ │ portfolio_cash / nav_history │ │ │ │ replies │ │ futures_sentiment / books │ │ │ │ post_likes │ │ news_sources │ │ │ └──────────────┘ └────────────────────────────────────┘ │ └───────────────────────────────────────────────────────────────┘

5.2 核心表 DDL

-- AI 小说主表 CREATE TABLE ai_novels ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, genre TEXT, theme TEXT, style TEXT, target_audience TEXT, core_idea TEXT, setting TEXT, outline TEXT, protagonist TEXT, setup_step INTEGER DEFAULT 0, setup_completed INTEGER DEFAULT 0, current_chapter INTEGER DEFAULT 0, total_chapters INTEGER DEFAULT 0, status TEXT DEFAULT 'draft', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- AI 聊天角色 CREATE TABLE ai_chat_characters ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, avatar TEXT, personality TEXT, appearance TEXT, background TEXT, knowledge TEXT, expressions TEXT, greeting TEXT, style TEXT DEFAULT 'normal', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

六、模型网关封装

所有 AI 模型调用通过统一的「模型网关层」进行抽象和管理,这是平台实现模型集成设计的核心技术组件。平台集成各类开源、闭源模型,在模型管理里面管理各类模型。用户可以使用我们自带的开源模型(如 Qwen3-30B),也可以使用自己从云服务商购买的闭源模型(如GPT-4、通义千问等),只需在模型管理中配置API Base和Key即可使用:

┌──────────────────────────────────────────┐ │ 模型网关抽象层 │ │ call_llm_stream(messages, model_id) │ ├──────────────────────────────────────────┤ │ │ │ 1. 从 config.MODELS 获取模型配置 │ │ → api_base, api_key, temperature │ │ → max_tokens, top_p, frequency_penalty│ │ │ │ 2. 构造统一请求 payload │ │ → {"model": ..., "messages": ..., │ │ "stream": true, "temperature": ...} │ │ │ │ 3. 添加认证头 │ │ → headers["Authorization"] = Bearer │ │ │ │ 4. 发起流式请求 + 逐行 yield │ │ → requests.post(stream=True) │ │ → for line in resp.iter_lines(): │ │ yield "data: " + line │ │ │ │ 5. 统一响应格式 │ │ → data: {"content": "逐字内容"} │ │ → data: [DONE] │ └──────────────────────────────────────────┘ // config.py 模型配置示例(可动态扩展) MODELS = { "qwen3_coder_30b_a3b_instruct...": { "display_name": "Qwen3-Coder-30B", "type": "code", "context_length": 262144, "capabilities": ["chat", "code", "writing"], "completion_options": { "temperature": 0.6, "max_tokens": 4096, "top_p": 0.95, }, }, # 用户可以在此添加自定义模型: # "my_gpt4": { # "display_name": "我的GPT-4o", # "type": "llm", # "api_base": "https://api.openai.com/v1", # "api_key": "sk-xxx", # "context_length": 128000, # ... # } }

七、输入输出数据流

7.1 完整数据流图

场景:用户在微信上发送「帮我生成一只小猪唱歌的动画视频」 [微信] [OpenClaw Gateway] [Ascent Backend] [TokenHub API] │ │ │ │ │── 发送消息 ───────────────►│ │ │ │ │── POST /api/video/generate ──►│ │ │ │ │── POST /video/submit ──►│ │ │ │◄── {"id":"xxx"} ──────│ │ │◄── {task_id:"xxx"} ────│ │ │◄── "视频生成已提交,等待中..."─┤ │ │ │ │ │ │ │ │ [每15秒轮询] │ │ │ │── GET /api/video/status/xxx ──►│ │ │ │ │── POST /video/query ──►│ │ │ │◄── {"status":"pending"}│ │ │◄── {"status":"pending"}──│ │ │ │ ...重复... │ │ │ │ │── POST /video/query ──►│ │ │ │◄── {"status":"completed", │ │ │ "data.url":"..."} │ │ │ │── 下载视频到本地 │ │ │◄── video_url ──────────│ │ │◄── 发送视频文件 ────────────┤ │ │ │ │ │ │ 场景:用户在Web端与AI聊天助手对话 [浏览器] [Vite Dev/Static] [Flask Backend] [Qwen3-30B] │ │ │ │ │── 输入"你好" ───────────────► │ │ │ │── POST /api/chat/completions ──►│ │ │ │ {messages: [...], │ │ │ │ stream: true, │── POST /v1/chat/completions ──►│ │ │ character_id: 1} │ (SSE stream) │ │ │ │◄── data: {"content":"你"}──│ │ │◄── data: {"content":"你"}│ │ │◄── 显示"你" ───────────────┤ │ │ │ │◄── data: {"content":"好"}│◄── {"content":"好"} │ │◄── 显示"好" ───────────────┤ │ │ │ │ ...逐字流... │ ...逐字流... │ │ │◄── data: [DONE] ───────│◄── [DONE] │ │ │ │ │

7.2 输入 → 输出映射表

输入方式 AI 模型 处理耗时 输出格式 交付渠道
💬 文字输入Qwen3-30B实时SSE流式文本Web · 微信 · Telegram
🎨 图片描述SDXL/Flux5-15秒PNG/JPGWeb · 微信 · 小红书
🎬 视频描述混元hy-v1.530-120秒MP4Web · 微信 · 抖音 · B站
🎵 音乐描述Suno v420-60秒MP3/WAVWeb · 微信
🎤 文字转语音TTS模型3-10秒MP3Web · 微信
📖 小说设定Qwen3-30B实时SSE流式文本(章节)Web · PDF导出
💻 应用描述Qwen3-30B10-30秒HTML/JS/CSSWeb · 部署链接
👤 数字人VRM/Live2D即时3D模型/动画Web嵌入

7.3 多路输入输出拓扑

╔══════════════════════════════════════════════════════════════════╗ ║ Ascent Creator 多路 I/O ║ ╠══════════════════════════════════════════════════════════════════╣ ║ ║ ║ 输入端口 (7) 输出渠道 (12) ║ ║ ┌────────────┐ ┌──────────────┐ ║ ║ │ 💻 Web端 │ │ 🖥️ 平台预览 │ ║ ║ │ 🔌 API │ │ 📱 微信小程序 │ ║ ║ │ 💬 微信 │ ┌───────────┐ │ 💬 微信发送 │ ║ ║ │ 📱Telegram│──►│ Ascent │──►│ 📕 小红书 │ ║ ║ │ 🏢 企微 │ │ Creator │ │ 🎵 抖音 │ ║ ║ │ 📎 飞书 │ │ 核心引擎 │ │ 📺 B站 │ ║ ║ │ 🐧 QQ │ └───────────┘ │ ⚡ 快手 │ ║ ║ └────────────┘ │ 📲 Telegram │ ║ ║ │ 🎭 短剧平台 │ ║ ║ │ 📄 PDF导出 │ ║ ║ 任何输入端口 │ 🔗 分享链接 │ ║ ║ → 选择AI模型 │ 🔄 小程序裂变 │ ║ ║ → 生成内容 └──────────────┘ ║ ║ → 选择输出渠道 ║ ║ → 一键分发 一次创作,12渠道触达 ║ ╚══════════════════════════════════════════════════════════════════╝

八、消息通道架构

8.1 OpenClaw Gateway 消息路由

平台的消息通道层基于 OpenClaw Gateway 实现,它是一个独立于后端服务的消息路由中间件:

通道 实现方式 消息格式 文件支持 状态
微信企业微信个人号插件文本/图片/视频/文件✅ 视频/图片/语音✅ 运行中
TelegramTelegram Bot API文本/媒体/内联键盘✅ 全部📋 开发中
企业微信MCP Server 协议JSON-RPC✅ 文档📋 规划中
飞书飞书 Bot API消息卡片/文本✅ 全部📋 规划中
QQQQ Bot (Go-Mirai)文本/图片✅ 图片📋 规划中

8.2 后端启动流程

// 启动顺序 1. Qwen 模型服务(vllm serve qwen3...)→ :3990 2. Ascent 平台后端(python3 backend/app.py)→ :5000 3. 论坛服务(python3 forum.py)→ :5001 4. OpenClaw Gateway(消息通道管理) // 启动命令 cd /root/models_20260529220733/ai-creator-platform nohup python3 backend/app.py > /tmp/app.log 2>&1 & cd /root/.openclaw/workspace nohup python3 -c " from forum import app app.run(host='0.0.0.0', port=5001, debug=False) " > /tmp/forum_5001.log 2>&1 & // 构建前端 cd /root/models_20260529220733/ai-creator-platform npm run build # → dist/ 前端静态文件 // 健康检查 curl http://localhost:5000/api/health → 200 OK curl http://localhost:5001/ → 200 HTML

九、前端架构详解

9.1 组件层次结构

App.vue ← 根组件 └── AppLayout.vue ← 全局布局(侧边栏+顶栏+主内容区) ├── router-view (仪表盘) ← Dashboard.vue ├── router-view (写作) ← WritingStudio.vue ├── router-view (图片) ← ImageStudio.vue ├── router-view (视频) ← VideoStudio.vue │ ├── ShareDialog.vue ← 分享弹窗(复用组件) ├── router-view (音乐) ← MusicStudio.vue ├── router-view (语音) ─ VoiceStudio.vue ├── router-view (聊天) ─ ChatStudio.vue │ └── 多媒体内联渲染(IMAGE/VIDEO/HTML) ├── router-view (小说) ─ NovelStudio.vue │ ├── KnowledgeBasePanel.vue ← 知识库面板(复用组件) ├── router-view (应用) ─ CodeStudio.vue ├── router-view (数字人) ─ AvatarStudio.vue ├── router-view (模型管理) ─ ModelHub.vue └── router-view (作品广场) ─ Gallery.vue

十、附录

10.1 服务地址

Ascent Creator 平台http://82.156.214.59:5000
学习论坛http://82.156.214.59:5001
Qwen 模型 APIhttp://123.58.111.244:3990/v1
数据库路径/root/.openclaw/workspace/forum.db

10.2 技术栈速查表

┌──────────────┬──────────────────────────────────────┐ │ 前端框架 │ Vue 3.5 + Vite 5.4 + Pinia 3 │ │ CSS 方案 │ Tailwind 3.4 + 自定义暗色主题 │ │ 前端路由 │ Vue Router 4.6 (13条) │ │ HTTP 请求 │ Axios 1.16 (统一拦截器) │ │ 图标 │ Lucide Vue Next 1.0 (40+图标) │ ├──────────────┼──────────────────────────────────────┤ │ 后端框架 │ Flask 3.1 (2828行, 50+API) │ │ 数据库 │ SQLite 3 (19张表) │ │ AI 协议 │ OpenAI API 兼容 + SSE 流式 │ │ 外部调用 │ Requests 2.33 │ │ PDF 生成 │ WeasyPrint 68.1 │ ├──────────────┼──────────────────────────────────────┤ │ 构建产物 │ ~500KB gzip (首页124KB, 其余懒加载) │ │ 部署方式 │ nohup + Flask Dev Server │ │ 操作系统 │ OpenCloudOS 9 (Linux 6.6) │ │ 运行环境 │ Node 22 + Python 3.11 │ │ 消息通道 │ OpenClaw Gateway (Node.js) │ └──────────────┴──────────────────────────────────────┘

⚙️ Ascent Creator 技术架构

平台::5000 · 论坛::5001