飞致云产品智能问答 Agent —— 基于 GitHub 仓库知识库 + 多厂商大模型的 RAG 系统。
| 层级 | 技术 | 说明 |
|---|---|---|
| 后端 | Python + FastAPI | AI/RAG 生态最成熟,LangChain、ChromaDB、Sentence-Transformers 开箱即用 |
| 前端 | Vue 3 + Vite + TypeScript + Element Plus | 与 JumpServer Lina 技术栈一致 |
| 向量库 | ChromaDB | 轻量本地向量存储,无需额外部署 |
| 知识源 | GitHub 仓库 | 按产品模块配置,支持 clone + 文档抽取 |
- Python:LLM/RAG 领域事实标准,开发效率最高,比赛原型和迭代最快
- Go:适合高性能网关/协议组件(如 KoKo),但 AI 生态薄弱
- Java:适合企业级业务系统,但 RAG 框架集成成本高、开发周期长
如果后期需要与 JumpServer Core (Django) 深度集成,可通过 HTTP API 或 gRPC 桥接,无需重写 Agent 核心。
├── JumpServer
│ ├── Core → github.com/jumpserver/jumpserver
│ ├── KoKo → github.com/jumpserver/koko
│ ├── Chen → github.com/jumpserver/chen
│ ├── Lina → github.com/jumpserver/lina
│ └── Luna → github.com/jumpserver/luna
├── DataEase → github.com/dataease/dataease
└── MaxKB → github.com/1Panel-dev/MaxKB
模块配置见 backend/app/products/products.yaml,可按需扩展。
F2C Product Agent/
├── backend/ # Python FastAPI 后端
│ ├── app/
│ │ ├── api/routes.py # REST API
│ │ ├── config/settings.py # 环境配置
│ │ ├── models/schemas.py # 数据模型
│ │ ├── products/ # 产品模块 YAML 配置
│ │ └── services/
│ │ ├── llm/ # 大模型 Provider 抽象
│ │ ├── github/ # GitHub 仓库同步
│ │ └── rag/ # RAG 检索增强引擎
│ ├── requirements.txt
│ └── .env.example
├── frontend/ # Vue 3 前端
│ └── src/
│ ├── components/ # 模块选择器 + 对话面板
│ ├── stores/ # Pinia 状态管理
│ └── api/ # API 封装
├── docker-compose.yml
└── README.md
cd backend
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
pip install -r requirements.txt
copy .env.example .env # 编辑 .env,填入 LLM_API_KEY
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000cd frontend
npm install
npm run dev浏览器访问 http://localhost:5173
- 左侧选择产品模块(如 JumpServer → Core)
- 点击「同步知识库」从 GitHub 拉取并索引文档
- 在对话框中提问,Agent 将基于知识库 + 大模型回答
所有厂商均通过 OpenAI 兼容接口 接入,修改 .env 即可切换:
# OpenAI
LLM_PROVIDER=openai
LLM_MODEL=gpt-4o-mini
LLM_API_KEY=sk-xxx
LLM_BASE_URL=https://api.openai.com/v1- 打开 GitHub Developer Settings → OAuth Apps → New OAuth App
- 填写:
- Homepage URL:
http://localhost:5173 - Authorization callback URL:
http://localhost:8000/api/v1/auth/github/callback
- Homepage URL:
- 把 Client ID / Secret 写入
backend/.env:
GITHUB_CLIENT_ID=xxx
GITHUB_CLIENT_SECRET=xxx
GITHUB_OAUTH_REDIRECT_URI=http://localhost:8000/api/v1/auth/github/callback
FRONTEND_URL=http://localhost:5173- 重启后端,打开 http://localhost:5173/login 使用 GitHub 登录
- 登录后侧边栏「我的仓库」可选择个人/私有仓库并同步知识库
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/v1/products |
获取产品模块列表 |
| GET | /api/v1/llm/providers |
获取支持的 LLM 厂商 |
| POST | /api/v1/knowledge/sync |
同步 GitHub 知识库 |
| POST | /api/v1/chat |
对话(支持 SSE 流式) |
- 文档分块策略优化(RecursiveCharacterTextSplitter)
- 增量同步 GitHub 仓库(Webhook / 定时任务)
- 对话历史持久化(SQLite / PostgreSQL)
- 多轮对话上下文管理
- Docker 一键部署
- 用户认证与 API Key 管理