129 lines
3.3 KiB
Markdown
129 lines
3.3 KiB
Markdown
|
|
# BaoDan 源码集成指南
|
|||
|
|
|
|||
|
|
## 一、BaoDan 版本要求
|
|||
|
|
|
|||
|
|
- BaoDan 版本:>= 1.0.0(社区版)
|
|||
|
|
- Python 版本:3.12
|
|||
|
|
- 数据库:PostgreSQL 15+
|
|||
|
|
- Redis:7+
|
|||
|
|
|
|||
|
|
## 二、目录结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
项目根目录/
|
|||
|
|
├── baodan-main/ # BaoDan 源码(git clone)
|
|||
|
|
│ ├── api/
|
|||
|
|
│ │ ├── main.py # ★ 你需要改的文件(加 5 行)
|
|||
|
|
│ │ ├── core/ # BaoDan 核心(不改)
|
|||
|
|
│ │ └── ...
|
|||
|
|
│ └── web/
|
|||
|
|
│ └── .env.local # ★ 你需要改的文件(加 1 行)
|
|||
|
|
├── api/
|
|||
|
|
│ └── insurance/ # ★ 你的全部自研代码
|
|||
|
|
├── frontend/ # ★ 你的 Vue 前端
|
|||
|
|
└── docker-compose.yml
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 三、修改 BaoDan main.py(仅 5 行)
|
|||
|
|
|
|||
|
|
在 `baodan-main/api/main.py` 文件末尾添加:
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
# ======== 保险智能客服系统 - 路由注册 ========
|
|||
|
|
try:
|
|||
|
|
from insurance.routes import register_insurance_routes
|
|||
|
|
register_insurance_routes(app)
|
|||
|
|
except ImportError as e:
|
|||
|
|
import logging
|
|||
|
|
logging.warning(f"Insurance module not loaded: {e}")
|
|||
|
|
# ======== END 保险智能客服系统 ========
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 四、修改 BaoDan web/.env.local(仅 1 行)
|
|||
|
|
|
|||
|
|
在 `baodan-main/web/.env.local` 中添加:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
NEXT_PUBLIC_ALLOW_EMBED=true
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果需要允许 iframe 嵌入到你的域名:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
NEXT_PUBLIC_ALLOW_EMBED=true
|
|||
|
|
NEXT_PUBLIC_APP_URL=https://your-domain.com
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 五、自研代码挂载方式
|
|||
|
|
|
|||
|
|
### 方式一:Docker Volume 挂载(推荐)
|
|||
|
|
|
|||
|
|
在 `docker-compose.yml` 中:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
baodan-api:
|
|||
|
|
image: langgenius/baodan-api:latest
|
|||
|
|
volumes:
|
|||
|
|
- ./api/insurance:/app/api/insurance # 挂载自研代码
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 方式二:开发模式直接复制
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 开发时,将 insurance 目录复制到 BaoDan api 目录下
|
|||
|
|
cp -r api/insurance/ baodan-main/api/insurance/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 六、验证集成
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. 启动 BaoDan
|
|||
|
|
cd baodan-main && docker compose up -d
|
|||
|
|
|
|||
|
|
# 2. 检查 insurance 模块是否加载
|
|||
|
|
curl http://localhost:5001/api/health
|
|||
|
|
# 预期:{"status": "ok"}
|
|||
|
|
|
|||
|
|
# 3. 测试认证接口
|
|||
|
|
curl -X POST http://localhost:5001/api/auth/password-login \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d '{"username": "admin", "password": "test123"}'
|
|||
|
|
|
|||
|
|
# 4. 测试企微回调
|
|||
|
|
curl http://localhost:5001/api/wecom/callback
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 七、BaoDan Python 模块 Import 路径
|
|||
|
|
|
|||
|
|
以下 import 路径需要根据实际 BaoDan 版本验证:
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
# 数据库连接
|
|||
|
|
from extensions.ext_database import db
|
|||
|
|
|
|||
|
|
# Redis 连接
|
|||
|
|
from extensions.ext_redis import redis_client
|
|||
|
|
|
|||
|
|
# BaoDan 模型(用于 LLM 调用)
|
|||
|
|
# from core.model_runtime.model_manager import ModelManager
|
|||
|
|
|
|||
|
|
# BaoDan Workflow
|
|||
|
|
# from core.workflow.workflow_engine import WorkflowEngine
|
|||
|
|
|
|||
|
|
# BaoDan RAG 检索
|
|||
|
|
# from core.rag.retrieval.dataset_retrieval import DatasetRetrieval
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
> 注意:直接 import BaoDan 内部模块有版本耦合风险。建议优先通过 BaoDan HTTP API(/v1/chat-messages 等)调用,
|
|||
|
|
> 仅在性能关键路径上使用 Python 直接调用。
|
|||
|
|
|
|||
|
|
## 八、BaoDan API Key 获取
|
|||
|
|
|
|||
|
|
在 BaoDan 后台 → 应用设置 → API 访问中获取:
|
|||
|
|
|
|||
|
|
| Key 类型 | 用途 | 存放环境变量 |
|
|||
|
|
|---------|------|-------------|
|
|||
|
|
| App API Key | 对话接口 | `BAODAN_CHAT_APP_API_KEY` |
|
|||
|
|
| Workflow API Key | 推荐方案 | `BAODAN_WORKFLOW_APP_API_KEY` |
|
|||
|
|
| Dataset API Key | 知识库管理 | `BAODAN_DATASET_API_KEY` |
|