基于通义大模型 + 本地 RAG 的智能客服 Agent(FastAPI + Vue 3)。
支持 FAQ 检索(混合检索 / 精排)、澄清与直出、敏感词、话术热更新、运营后台,以及可选的企业微信回调。
对话页:
FAQ 管理:
话术配置:
- 对话:意图识别 → FAQ 检索 → 直出 / 澄清 / LLM 润色
- 智能体市场:选择官方 Agent(智能客服 / 电商竞品分析);运营可上下架
- 电商竞品分析:多平台自然语言竞品搜索、采集、AI 评论摘要、CSV 导出,结果写入
data/competitor.db - 知识库:FAQ 增删改、导入(JSON / CSV / TXT / Excel)、重建向量库
- 运营:敏感词、话术配置、用户管理(JWT:
user/ops) - 可选:企业微信回调;飞书事件回调 + 任务中心「我负责的」查询(需用户 OAuth)
- 前端:对话页、智能体市场、FAQ / 敏感词 / 话术 / 用户管理 / 渠道配置(
web/)
image.png image.png
git clone https://github.com/icool-ai/agent.git
cd agent
uv synccp .env.example .env编辑 .env,至少填写:
DASHSCOPE_API_KEY/OPENAI_API_KEYJWT_SECRET(≥32 字符)ADMIN_USERNAME/ADMIN_PASSWORD
其余项可参考 .env.example 注释。
uv run replykit
# 或:uv run replykit-api默认:http://127.0.0.1:8000。健康检查:GET /health。
cd web
npm install
npm run dev浏览器打开 http://127.0.0.1:5173 ,用 .env 中的管理员账号登录。开发时 Vite 将 /api/* 代理到后端。
仓库自带示例:data/faq/faq.json。可通过运营后台「FAQ」页导入,或调用:
# 登录后携带 Authorization: Bearer <token>
POST /faqs/import
{"path": "data/faq/faq.json"}导入后如需重建向量:POST /faqs/rebuild。
| 命令 | 说明 |
|---|---|
uv run replykit |
启动 API |
uv run python -m src.regression |
跑回归用例 |
uv run python -m src.chat_log --limit 100 |
导出对话日志 |
前端页面说明见 web/README.md;FAQ 数据格式见 data/faq/README.md。
├── main.py # API 入口
├── src/ # 后端(聊天、RAG、鉴权、FAQ、智能体市场等)
├── mp_agent/ # 电商竞品分析 Agent(迁入适配)
├── config/ # mp_agent 运行时配置(SQLite / DashScope)
├── web/ # Vue 3 运营 / 对话前端
├── data/
│ ├── faq/ # FAQ 示例与说明(可入库)
│ ├── bot_config.json # 话术等配置
│ ├── competitor.db # 竞品分析结果(运行时生成)
│ ├── agents.db # 智能体市场目录(运行时生成)
│ └── *.db # 其余运行时 SQLite(本地生成,不入库)
├── .env.example # 环境变量模板
└── docs/ # 方案与开发笔记
运行时数据库(会话、FAQ、敏感词、鉴权、对话日志、竞品、智能体市场等)会写在 data/*.db,已由 .gitignore 忽略,请勿提交真实业务数据。
部分竞品平台采集依赖可选组件:playwright / apify-client / FlareSolverr;未安装时对应平台任务会报错提示,不影响智能客服与市场浏览。
POST /auth/login获取 JWT- 请求头:
Authorization: Bearer <access_token> - 角色:
user(可自助注册,由AUTH_ALLOW_REGISTER控制)/ops(运营)
在飞书对机器人说自然语言即可查询任务中心(仅限当前授权用户有权限看到的数据):
- 「我有哪些未完成的任务」→ 我负责的
- 「所有任务 / 不是我负责的」→ 你有权限看到的全部任务(不限执行人)
- 「帮我看看辰子任务情况」→ 按成员(意图 LLM 抽人名 + 搜人)
- 「查一下张三的未完成任务」→ 按成员(search + assignee)
- 「有哪些清单」→ 可读任务清单
- 「看看【项目A】清单 / 看板」→ 清单任务或按分组(看板列)汇总
- 「看看现在有哪些任务」(未指明范围)→ 先澄清再查
任务子类型优先由意图模型输出的 task_scope / person_name 等槽位决定;模型失败时回退关键词规则。
配置步骤:
- 开放平台开通并发布:
task:task:read、task:tasklist:read、task:section:read、contact:user:search、offline_access .env配置公网ASSET_BASE_URL;重定向 URL 填{ASSET_BASE_URL}/oauth/feishu/callback- 首次查询点授权链接;权限升级后需重新授权一次
- 网页
/chat触发同类意图时会提示去飞书使用(无飞书身份)
无法查看你无权访问的他人私密任务。
本项目采用 MIT License。


