AI应用构建思路
技术原理
!!! 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
12 ▼
13 ┌───────────────────────────────────────────────────────┐
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 └─────────────────┬──────────────────────────────────────┘
38 │
39 │ WebSocket / Unix Socket / Named Pipe
40 ▼
41 ┌─────────────────────────┐
42 │ 本地 MCP Server │
43 │ - 用户已安装的工具 │
44 │ - 或你提供的工具集 │
45 └─────────────────────────┘
46 │
47 │ 工具执行(如搜索、读取文件、调用API等)
48 ▼
49 ┌─────────────────────────┐
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 等)
- 模型可用性检测