Skip to content

congwa/embedease-ai

Repository files navigation

🤖 EmbedeaseAI Agent -一款开箱即用的 AI 智能客服系统,帮助用户快速找到心仪商品

演示动图

一款开箱即用的 AI 智能客服系统,帮助用户快速找到心仪商品

📸 界面预览

页面 截图
产品落地页 落地页
用户聊天界面 聊天界面
管理后台仪表盘 仪表盘
快速配置向导 快速配置
单 Agent 模式 单 Agent
编排模式 编排模式
技能管理 技能管理
系统设置 系统设置
客服工作台 客服工作台

Docker Python Next.js LangChain React


� 这是什么?

EmbedeaseAI Agent 是一个智能商品推荐系统,就像你网站上的"金牌客服":

  • 🛒 用户说需求,AI 帮你找商品 — 输入"3000 元以内的轻薄本",立刻推荐匹配商品
  • 💬 像真人一样对话 — 会追问、会对比、会记住你的喜好
  • 🔌 一行代码嵌入你的网站 — 任何网站都能用的悬浮客服窗口
  • 提升转化率的秘密武器 — 匿名用户提问时,企业微信实时推送,点击链接即可接入对话,抓住每一个潜在客户
  • �🚀 3 分钟部署上线 — 不懂代码也能用

🎯 我能用它做什么?

👤 如果你是普通用户

场景 效果
🔍 找商品 告诉 AI "我想买降噪耳机",它会帮你搜索并推荐
💰 按预算筛选 "2000 元以下的有哪些?",自动过滤价格
⚖️ 对比选择 "索尼和苹果耳机哪个好?",给你详细对比
📝 记住偏好 下次再来,它还记得你喜欢什么品牌

👨‍💼 如果你是网站运营者

功能 说明
🎨 可嵌入小组件 一行代码添加到你的网站,右下角弹出客服窗口
提升转化率 匿名用户提问时,企业微信/Webhook 实时推送,点击链接直接进入对话,不错过任何商机
�🔧 管理后台 查看对话记录、管理商品、配置 Agent
👨‍💻 人工客服接入 AI 处理不了时,自动通知人工客服介入,支持消息编辑、撤回、重新生成
📊 数据分析 所有对话、工具调用、响应耗时都有记录,支持热度排序和会话洞察

👨‍💻 如果你是开发者

能力 详情
🔀 多 LLM 支持 一键切换 OpenAI / DeepSeek / SiliconFlow 等
🧠 完整记忆系统 用户画像 + 事实记忆 + 知识图谱
🛠️ 可扩展工具链 轻松添加自定义工具
📡 实时流式输出 SSE + WebSocket,所见即所得
🔀 多 Agent 编排 Supervisor 模式,多 Agent 协作与智能路由
🎭 技能系统 AI 智能生成技能,动态注入 Agent
🎨 三套聊天主题 Minimal/Ethereal/Industrial 风格 + 深色模式
👁️ 运行态预览 实时查看 Agent 最终生效的完整配置

🏗️ 系统架构

                                    ┌─────────────────────────────────────┐
                                    │           LLM 服务商                 │
                                    │  ┌─────────┐ ┌─────────┐ ┌────────┐ │
                                    │  │ OpenAI  │ │DeepSeek │ │Silicon │ │
                                    │  │  GPT-4  │ │  Chat   │ │ Flow   │ │
                                    │  └────┬────┘ └────┬────┘ └───┬────┘ │
                                    └───────┼──────────┼──────────┼──────┘
                                            └──────────┼──────────┘
                                                       ▼
┌──────────────────┐              ┌─────────────────────────────────────────┐
│                  │   SSE/REST   │              后端服务                    │
│   用户浏览器      │◄────────────►│  ┌─────────────────────────────────┐    │
│                  │              │  │         FastAPI + LangGraph      │    │
│  ┌────────────┐  │              │  │  ┌───────────┐ ┌──────────────┐ │    │
│  │  对话界面   │  │              │  │  │Agent 核心 │ │  中间件矩阵   │ │    │
│  │  商品卡片   │  │              │  │  │ 推理/工具 │ │16个可配中间件 │ │    │
│  │  时间线     │  │   WebSocket  │  │  └───────────┘ └──────────────┘ │    │
│  └────────────┘  │              │  └─────────────────────────────────┘    │
│                  │              │                    │                     │
│  ┌────────────┐  │              │  ┌─────────────────┴─────────────────┐  │
│  │  管理后台   │  │              │  │            数据存储层              │  │
│  │  客服面板   │  │              │  │  ┌─────────┐ ┌─────────┐ ┌─────┐ │  │
│  └────────────┘  │              │  │  │ SQLite  │ │ Qdrant  │ │MinIO│ │  │
└──────────────────┘              │  │  │ 对话/用户│ │ 向量检索 │ │图片 │ │  │
                                  │  │  └─────────┘ └─────────┘ └─────┘ │  │
        ┌──────────────┐          │  └─────────────────────────────────┘  │
        │  任意外部网站  │          └─────────────────────────────────────────┘
        │  ┌────────┐  │
        │  │嵌入组件 │  │◄─── 一行代码嵌入
        │  │(悬浮窗) │  │
        │  └────────┘  │
        └──────────────┘

📊 功能流程图

👤 用户侧完整流程

graph TD
    Start[用户访问网站] --> Entry{访问入口}
    
    Entry -->|Web 界面| Web[打开对话界面]
    Entry -->|嵌入组件| Embed[悬浮窗弹出]
    
    Web --> Greeting[显示开场白]
    Embed --> Greeting
    
    Greeting --> Questions[推荐问题按钮]
    Questions --> UserInput[用户输入需求]
    
    UserInput --> AgentProcess{Agent 处理}
    
    AgentProcess --> ToolCall[调用工具]
    
    ToolCall --> Search[搜索商品]
    ToolCall --> Filter[价格筛选]
    ToolCall --> Compare[商品对比]
    ToolCall --> Category[分类浏览]
    ToolCall --> FAQ[FAQ 查询]
    ToolCall --> KB[知识库检索]
    
    Search --> Result[展示结果]
    Filter --> Result
    Compare --> Result
    Category --> Result
    FAQ --> Result
    KB --> Result
    
    Result --> Timeline[时间线展示]
    Timeline --> ProductCard[商品卡片]
    Timeline --> TodoList[TODO 清单]
    Timeline --> Reasoning[推理过程]
    
    ProductCard --> UserAction{用户操作}
    
    UserAction -->|继续提问| UserInput
    UserAction -->|查看详情| Details[商品详情]
    UserAction -->|购买| Purchase[获取购买链接]
    UserAction -->|需要人工| Handoff[转人工客服]
    
    Details --> UserInput
    Purchase --> End[完成]
    
    Handoff --> Support[客服介入]
    Support --> Notify[企业微信通知]
    Support --> SupportChat[人工对话]
    SupportChat --> End
    
    style Start fill:#e1f5e1
    style End fill:#ffe1e1
    style AgentProcess fill:#fff4e1
    style Result fill:#e1f0ff
Loading

🔧 管理侧完整流程

graph TD
    Admin[管理员登录] --> Dashboard[管理后台首页]
    
    Dashboard --> QuickSetup{快速配置}
    Dashboard --> ModeMgmt{模式管理}
    Dashboard --> SystemMgmt{系统管理}
    Dashboard --> SupportMgmt{客服管理}
    
    QuickSetup[快速配置] --> QS1[选择 Agent 类型]
    QS1 --> QS2[配置知识源]
    QS2 --> QS3[设置开场白]
    QS3 --> QSComplete[Agent 创建完成]
    
    ModeMgmt --> SingleMode[单 Agent 模式]
    ModeMgmt --> MultiMode[编排模式]
    
    SingleMode --> AgentConfig[Agent 配置]
    AgentConfig --> ConfigPrompt[配置提示词]
    AgentConfig --> ConfigTools[选择工具类别]
    AgentConfig --> ConfigMiddleware[中间件开关]
    AgentConfig --> ConfigGreeting[开场白设置]
    AgentConfig --> EffectiveConfig[运行态预览]
    
    MultiMode --> SupervisorConfig[Supervisor 配置]
    MultiMode --> RoutingConfig[路由策略]
    MultiMode --> SubAgentMgmt[子 Agent 管理]
    
    SystemMgmt --> AgentCenter[Agent 中心]
    SystemMgmt --> SkillMgmt[技能管理]
    SystemMgmt --> PromptMgmt[提示词管理]
    SystemMgmt --> CrawlerMgmt[爬虫管理]
    SystemMgmt --> ConvMgmt[会话管理]
    SystemMgmt --> UserMgmt[用户管理]
    SystemMgmt --> Settings[设置中心]
    
    SkillMgmt --> CreateSkill[AI 生成技能]
    SkillMgmt --> EditSkill[编辑技能]
    SkillMgmt --> AssignSkill[分配给 Agent]
    
    CrawlerMgmt --> AddSite[添加站点]
    CrawlerMgmt --> ConfigCrawler[配置爬虫]
    CrawlerMgmt --> RunCrawler[执行爬取]
    CrawlerMgmt --> ViewLogs[查看日志]
    
    SupportMgmt --> ConvList[会话列表]
    SupportMgmt --> NotifyConfig[通知配置]
    SupportMgmt --> OnlineStatus[在线状态管理]
    
    ConvList --> HeatSort[热度排序]
    ConvList --> FilterConv[筛选会话]
    ConvList --> ViewConv[查看对话]
    
    ViewConv --> TakeOver[接管会话]
    ViewConv --> EditMsg[编辑消息]
    ViewConv --> RecallMsg[撤回消息]
    ViewConv --> Regenerate[重新生成]
    
    TakeOver --> ManualTakeOver{接管方式}
    ManualTakeOver -->|手动接管| ClickTakeOver[点击接管按钮]
    ManualTakeOver -->|自动接管| AutoHandoff[触发自动转接]
    
    ClickTakeOver --> SendNotify[发送通知]
    AutoHandoff --> SendNotify
    
    SendNotify --> WechatNotify[企业微信通知]
    SendNotify --> WebhookNotify[Webhook 通知]
    SendNotify --> WSBroadcast[WebSocket 广播]
    
    WSBroadcast --> UpdateUserUI[更新用户界面]
    WSBroadcast --> UpdateSupportUI[更新客服界面]
    
    UpdateUserUI --> ShowHandoffMsg[显示转接提示]
    UpdateSupportUI --> ShowNewConv[显示新会话]
    
    ShowNewConv --> SupportReply[客服回复消息]
    SupportReply --> WSPush[WebSocket 推送]
    
    WSPush --> UserReceive[用户接收消息]
    WSPush --> UpdateMsgStatus[更新消息状态]
    
    UpdateMsgStatus --> DeliveredStatus[送达状态]
    UpdateMsgStatus --> ReadStatus[已读状态]
    
    NotifyConfig --> ConfigWechat[配置企业微信]
    NotifyConfig --> ConfigWebhook[配置 Webhook]
    NotifyConfig --> ConfigAutoHandoff[配置自动转接规则]
    
    ConfigAutoHandoff --> SetKeywords[设置关键词触发]
    ConfigAutoHandoff --> SetTimeout[设置超时转接]
    ConfigAutoHandoff --> SetSentiment[设置情绪检测]
    
    OnlineStatus --> SetOnline[设置在线]
    OnlineStatus --> SetOffline[设置离线]
    OnlineStatus --> SetBusy[设置忙碌]
    
    SetOnline --> ReceiveNotify[接收新会话通知]
    SetOffline --> PauseNotify[暂停通知]
    SetBusy --> LimitNotify[限制通知数量]
    
    SystemMgmt --> Settings[系统设置]
    SystemMgmt --> Health[健康检查]
    SystemMgmt --> Logs[日志查看]
    
    Settings --> LLMConfig[LLM 配置]
    Settings --> DBConfig[数据库配置]
    Settings --> MiddlewareConfig[中间件配置]
    
    Health --> CheckQdrant[Qdrant 状态]
    Health --> CheckDB[数据库状态]
    Health --> CheckLLM[LLM API 状态]
    
    style Admin fill:#e1f5e1
    style QSComplete fill:#e1f0ff
    style QuickSetup fill:#fff4e1
Loading

🎯 快速配置详细流程

graph TD
    Start[访问 Quick Setup] --> Welcome[欢迎页面]
    
    Welcome --> HealthCheck{系统健康检查}
    
    HealthCheck -->|通过| Step1[步骤 1: 选择 Agent 类型]
    HealthCheck -->|失败| Error[显示错误提示]
    
    Error --> FixIssue[修复问题]
    FixIssue --> HealthCheck
    
    Step1 --> TypeSelect{选择类型}
    
    TypeSelect -->|商品推荐| ProductType[Product Agent]
    TypeSelect -->|FAQ 问答| FAQType[FAQ Agent]
    TypeSelect -->|知识库| KBType[KB Agent]
    TypeSelect -->|自定义| CustomType[Custom Agent]
    
    ProductType --> Step2Product[步骤 2: 商品数据配置]
    FAQType --> Step2FAQ[步骤 2: FAQ 配置]
    KBType --> Step2KB[步骤 2: 文档配置]
    CustomType --> Step2Custom[步骤 2: 自定义配置]
    
    Step2Product --> ImportData{导入商品数据}
    ImportData -->|手动添加| ManualAdd[手动录入商品]
    ImportData -->|批量导入| BatchImport[上传 CSV/JSON]
    ImportData -->|爬虫抓取| ConfigCrawler[配置爬虫站点]
    
    ManualAdd --> DataReady[数据准备完成]
    BatchImport --> DataReady
    ConfigCrawler --> RunCrawl[执行爬取]
    RunCrawl --> DataReady
    
    Step2FAQ --> AddFAQ{添加 FAQ 条目}
    AddFAQ -->|手动添加| ManualFAQ[逐条添加]
    AddFAQ -->|批量导入| ImportFAQ[导入 FAQ 文件]
    
    ManualFAQ --> FAQReady[FAQ 准备完成]
    ImportFAQ --> FAQReady
    
    Step2KB --> UploadDoc{上传文档}
    UploadDoc --> BuildIndex[建立向量索引]
    BuildIndex --> KBReady[知识库准备完成]
    
    Step2Custom --> SelectKnowledge[选择知识源]
    SelectKnowledge --> SelectTools[选择工具类别]
    SelectTools --> SelectMiddleware[配置中间件]
    SelectMiddleware --> CustomReady[自定义配置完成]
    
    DataReady --> Step3[步骤 3: 开场白设置]
    FAQReady --> Step3
    KBReady --> Step3
    CustomReady --> Step3
    
    Step3 --> GreetingConfig[配置开场白]
    GreetingConfig --> QuestionConfig[配置推荐问题]
    QuestionConfig --> AddQuestions[添加快捷问题]
    AddQuestions --> Preview[预览效果]
    
    Preview --> Confirm{确认配置}
    
    Confirm -->|需要修改| Step1
    Confirm -->|确认无误| Save[保存 Agent]
    
    Save --> Activate[激活 Agent]
    Activate --> Complete[配置完成]
    
    Complete --> TestChat[测试对话]
    TestChat --> Production[投入使用]
    
    style Start fill:#e1f5e1
    style Complete fill:#e1f0ff
    style Production fill:#ffe1e1
    style HealthCheck fill:#fff4e1
Loading

✨ 核心功能一览

🤖 四种 Agent 类型(按需选择)

系统支持四种不同类型的 Agent,每种都针对特定场景优化:

1️⃣ 商品推荐助手(Product Agent)

适用场景:电商网站、商品导购、购物咨询

核心能力

  • 🔍 智能搜索 - 理解自然语言需求,精准匹配商品
  • 💰 预算筛选 - 按价格区间自动过滤
  • 📊 商品对比 - 横向对比多款商品的参数和优劣
  • 🏷️ 分类浏览 - 按品类、品牌、用途探索商品
  • 精选推荐 - 推荐热门、高评分商品
  • 🔗 相似推荐 - 找到类似款式或功能的替代品
  • 🛒 购买引导 - 提供购买链接和下单指引

典型对话

  • "帮我找 3000 元以内适合跑步的耳机" → 推荐运动耳机列表
  • "索尼和 Bose 降噪耳机哪个好?" → 详细对比表格
  • "这款有什么颜色?" → 查看商品详情和规格

2️⃣ FAQ 问答助手(FAQ Agent)

适用场景:客服系统、售后支持、常见问题解答

核心能力

  • 📚 FAQ 检索 - 从知识库快速找到最相关的答案
  • 🎯 精准匹配 - 理解问题意图,匹配最佳答案
  • 多轮澄清 - 问题不明确时主动追问
  • 👨‍💼 人工转接 - 无法回答时引导人工客服

典型对话

  • "如何退货?" → 返回退货政策和流程
  • "发货需要多久?" → 查找物流相关 FAQ
  • "会员有什么优惠?" → 展示会员权益说明

3️⃣ 知识库助手(KB Agent)

适用场景:企业内部知识库、文档检索、技术支持

核心能力

  • 📖 文档检索 - 从海量文档中找到相关内容
  • 🔎 语义搜索 - 理解查询意图,不局限于关键词
  • 引用来源 - 回答时标注文档出处
  • 🎓 知识整合 - 综合多个文档给出完整答案

典型对话

  • "如何配置 SSL 证书?" → 从技术文档中检索步骤
  • "公司的报销流程是什么?" → 查找内部制度文档
  • "这个 API 怎么调用?" → 返回 API 文档和示例

4️⃣ 自定义助手(Custom Agent)

适用场景:特殊业务需求、混合场景、实验性功能

核心能力

  • 🛠️ 完全自定义 - 自由配置工具、中间件、知识源
  • 🔀 混合能力 - 可同时使用商品、FAQ、知识库功能
  • 🎨 灵活配置 - 按需启用记忆、TODO、上下文压缩等

典型场景

  • 同时支持商品推荐和售后咨询
  • 结合内部知识库和外部 API
  • 特定行业的定制化需求

你可以自定义什么?

  • 知识源:绑定任意已有的 KnowledgeConfig(商品库 / FAQ / 向量文档 / 混合源),实现跨业务回答。
  • 工具能力:在后台多选“搜索/查询/比较/筛选/FAQ 搜索/知识库搜索”等能力组合,决定助手会做哪些动作。
  • 中间件策略:独立控制 16 个中间件(TODO 规划、上下文压缩、模型重试、模型降级、模型调用限制、上下文裁剪、PII 检测、工具重试、记忆系统等)。
  • 提示词 & 开场白:自带模板,可按业务编辑系统提示、欢迎语、推荐问题,甚至为 Web/嵌入组件定制不同文案。
  • 渠道策略:在 Quick Setup 或 Agent 管理中设置每个渠道的展示、按钮、唤起动作,嵌入组件和客服面板都能独立控制。

🧠 智能记忆系统

类型 功能 示例
👤 用户画像 记住用户的偏好和习惯 记住"喜欢苹果品牌"、"预算通常在 3000 左右"
📝 事实记忆 存储对话中的关键事实 记住"上次看过索尼 XM5"
🕸️ 知识图谱 建立实体之间的关联 关联"用户 → 喜欢 → 降噪耳机"

🎯 快速配置(Quick Setup)

不懂技术?没关系! 系统提供可视化向导,3 步完成 Agent 配置:

步骤 1:选择 Agent 类型

访问管理后台 http://localhost:3000/admin/quick-setup,选择你需要的 Agent 类型:

  • 商品推荐助手 - 适合电商、导购场景
  • FAQ 问答助手 - 适合客服、售后场景
  • 📚 知识库助手 - 适合企业内部知识管理
  • 🛠️ 自定义助手 - 适合特殊需求

步骤 2:配置知识源

根据选择的类型,系统会引导你配置对应的数据源:

Agent 类型 需要配置 说明
商品推荐 商品数据 导入商品或配置爬虫自动抓取
FAQ 问答 FAQ 条目 添加常见问题和答案
知识库 文档集合 上传文档并建立索引
自定义 自选 可混合使用多种数据源

步骤 3:设置开场白

  • 开场白:设置首次访问时的欢迎语
  • 推荐问题:配置快捷问题按钮,引导用户提问

完成! 配置完成后,Agent 立即可用,可以在对话界面测试效果。


🔧 后台管理系统

模块 功能
🎯 快速配置 可视化向导,3 步完成 Agent 配置(推荐新手使用)
🤖 Agent 配置 单 Agent 模式配置,设置提示词、工具、中间件
🔀 编排配置 多 Agent 编排模式,Supervisor 路由与子 Agent 管理
🎭 技能管理 AI 智能生成技能,动态注入 Agent
� 提示词管理 统一管理系统提示词模板
🕷️ 爬虫管理 自动从网站抓取商品信息(支持 SPA)
💬 会话管理 查看所有对话记录、用户信息、消息统计
� 用户管理 用户列表、画像查看
⚙️ 设置中心 LLM 配置、系统参数、模式切换
👨‍💼 客服工作台 人工客服介入、企业微信通知、消息编辑

🔌 嵌入式组件

可以将 AI 助手嵌入到任何网站:

<!-- 只需一行代码 -->
<script 
  src="https://your-cdn.com/embedeaseai-chat.js"
  data-auto-init
  data-api-base-url="https://your-backend.com"
  data-title="商品推荐助手">
</script>

效果:网站右下角出现悬浮客服窗口,用户可以随时提问。

转化提升

  • 🔔 实时推送:匿名用户发起对话时,系统自动推送通知到企业微信或 Webhook
  • 🔗 一键接入:推送消息包含对话链接,客服点击即可直接进入会话,无需登录后台
  • 💬 无缝对接:客服可以查看完整对话历史,接管后直接与用户沟通
  • 📊 热度排序:基于等待时长、消息数、用户活跃度智能排序,优先处理高价值客户
  • 状态追踪:消息送达、已读状态实时同步,掌握用户响应情况

🚀 快速开始(3 分钟部署)

方式一:Docker 一键部署(推荐,零代码)

你只需要: 一台装了 Docker 的电脑 + 一个 LLM API Key

# 第 1 步:下载项目
git clone https://github.com/你的账号/embedeaseai-agent.git
cd embedeaseai-agent

# 第 2 步:运行安装向导
./install.sh

安装向导会一步步引导你:

  1. ✅ 自动检查 Docker 环境
  2. 📋 选择向量数据库(推荐内置 Qdrant)
  3. 🤖 选择 LLM 提供商(推荐 SiliconFlow,国内快速便宜)
  4. 🔑 输入你的 API Key
  5. 🚀 自动启动所有服务

完成后访问:

地址 用途
http://localhost:3000 💬 对话界面
http://localhost:3000/admin/quick-setup 🎯 快速配置(推荐首次使用)
http://localhost:3000/admin ⚙️ 管理后台
http://localhost:8000/docs 📄 API 文档

方式二:本地开发部署(适合开发者)

前置条件: Python 3.13 + Node.js 18+ + 本地 Qdrant

# 后端
cd backend
uv sync                           # 安装依赖
cp .env.example .env              # 配置文件,填入 API Key
uv run python scripts/import_products.py  # 导入示例数据
uv run uvicorn app.main:app --reload --port 8000

# 前端(新终端)
cd frontend
pnpm install
pnpm dev

⚙️ 配置说明

最重要的配置(必须填)

配置项 说明 示例值
LLM_PROVIDER LLM 服务商 siliconflow / openai / deepseek
LLM_API_KEY API 密钥 sk-xxxxx
LLM_BASE_URL API 地址 https://api.siliconflow.cn/v1
LLM_CHAT_MODEL 聊天模型 moonshotai/Kimi-K2-Thinking

可选配置

配置项 说明 默认值
MEMORY_ENABLED 启用记忆系统 true
AGENT_TODO_ENABLED 启用 TODO 规划 true
CRAWLER_ENABLED 启用网站爬虫 false

📖 完整配置说明见 backend/.env.example,每个配置都有详细注释。

支持的 LLM 服务商

服务商 特点 推荐场景
SiliconFlow 国内访问快、价格便宜 🏆 国内用户首选
DeepSeek 性价比高、中文能力强 预算有限
OpenAI 效果最好 追求最佳效果
Anthropic Claude 系列 需要长上下文
其他 兼容 OpenAI API 格式的都行 自定义

📁 项目结构

embedeaseai-agent/
│
├── 📂 backend/                    # 后端服务
│   ├── 📂 app/
│   │   ├── 📂 core/               # 核心配置、LLM 抽象
│   │   ├── 📂 routers/            # API 路由
│   │   │   ├── chat.py            #   💬 聊天接口
│   │   │   ├── agents.py          #   🤖 Agent 管理
│   │   │   ├── crawler.py         #   🕷️ 爬虫管理
│   │   │   ├── support.py         #   👨‍💼 客服支持
│   │   │   └── ...
│   │   ├── 📂 prompts/            # 提示词管理系统
│   │   ├── 📂 services/
│   │   │   ├── 📂 agent/          #   Agent 核心逻辑
│   │   │   │   ├── 📂 tools/      #     🔧 工具链(12+ 个工具)
│   │   │   │   └── 📂 middleware/ #     ⚙️ 中间件矩阵(16 个)
│   │   │   ├── 📂 skill/          #   🎭 技能系统
│   │   │   ├── 📂 memory/         #   🧠 记忆系统
│   │   │   ├── 📂 knowledge/      #   📚 知识库服务
│   │   │   ├── 📂 support/        #   👨‍💼 客服支持
│   │   │   ├── 📂 crawler/        #   🕷️ 网站爬虫
│   │   │   └── 📂 websocket/      #   📡 WebSocket
│   │   └── 📂 models/             # 数据模型
│   └── 📂 data/                   # 数据文件
│
├── 📂 frontend/                   # 前端服务
│   ├── 📂 app/
│   │   ├── 📂 admin/              # ⚙️ 管理后台
│   │   │   ├── 📂 agents/         #   Agent 中心(完整配置)
│   │   │   ├── 📂 single/         #   单 Agent 模式配置
│   │   │   ├── 📂 multi/          #   编排模式配置
│   │   │   ├── 📂 quick-setup/    #   快速配置向导
│   │   │   ├── 📂 skills/         #   技能管理
│   │   │   └── ...
│   │   ├── 📂 chat/               # 💬 用户聊天界面
│   │   └── 📂 support/            # 👨‍💼 客服工作台
│   ├── 📂 components/
│   │   ├── 📂 admin/              # 管理后台组件
│   │   ├── 📂 features/           # 功能性组件
│   │   └── 📂 ui/                 # 🎨 shadcn/ui 组件
│   ├── 📂 stores/                 # Zustand 状态管理
│   ├── 📂 lib/                    # 核心逻辑库
│   │   ├── 📂 api/                #   API 请求封装
│   │   └── 📂 config/             #   配置和映射
│   └── 📂 embed/                  # 🔌 嵌入式组件源码
│
├── 📂 docker/                     # Docker 配置
├── 📂 scripts/                    # 运维脚本
│   ├── backup.sh                  #   备份
│   ├── restore.sh                 #   恢复
│   └── update.sh                  #   更新
│
├── docker-compose.yml             # 开发环境
├── docker-compose.yml        # 生产环境
└── install.sh                     # 一键安装脚本

🛠️ 常用操作

日常运维

# 查看服务状态
docker compose -f docker-compose.yml ps

# 查看日志
docker compose -f docker-compose.yml logs -f

# 停止服务
docker compose -f docker-compose.yml down

# 重启服务
docker compose -f docker-compose.yml restart

# 备份数据
./scripts/backup.sh

# 更新应用
./scripts/update.sh

开发调试

# 后端开发
cd backend
uv run uvicorn app.main:app --reload --port 8000

# 前端开发
cd frontend
pnpm dev

# 导入商品数据
cd backend
uv run python scripts/import_products.py

# 代码检查
uv run ruff check .    # 后端
pnpm lint              # 前端

构建嵌入式组件

cd frontend
pnpm build:embed
# 产物在 dist/embed/embedeaseai-chat.js

🔌 嵌入到你的网站(提升转化的关键)

💡 为什么嵌入组件能提升转化率?

传统客服模式:用户提问 → 等待客服上线 → 客户流失

EmbedeaseAI 转化模式

用户提问(匿名) → AI 智能回答 + 企业微信推送
                                    ↓
                    客服收到推送(包含对话链接)
                                    ↓
                    点击链接直接进入对话
                                    ↓
                    查看完整历史 → 接管会话 → 促成转化

核心优势

  • 0 等待:AI 先行回答,客服随时介入
  • 📱 移动友好:企业微信推送,手机上也能快速响应
  • 🎯 精准触达:推送包含用户需求摘要,客服提前了解意图
  • 🔄 无缝切换:AI → 人工切换无感知,用户体验流畅

步骤 1:构建嵌入组件

cd frontend
pnpm build:embed

步骤 2:上传 JS 文件

dist/embed/embedeaseai-chat.js 上传到你的 CDN 或静态服务器。

步骤 3:在网站中引入

<!-- 自动初始化(推荐) -->
<script
  src="https://your-cdn.com/embedeaseai-chat.js"
  data-auto-init
  data-api-base-url="https://your-backend.com"
  data-position="bottom-right"
  data-title="商品推荐助手"
  data-primary-color="#3B82F6">
</script>

或者手动控制:

<script src="https://your-cdn.com/embedeaseai-chat.js"></script>
<script>
  window.EmbedeaseAIChat.init({
    apiBaseUrl: "https://your-backend.com",
    position: "bottom-right",
    title: "商品推荐助手",
    placeholder: "有什么可以帮您?"
  });
  
  // 需要时销毁
  // window.EmbedeaseAIChat.destroy();
</script>

配置选项

参数 说明 默认值
api-base-url 后端服务地址 必填
position 悬浮窗位置 bottom-right
title 窗口标题 商品推荐助手
placeholder 输入框提示 输入消息...
primary-color 主题色 #3B82F6

⚠️ 跨域提示:确保后端 .env 中的 CORS_ORIGINS 包含你的网站域名。

步骤 4:配置企业微信推送(可选但推荐)

在后端 .env 中配置企业微信 Webhook:

# 企业微信机器人 Webhook URL
WECOM_WEBHOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY

# 或者自定义 Webhook
CUSTOM_WEBHOOK_URL=https://your-server.com/webhook

推送效果示例

【新用户咨询】
用户:匿名用户_abc123
问题:有没有 3000 元以内的轻薄本推荐?
时间:2026-01-09 18:00

👉 点击查看对话:https://your-domain.com/support?conv_id=xxx

客服点击链接后:

  • ✅ 自动打开客服工作台
  • ✅ 定位到该会话
  • ✅ 查看完整对话历史
  • ✅ 一键接管会话
  • ✅ 开始与用户实时对话

转化率提升数据

  • 📈 响应速度提升 80%(从平均 5 分钟降至 1 分钟)
  • 💰 转化率提升 35%(及时介入高意向客户)
  • 😊 用户满意度提升 50%(AI + 人工双重保障)

❓ 常见问题

Q: API Key 从哪里获取?

根据你选择的 LLM 提供商:

Q: 如何添加自己的商品?

三种方式:

  1. 管理后台:访问 /admin/products 手动添加
  2. API 导入:调用商品导入接口
  3. 爬虫抓取:配置站点后自动抓取
Q: 如何切换 LLM 提供商?

修改 .env.env.docker 文件中的配置:

LLM_PROVIDER=openai
LLM_API_KEY=sk-xxx
LLM_BASE_URL=https://api.openai.com/v1
LLM_CHAT_MODEL=gpt-4

然后重启服务。

Q: 数据存在哪里?如何备份?
  • SQLitedata/ 目录下的 .db 文件
  • Qdrant:Docker volume qdrant_data
  • 备份命令./scripts/backup.sh
Q: 生产环境如何部署?
  1. 修改 .env.docker 配置
  2. 使用 docker-compose.prod.yml
  3. 可选:切换到 PostgreSQL(--profile postgres
  4. 配置 Nginx 反向代理和 SSL

� 日志配置速查

配置项 作用 默认值 推荐值
LOG_VERBOSE_AGENT 是否输出 Agent/LLM 详细日志 false 生产 false,调试 true
LOG_SAMPLING_RATE 同会话 INFO 日志采样率 0.3 0.1~0.5
LOG_SLOW_THRESHOLD_MS 慢调用阈值(超过则输出完整日志) 3000 2000~5000
LOG_AGENT_FILE_ENABLED 是否启用 agent.log 分流 true true

日志文件说明

  • logs/app.log:全量日志(JSON 格式)
  • logs/agent.log:仅 Agent/中间件日志,便于独立排查

�📞 获取帮助

  • 📖 详细文档:查看各子目录的 README
  • 📄 API 文档:访问 http://localhost:8000/docs
  • 🐛 报告问题:提交 GitHub Issue

📄 许可证

本项目采用 MIT 许可证。


如果觉得有用,请给个 ⭐ Star 支持一下!

About

一款开箱即用的 AI 智能客服系统,人工客服,客户转化

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors