Skip to content

Wanpl-Java/FIT2CLOUD-Product-Agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FIT2CLOUD Product Agent

飞致云产品智能问答 Agent —— 基于 GitHub 仓库知识库 + 多厂商大模型的 RAG 系统。

技术选型

层级 技术 说明
后端 Python + FastAPI AI/RAG 生态最成熟,LangChain、ChromaDB、Sentence-Transformers 开箱即用
前端 Vue 3 + Vite + TypeScript + Element Plus 与 JumpServer Lina 技术栈一致
向量库 ChromaDB 轻量本地向量存储,无需额外部署
知识源 GitHub 仓库 按产品模块配置,支持 clone + 文档抽取

为什么推荐 Python 而非 Java / Go?

  • 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

快速开始

1. 后端

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 8000

2. 前端

cd frontend
npm install
npm run dev

浏览器访问 http://localhost:5173

3. 使用流程

  1. 左侧选择产品模块(如 JumpServer → Core)
  2. 点击「同步知识库」从 GitHub 拉取并索引文档
  3. 在对话框中提问,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 登录(私有仓库)

  1. 打开 GitHub Developer SettingsOAuth AppsNew OAuth App
  2. 填写:
    • Homepage URL: http://localhost:5173
    • Authorization callback URL: http://localhost:8000/api/v1/auth/github/callback
  3. 把 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
  1. 重启后端,打开 http://localhost:5173/login 使用 GitHub 登录
  2. 登录后侧边栏「我的仓库」可选择个人/私有仓库并同步知识库

API 概览

方法 路径 说明
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 管理

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors