项目概况

AI应用构建思路

2026-01-292 min read未分类
技术原理

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

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

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

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

bash
1 ┌────────────────────────────────────────────────────────┐ 2 │ 用户本地环境 │ 3 └────────────────────────────────────────────────────────┘ 4 5 ┌───────────────┐ 6 │ Vue 前端 (UI)7 │ - 聊天界面 │ 8 │ - 工具结果卡 │ 9 │ - 知识库管理 │ 10 └───────┬───────┘ 11 │ HTTP / WebSocket 1213 ┌───────────────────────────────────────────────────────┐ 14 │ Java 本地服务 (Spring Boot)15 │-------------------------------------------------------│ 16 │ ① API 层 │ 17 │ - 接收前端消息 │ 18 │ - SSE/WebSocket 流式推送 │ 19 │ │ 20 │ ② 会话管理模块 │ 21 │ - 用户消息记录(SQLite / H2 / MySQL 本地库) │ 22 │ - 会话历史存储与检索 │ 23 │ │ 24 │ ③ 知识库管理模块 │ 25 │ - 文档上传/解析(PDF, TXT, DOCX) │ 26 │ - 分词 & 向量化(本地 embedding 模型 / 调 OpenAI Embedding API) 27 │ - 向量存储(SQLite+pgvector / Milvus / Chroma) │ 28 │ - 相似度检索 │ 29 │ │ 30 │ ④ LLM 连接模块 │ 31 │ - 调用 OpenAI Responses API │ 32 │ - 注册本地 MCP 工具(Remote MCP) │ 33 │ │ 34 │ ⑤ MCP Client 模块 │ 35 │ - 直连本地 MCP Server(WebSocket / Unix Socket) │ 36 │ - 执行模型工具调用 │ 37 └─────────────────┬──────────────────────────────────────┘ 3839 │ WebSocket / Unix Socket / Named Pipe 4041 ┌─────────────────────────┐ 42 │ 本地 MCP Server │ 43 │ - 用户已安装的工具 │ 44 │ - 或你提供的工具集 │ 45 └─────────────────────────┘ 4647 │ 工具执行(如搜索、读取文件、调用API等) 4849 ┌─────────────────────────┐ 50 │ 工具实际执行环境 │ 51 └─────────────────────────┘ 52

关键功能模块说明

后台

用户会话管理

会话记录(问题、回复、调用工具记录) 会话检索(按时间 / 关键字 / 工具类型) 导出聊天记录(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 等)
  • 模型可用性检测