一个面向学习目的的全栈 AI 对话平台,渐进式覆盖主流 AI 概念:Prompt 管理、多模型路由、函数调用、RAG、MCP、技能系统、Agent 智能体。
| 层 | 技术 |
|---|---|
| 后端 | Java 17 + Spring Boot 3 + Spring AI |
| 前端 | React 18 + TypeScript + Vite + Ant Design |
| 数据库 | PostgreSQL + PGVector |
| AI SDK | Spring AI (OpenAI / Ollama) |
- Java 17+
- Node.js 18+
- Maven 3.8+
- PostgreSQL 15+ (可选,也支持 H2 内存数据库)
- Python 3.10+ (MCP 示例服务器)
# Docker 方式启动 PostgreSQL
docker run -d --name ai-platform-db \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=ai_platform \
-p 5432:5432 postgres:16cd backend
# 设置 API Key
set OPENAI_API_KEY=sk-xxxxx
# 启动
mvnw spring-boot:run后端运行在 http://localhost:8080
cd frontend
npm install
npm run dev前端运行在 http://localhost:5173
# 在另一个终端
python mcp-examples/filesystem-server.py然后在 MCP 管理页面添加配置:
- 名称:
filesystem - 命令:
python - 参数:
mcp-examples/filesystem-server.py
AI_Platform_2/
├── backend/ # Spring Boot 后端
│ ├── pom.xml
│ └── src/main/java/com/aiplatform/
│ ├── ChatApplication.java
│ ├── chat/ # 对话管理模块
│ ├── prompt/ # Prompt 模板模块
│ ├── model/ # 模型路由模块
│ ├── toolcall/ # 函数调用模块
│ ├── rag/ # RAG 知识检索模块
│ ├── mcp/ # MCP 协议模块
│ ├── skill/ # 技能系统模块
│ ├── memory/ # 对话记忆模块
│ ├── agent/ # Agent 智能体模块
│ └── common/ # 共享层
├── frontend/ # React 前端
│ └── src/
│ ├── pages/ # 页面
│ │ ├── ChatPage.tsx # 对话界面
│ │ ├── PromptPage.tsx # Prompt 管理
│ │ ├── RagPage.tsx # RAG 知识库
│ │ ├── McpPage.tsx # MCP 连接管理
│ │ └── SkillPage.tsx # 技能管理
│ ├── components/ # 组件
│ └── services/ # API 客户端
├── mcp-examples/ # MCP 示例服务器
│ └── filesystem-server.py
├── docs/superpowers/specs/ # 设计文档
└── openspec/changes/ # OpenSpec 变更管理
| 模块 | 描述 | 关键概念 |
|---|---|---|
| chat | 多轮对话管理、SSE 流式推送 | Session、Message、SSE |
| prompt | Prompt 模板 CRUD、变量渲染 | System Prompt、模板引擎 |
| model | 多厂商统一路由 | ChatModel、Failover |
| toolcall | 工具注册、参数校验、执行 | Function Calling、ToolRegistry |
| rag | 文档切片、向量检索 | Embedding、Semantic Search |
| mcp | MCP 协议客户端 | stdio 传输、JSON-RPC |
| skill | 技能文件加载、匹配、注入 | 技能热更新、触发词匹配 |
| memory | 短期窗口 + 长期记忆 | Token 滑窗、自动摘要 |
| agent | ReAct 循环智能体 | 多步推理、工具编排 |
- Phase 1: 基础对话 + Prompt → 理解 LLM 调用和模板
- Phase 2: 多模型路由 + 记忆 → 理解模型抽象和上下文管理
- Phase 3: 函数调用 → 理解 LLM 如何调用外部工具
- Phase 4: RAG → 理解向量检索和知识增强
- Phase 5: MCP → 理解模型上下文协议
- Phase 6: 技能系统 → 理解技能注入和热更新
- Phase 7: Agent → 理解智能体循环和多步推理
编辑 backend/src/main/resources/application.yml:
spring:
ai:
openai:
api-key: ${OPENAI_API_KEY} # OpenAI API Key
ollama:
base-url: http://localhost:11434 # Ollama 本地地址