技能学习
Jul 09, 2026

如何让Hermes给网站配置一个会做业务的AI智能客服?

方案架构

四层架构

API 端点接收问题 → 搜索文章 → 加载知识库 → 调用AI → 返回答案
知识库Markdown 文件(core.md),覆盖网站全部内容:文章、课程、项目、VIP权益、联系方式
前端 UI悬浮按钮 + 居中弹窗 + 消息气泡 + 打字动画
AI 模型DeepSeek V4 Flash(通过 OpenAI Compatible API 接入)

实施步骤

第一步:后端 API(api/ai-chat.php)

核心逻辑如下:

  1. 安全问题接收 — JSON POST { question: "..." }
  2. 搜索公开文章 — MySQL LIKE 匹配 title 和 content,只搜 access_type='public'
  3. 加载知识库 — file_get_contents('knowledge/core.md'),将网站全部业务内容注入上下文
  4. 调用 AI — stream_context_create → file_get_contents → DeepSeek API
  5. 返回答案 — JSON { reply: "...", links: [...] }

⚡ 关键发现:知识库应该放在 User Message 中,而非 System Prompt

实际测试发现,部分模型对长篇 System Prompt 的遵循度不高。把知识库以"根据以下信息回答客户问题…"的形式放入 User Message,模型的遵从度大幅提升。

第二步:建立知识库(knowledge/core.md)

知识库是一个 Markdown 文件,需覆盖以下内容:

板块内容
网站定位使命、核心模式、目标客户
页面索引所有重要页面链接
项目/课程/文章完整列表,含标题、简介、链接、价格(如有)
VIP 权益7项权益 + 价格 + 支付方式
合作模式OPC返佣、共创计划
安全规则不可透露的敏感信息清单

维护:每次新增文章/课程/项目需同步更新知识库,保证 AI 始终掌握最新信息。

第三步:前端聊天 UI

三个文件协同工作:

🎨

ai-chat.css

悬浮按钮样式、居中弹窗、消息气泡、打字动画、移动端适配

⚙️

ai-chat.js

弹窗开关、消息渲染、fetch API 调用、错误处理

🔗

集成

header.php 加载 CSS、footer.php 加载 JS + 图标 HTML

关键踩坑经验

1. 知识库该放哪里?

我们测试了 deepseek-v4-flash、deepseek-v4-pro、hermes-agent 三个模型。结论:知识库放入 User Message 比 System Prompt 更可靠。System Prompt 中长篇的业务描述常被模型忽略,而 User Message 以"根据以下信息回答"开头,模型遵从度显著提高。

2. API Key 安全

API Key 必须写在 PHP 文件中作为常量(define),而不能出现在任何前端 JS/HTML 源代码中。这样即使客户 F12 查看源码也无法获取 Key。

3. 搜索策略

简单但有效的三层搜索:① 整句 LIKE 匹配 → ② 无结果时提取关键词逐词 OR 匹配 → ③ 仍无结果返回默认引导链接。不需要复杂的向量数据库。

4. 图标位置对齐

多个悬浮图标通过 top: calc(50% + Npx) 错开位置。新增的 AI 图标需要加 !important 避免被父级规则覆盖。

5. 模型测试对比

模型结果建议
deepseek-v4-flash✅ 可用,响应快,中文流畅推荐
deepseek-v4-pro⚠️ 忽略知识库不推荐
hermes-agent❌ 指令遵循差不推荐

扩展方向

  • 多轮对话记忆 — 目前只保存最近对话,可扩展为持久化历史记录
  • 向量搜索 — 当文章量增长到数百篇时,MySQL LIKE 效率会降低,可引入 embedding + 向量搜索
  • 人工接管 — AI 无法回答时自动转接人工客服
  • 多语言 — 扩展英语、日语等多语言支持

相关阅读

评论区

0 条评论 · 评论需审核通过后显示

加载评论中...

发表评论

0/2000

← 返回
🔍
客服图标
微信客服图标
🤖
×

微信客服

微信二维码