返回博客列表

AI应用构建思路

2026-01-29
2 min read
技术原理

!! abstract 🌈 本地部署 ChatGPT 系统(支持 MCP 工具调用 & 本地知识库 & Token 计费) !!! 前端基于 Vue,后端基于 Java Spring Boot,支持与 OpenAI API 或本地大语言模型(LLM)交互,具备以下特点: 支持 多模态对话(文本、图片、音频、文件)。 - 支持 本地知识库(用户可上传文档并参与问答)。 - 支持 本地 MCP 工...

!!! abstract 🌈 本地部署 ChatGPT 系统(支持 MCP 工具调用 & 本地知识库 & Token 计费) !!!

前端基于 Vue,后端基于 Java Spring Boot,支持与 OpenAI API 或本地大语言模型(LLM)交互,具备以下特点:

  • 支持 多模态对话(文本、图片、音频、文件)。
  • 支持 本地知识库(用户可上传文档并参与问答)。
  • 支持 本地 MCP 工具调用(集成模型工具扩展能力)。
  • 支持 会话管理、LLM 配置、Token 计费统计。
  • 完全本地运行,保证数据隐私。

Java 本地部署 + MCP 直连 + Vue 前端

bash
          ┌────────────────────────────────────────────────────────┐
          │                     用户本地环境                        │
          └────────────────────────────────────────────────────────┘

                ┌───────────────┐
                │ Vue 前端 (UI) │
                │  - 聊天界面   │
                │  - 工具结果卡 │
                │  - 知识库管理 │
                └───────┬───────┘
                        │ HTTP / WebSocket
                        ▼
      ┌───────────────────────────────────────────────────────┐
      │ Java 本地服务 (Spring Boot)                            │
      │-------------------------------------------------------│
      │ ① API 层                                               │
      │   - 接收前端消息                                        │
      │   - SSE/WebSocket 流式推送                              │
      │                                                        │
      │ ② 会话管理模块                                          │
      │   - 用户消息记录(SQLite / H2 / MySQL 本地库)           │
      │   - 会话历史存储与检索                                   │
      │                                                        │
      │ ③ 知识库管理模块                                        │
      │   - 文档上传/解析(PDF, TXT, DOCX)                     │
      │   - 分词 & 向量化(本地 embedding 模型 / 调 OpenAI Embedding API)
      │   - 向量存储(SQLite+pgvector / Milvus / Chroma)        │
      │   - 相似度检索                                           │
      │                                                        │
      │ ④ LLM 连接模块                                          │
      │   - 调用 OpenAI Responses API                           │
      │   - 注册本地 MCP 工具(Remote MCP)                      │
      │                                                        │
      │ ⑤ MCP Client 模块                                       │
      │   - 直连本地 MCP Server(WebSocket / Unix Socket)       │
      │   - 执行模型工具调用                                     │
      └─────────────────┬──────────────────────────────────────┘
                         │
                         │ WebSocket / Unix Socket / Named Pipe
                         ▼
                ┌─────────────────────────┐
                │ 本地 MCP Server          │
                │  - 用户已安装的工具      │
                │  - 或你提供的工具集      │
                └─────────────────────────┘
                                           │
                           │ 工具执行(如搜索、读取文件、调用API等)
                           ▼
                ┌─────────────────────────┐
                │ 工具实际执行环境         │
                └─────────────────────────┘

关键功能模块说明

后台

用户会话管理

会话记录(问题、回复、调用工具记录) 会话检索(按时间 / 关键字 / 工具类型) 导出聊天记录(JSON / Markdown / PDF)

本地知识库

文档存储(本地文件系统 / SQLite / MySQL) 向量化处理(embedding 生成) 索引管理(如 FAISS / Milvus) 文档更新同步

MCP 工具调用

MCP 连接管理(启动 / 停止 / 重连) 工具注册 / 注销 工具元数据管理(名称、描述、输入输出结构) 工具调用日志与异常追踪

用户 LLM 服务管理 & 配置

支持多家厂商(OpenAI、Azure OpenAI、本地模型) 模型版本 & 参数配置 API Key 存储加密 LLM 可用性健康检查

Token 计费

Token 消耗统计(按会话 / 按用户) 消费趋势图表 计费规则配置(单价、免费额度) 导出账单报表(CSV / Excel)

前台

聊天页面

多模态会话框(文本、图片、音频、文件) 会话列表管理(切换历史会话) 流式输出(模型逐字输出) 工具调用结果卡片展示(搜索结果、文件内容、API结果等) 知识库关联开关(决定是否使用本地知识库增强) 模型切换(不同 LLM / 模型版本) 消息重试 / 修改后重发

管理配置页面

知识库管理

  • 知识库列表
  • 文档上传 / 删除
  • 分词与索引状态显示
  • 同步状态 & 错误日志

本地 MCP 配置

  • 已连接的 MCP 工具列表
  • 新增/删除 MCP 工具
  • MCP 连接状态监控

用户 LLM 配置

  • API Key 管理
  • 模型参数配置(温度、最大 tokens 等)
  • 模型可用性检测
返回博客列表
最后更新于 2026-01-29
想法或问题?在 GitHub Issue 下方参与讨论
去评论