面向企业知识管理场景的 RAG 与 ReAct Agent 系统
通过多源知识接入、混合检索、深度推理与动态工具调用,为团队提供可配置的知识管理和智能问答能力
| 核心能力 | 说明 |
|---|---|
| 🧠 智能问答 | 提供快速检索与 ReAct Agent 深度推理两种模式,支持多轮会话和 SSE 流式输出 |
| 🔍 高级 RAG 管线 | 组合向量检索、关键词检索与 RRF 融合,并可按需启用 Rerank 和相邻分块扩展 |
| 📚 知识与文档管理 | 支持知识库、文档、版本和处理任务管理,覆盖常见文本、DOCX、PDF、PPTX 等格式 |
| 🔗 钉钉知识接入 | 支持 OAuth 绑定、工作空间与节点浏览,以及同步项导入本地知识库 |
| ⚙️ 灵活的模型配置 | 支持系统模型和用户模型配置,可接入 OpenAI 兼容的 LLM 与 Embedding 服务 |
| 🧰 动态工具系统 | 通过可配置的 HTTP Provider 为 Agent 加载联网搜索、天气查询等外部工具 |
| 🛡️ 完整管理能力 | 包含用户认证、存储配额、统一搜索以及用户、会话、模型和工具后台管理 |
智能问答
|
知识库管理
|
文档管理
|
文档编辑与预览
|
统一搜索
|
AI 模型配置
|
Agent 工具配置
|
后台管理
|
后端采用 MVC + Service + Agent 能力层组织:Controller 处理 HTTP 边界,Service 编排业务用例,Agent/RAG/Tool 负责智能能力,Repository 负责数据访问。详细边界见架构说明
| 类别 | 技术选型 |
|---|---|
| 后端 | Go 1.26.2、Gin、GORM |
| Agent | Eino、ReAct、动态 Tool Calling |
| 检索 | 向量检索、关键词检索、RRF、可选 Rerank 与分块扩展 |
| 数据 | PostgreSQL 15+、pgvector、Redis 7+ |
| 前端 | Vue 3、Vite 5、Element Plus、Tailwind CSS |
| 文档解析 | Python 3.10+、python-docx、pdfplumber、python-pptx |
| 外部集成 | OpenAI 兼容接口、钉钉开放平台 |
- Go 1.26.2+
- Node.js 18.x 或 20+,npm 8+
- Python 3.10+
- PostgreSQL 15+,并安装 pgvector 扩展
- Redis 7+
git clone https://github.com/RyneExplorer/Solvify-Agent.git
cd Solvify-Agent确保 PostgreSQL 和 Redis 已启动,然后创建数据库并执行项目脚本:
createdb -U postgres solvify_agent
psql -U postgres -d solvify_agent -f scripts/init_knowledge_schema.sqlSQL 脚本用于初始化空数据库,会创建项目表以及 pgcrypto、vector 扩展。执行账号需要具有创建扩展的权限,已存在业务表的数据库不要重复执行
cp configs/config.yaml.example configs/config.yaml项目可只使用 configs/config.yaml。如需通过环境变量覆盖配置,再复制可选模板:
cp .env.example .env至少检查以下配置:
- PostgreSQL 与 Redis 连接信息
jwt.secret- Embedding 服务的模型、Base URL 和 API Key
- 使用钉钉同步时的应用凭证与回调地址
- 使用注册验证码与密码重置时的 SMTP 配置
配置加载优先级如下,后加载的配置会覆盖之前的值:
代码默认值 < configs/config.yaml < .env < 系统环境变量
完整字段见 config.yaml.example 和 .env.example。请勿提交包含 API Key、Token 或密码的本地配置文件
go mod download
python -m pip install python-docx==1.1.2 pdfplumber==0.11.4 python-pptx==1.0.2三个 Python 包分别用于解析 DOCX、PDF 和 PPTX;版本与 requirements.txt 保持一致。也可以通过依赖文件一次安装:
python -m pip install -r pkg/documentparser/python/requirements.txtgo run ./cmd/server服务默认监听 http://localhost:8080。通过健康检查确认启动成功:
curl http://localhost:8080/health打开新的终端:
cd design/vue
npm ci
npm run dev访问 http://localhost:5173。开发服务器会将 /api 请求代理到 http://localhost:8080
首次使用真实模型问答前,请在后台管理中添加系统模型,或在个人配置中添加 OpenAI 兼容模型。文档入库和 RAG 检索依赖服务端 Embedding 配置
除公开认证接口外,/api/v1 下的业务接口均需要 Bearer Token。API 使用统一响应结构:
{
"code": 0,
"message": "成功",
"data": {}
}| 模块 | 主要入口 | 能力 |
|---|---|---|
| 健康检查 | GET /health |
服务状态 |
| 认证 | /api/v1/auth |
注册、登录、刷新、登出、验证码与密码重置 |
| 知识库与文档 | /api/v1/knowledge-bases、/api/v1/documents |
知识库、文档、版本、处理任务与分块 |
| 智能问答 | /api/v1/chat |
会话管理、快速检索与深度推理 |
| 搜索 | /api/v1/search |
会话与知识内容统一搜索 |
| 模型与工具 | /api/v1/models、/api/v1/user/model-configs、/api/v1/user/tool-configs |
系统模型、用户模型和 Agent 工具配置 |
| 数据同步 | /api/v1/dingtalk、/api/v1/sync-sources、/api/v1/sync-jobs |
钉钉绑定、目录浏览与同步任务 |
| 管理后台 | /api/v1/admin |
用户、会话与工具类型管理 |
具体路由以 internal/api/router.go 及各模块 routes.go 为准
- 架构说明:分层结构、RAG 管线、Chat 双模式与 Tool 系统
- 开发指南:模块边界、开发流程、配置规范与测试要求
- 产品需求文档:产品目标、功能需求、业务规则与边界条件
- 配置模板:服务、模型、检索、数据库及集成配置
- Fork 仓库并从
main创建功能分支 - 只提交与目标相关的修改,并遵循开发指南
- 提交前完成后端测试和前端构建
- 创建 Pull Request,说明改动范围与验证结果
go test ./...
cd design/vue
npm run build







