AI Forge
AI-Native Workspace— 把 AI 对话、Agent 流水线、知识库 RAG、代码审查统一到一个工作台。
已完成8 个阶段:基础架构 → AI Chat → Agent Pipeline → Code Review → RAG → Redis/PostgreSQL/RabbitMQ → 测试与安全加固 → Docker 一键部署。
https://github.com/lfl171/ai_forge.git
特性
- 多轮对话 + SSE 流式:模型逐 token 输出,前端实时渲染 Markdown。
- Agent 流水线:Requirement → Architecture → Database → API → Code Review 五阶段编排,状态机驱动 + 异步事件推送。
- 知识库 / RAG:文档按 heading 分块,CJK bigram 检索,限域查询。
- 代码审查:Monaco 编辑器 + AI 返回结构化 JSON(score / issues / suggestion)。
- 双 Profile:
dev零依赖内存模式,prodPostgreSQL + Redis + RabbitMQ 一键拉起。 - 安全加固:请求体上限、CORS 白名单、AI 端点限流、安全响应头、错误信息收敛、Bean Validation。
技术栈
| 层 | 选型 |
|---|---|
| 前端 | React 18 · TypeScript · Vite 5 · Tailwind · Zustand · Monaco Editor · react-markdown |
| 后端 | Spring Boot 3.3 · Java 17 · Maven · Actuator |
| 数据 | PostgreSQL 16 · Redis 7 · RabbitMQ 3.13 |
| 部署 | Docker · docker compose · nginx |
模块
| 模块 | 路径 | 说明 |
|---|---|---|
| Dashboard | / | 欢迎区、快捷入口、最近任务 |
| AI Chat | /chat | 多轮对话 · Markdown · SSE 流式 |
| AI Agent | /agent | 多 Agent Pipeline 可视化 + 实时事件 |
| Knowledge | /knowledge | 知识库 / 文档 / RAG 检索 |
| Code Review | /review | Monaco Editor + AI 结构化审查 |
| Tasks | /tasks | Chat / Agent / Review / RAG 任务中心 |
| History | /history | 按天聚合的任务历史 |
| Settings | /settings | API Key / 模型 / 主题 |
启动方式
1. Docker 一键拉起(推荐)
前提:Docker Desktop / Docker Engine 已启动。
# 在仓库根目录(与本 README 同级)# 1. 准备 LLM 凭据(也可放进 .env)exportAI_API_KEY=sk-xxxexportAI_MODEL=gpt-4o-mini# 2. 构建 + 启动 postgres / redis / rabbitmq / backend / frontenddockercompose up-d--build# 3. 浏览器访问 http://localhost服务端口:
| 服务 | 端口 | 说明 |
|---|---|---|
| frontend (nginx) | 80 | 唯一对外入口 |
| backend | 8080 | 仅供内部访问(可选直接访问调试) |
| postgres | 5432 | |
| redis | 6379 | |
| rabbitmq mgmt | 15672 | guest/guest |
关闭:
dockercompose down# 保留数据卷dockercompose down-v# 同时清理数据卷2. 本地开发(dev profile,零依赖)
适合前端 / 后端单端调试。
前端
cdfrontendnpminstallnpmrun dev# http://localhost:5173,Vite proxy 把 /api 转发到 :8080后端(dev profile:内存仓储,不连任何外部服务)
cdbackend mvn spring-boot:run# 或:mvn -DskipTests package && java -jar target/ai-forge-backend-0.1.0.jar# 健康检查:curl http://localhost:8080/actuator/healthdev profile不会启动 JPA / Redis / RabbitMQ 自动配置,Windows / Linux 装机即可跑。
3. 本地模拟 prod 链路(连真实基础设施)
# 后端依赖:postgres / redis / rabbitmqdockercompose up-dpostgres redis rabbitmqcdbackendSPRING_PROFILES_ACTIVE=prod mvn spring-boot:run配置 LLM
API Key只在后端环境变量,前端绝对不可见。
# OpenAIexportAI_PROVIDER=openaiexportAI_API_KEY=sk-xxxexportAI_MODEL=gpt-4o-mini# DeepSeekexportAI_PROVIDER=deepseekexportAI_BASE_URL=https://api.deepseek.com/v1exportAI_MODEL=deepseek-chatexportAI_API_KEY=sk-xxx# 通义千问(DashScope OpenAI 兼容)exportAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1exportAI_MODEL=qwen-turboexportAI_API_KEY=sk-xxx# MoonshotexportAI_BASE_URL=https://api.moonshot.cn/v1exportAI_MODEL=moonshot-v1-8kexportAI_API_KEY=sk-xxx关键 API
POST /api/chat/conversations 创建会话 GET /api/chat/conversations 会话列表 GET /api/chat/conversations/{id}/messages 历史消息 DELETE /api/chat/conversations/{id} 删除会话 POST /api/chat/conversations/{id}/stream SSE 流式对话 POST /api/agent/pipelines 创建 Agent 流水线 GET /api/agent/pipelines/{id} 查询状态 GET /api/agent/pipelines/{id}/events SSE 实时事件 POST /api/review 代码审查(结构化 JSON) POST /api/knowledge/bases 创建知识库 POST /api/knowledge/bases/{id}/documents 上传文档(自动分块) POST /api/knowledge/bases/{id}/query RAG 检索问答 GET /actuator/health 健康检查(携带 X-Request-Id 等安全响应头)完整接口与事件说明见docs/API.md。
安全要点(Phase 07)
- 请求体上限:表单 1MB,header 16KB,文件 2MB swallow。
- 入参校验:Bean Validation(
@NotBlank/@Size),上传前Sanitizers.safeFilename。 - CORS:通过
forge.cors.allowed-origins白名单(环境变量注入)。 - AI 端点限流:令牌桶,
forge.ratelimit.{window-seconds, max-requests}(默认 60s/30 次),返回 429 +Retry-After。 - 安全响应头:
X-Content-Type-Options、X-Frame-Options: DENY、Referrer-Policy、Permissions-Policy,prod 额外Strict-Transport-Security。 - 错误收敛:5xx 不回传原始异常,统一 “服务异常,请稍后重试”,全量堆栈仍写入日志。
项目结构
ai-forge/ ├── backend/ # Spring Boot 3.3 (Maven) │ ├── src/main/java/com/aiforge/ │ │ ├── ai/ # AiClient + ChatRequest + TokenSink │ │ ├── chat/ # Chat / Conversation 实体、Controller、Service │ │ ├── agent/ # Pipeline 状态机、Agent 编排 │ │ ├── knowledge/ # Chunker / Retriever / RAG │ │ ├── review/ # 代码审查 │ │ ├── security/ # Sanitizers / Filters │ │ └── config/ # Cors / Cache / Redis / Rabbit / GlobalException │ ├── src/main/resources/ # application.yml + dev / prod profile │ ├── src/test/java/ # 24 个单元测试 + Spring 上下文加载测试 │ ├── Dockerfile │ └── pom.xml ├── frontend/ # React 18 + Vite + TS │ ├── src/ │ │ ├── pages/ # Dashboard / Chat / Agent / Knowledge / Review ... │ │ ├── components/ # 通用 UI 组件 │ │ ├── stores/ # Zustand stores │ │ └── lib/ # API client │ ├── nginx.conf │ ├── Dockerfile │ └── package.json ├── docs/ # API / 架构 / 博客素材 ├── docker-compose.yml # postgres + redis + rabbitmq + backend + frontend └── README.md阶段路线
| Phase | 内容 | 状态 |
|---|---|---|
| 01 | 项目骨架 + UI | ✅ |
| 02 | AI Chat + SSE 真实流式 | ✅ |
| 03 | Agent Pipeline 调度 | ✅ |
| 04 | Code Review | ✅ |
| 05 | Knowledge Base + RAG | ✅ |
| 06 | Redis + PostgreSQL + RabbitMQ | ✅ |
| 07 | 测试 + 安全加固 | ✅ |
| 08 | Docker + 文档 + 博客素材 | ✅ |
License
MIT — 仅供学习交流,生产使用请自行评估 LLM 凭据管理与依赖安全。