feat: 用 Ragflow 搭建鲜境方案客服
咨询台接 Ragflow 检索与示例知识库,支持追问、判定、引用和留资。 Co-authored-by: haijd <haijd@163.com>
This commit is contained in:
@@ -1,51 +1,44 @@
|
||||
# 鲜境方案引擎 · 通用原型(需求未定稿版)
|
||||
# 鲜境物联 · AI 智能客服
|
||||
|
||||
业务规则还在变时:**先搭可配置原型,再按真实需求改 YAML,而不是先写死后台。**
|
||||
用 **Ragflow** 做知识库检索,用本仓库的方案引擎做「追问 → 判定 → 出方案 → 留资」。
|
||||
|
||||
## 策略
|
||||
线上咨询台:[鲜境智能客服](http://127.0.0.1:3847/)
|
||||
Ragflow 控制台:[Ragflow](http://127.0.0.1:18080/)
|
||||
|
||||
1. 先跑通:多轮追问(槽位)→ 判定树出组合 → 检索补依据 → 出方案草稿
|
||||
2. 槽位 / 判定树 / 示例知识 **全部外置配置**,需求变了主要改配置
|
||||
3. 检索默认 **Mock**(不依赖本机 Ragflow);有 Ragflow 后改环境变量即可接真库
|
||||
4. 不做大而全后台;控制台能聊天验证闭环即可
|
||||
示例产品资料在 `knowledge/corpus/`,型号是占位,等甲方资料替换。判定规则在 `knowledge/decision_tree.yaml`,由业务方定对错。
|
||||
|
||||
## 本仓库原型包含
|
||||
## 本机已经怎么跑
|
||||
|
||||
| 路径 | 作用 |
|
||||
|------|------|
|
||||
| `engine/` | FastAPI 方案引擎 + 简易聊天页 |
|
||||
| `knowledge/` | `slots.yaml` / `decision_tree.yaml` / 示例检索片段 |
|
||||
| `docs/Ragflow实施方案.md` | 完整架构说明 |
|
||||
1. Ragflow v0.27.1 用 Docker 起在 `/opt/ragflow/docker`(内存已调低,适配约 16GB 以下的机器)。
|
||||
2. `scripts/bootstrap_ragflow.py` 注册管理员、建 `products` / `solutions` / `faqs`,灌入语料并写 `.env`。
|
||||
3. 方案引擎读 `.env` 里的 API Key 与数据集 ID,检索走 `POST /api/v1/retrieval`。
|
||||
|
||||
## 快速启动
|
||||
## 自己重来一遍
|
||||
|
||||
```bash
|
||||
# 1. 起 Ragflow(首次会拉镜像)
|
||||
cd /opt/ragflow/docker
|
||||
sudo docker compose -f docker-compose.yml up -d
|
||||
|
||||
# 2. 若容器互相连不上(日志里 MySQL timeout),补网桥转发后重启 ragflow
|
||||
bash scripts/fix_docker_forward.sh
|
||||
cd /opt/ragflow/docker && sudo docker restart docker-ragflow-cpu-1
|
||||
cd /workspace
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
pip install -r engine/requirements.txt
|
||||
python scripts/bootstrap_ragflow.py
|
||||
|
||||
# 3. 咨询台
|
||||
uvicorn engine.app.main:app --host 0.0.0.0 --port 3847
|
||||
```
|
||||
|
||||
打开:[方案引擎原型](http://127.0.0.1:3847/)
|
||||
没有 Docker 时可以把 `.env` 里的 `RETRIEVAL_BACKEND` 改成 `mock`,只用本地示例片段演示对话,不代表知识库已接通。
|
||||
|
||||
健康检查:`GET /api/health`
|
||||
重载业务配置:`POST /api/admin/reload-config`(改完 YAML 不用重启进程时用)
|
||||
## 目录
|
||||
|
||||
## 接真 Ragflow(稍后)
|
||||
|
||||
```bash
|
||||
export RETRIEVAL_BACKEND=ragflow
|
||||
export RAGFLOW_BASE_URL=http://127.0.0.1:9380
|
||||
export RAGFLOW_API_KEY=...
|
||||
export RAGFLOW_DATASET_IDS=...
|
||||
```
|
||||
|
||||
未配置时保持 `RETRIEVAL_BACKEND=mock`。
|
||||
|
||||
## 需求清晰后怎么补
|
||||
|
||||
1. 改 `knowledge/slots.yaml`(追问项)
|
||||
2. 改 `knowledge/decision_tree.yaml`(推荐规则)
|
||||
3. 灌真实资料进 Ragflow,切 `ragflow` 后端
|
||||
4. 再加渠道 Webhook / 转人工 / Eval,而不是推倒重来
|
||||
| 路径 | 作用 |
|
||||
|------|------|
|
||||
| `engine/` | 咨询 API 与页面 |
|
||||
| `knowledge/` | 槽位、判定树、灌库语料 |
|
||||
| `scripts/bootstrap_ragflow.py` | 对接 Ragflow 建库 |
|
||||
| `docs/` | 选型与实施说明 |
|
||||
|
||||
Reference in New Issue
Block a user