AI 聊天
每个 Jamdesk 文档站点都内置 AI 聊天助手,访客可提问并从文档中获取带引用的答案。
每个 Jamdesk 站点都包含一个聊天助手,可根据你的文档回答访客问题。它会检索相关章节,将其发送给 Claude,并流式返回带有源页面链接的响应。所有套餐默认启用聊天功能,且无需额外付费。
屏幕截图显示的是英文界面。
下面是聊天助手的实际运行效果:
使用场景
集成你的 API 的开发者询问 "How do I authenticate requests?",并获得包含代码示例的准确步骤以及源页面链接。
工作原理
每次构建期间,Jamdesk 会将页面拆分为多个章节,并将其存储为可搜索的嵌入向量。
“Ask AI”按钮(或 Cmd+I / Ctrl+I)可在任意页面打开聊天面板。
系统会检索相关章节,将其作为上下文发送给 Claude,随后流式返回响应,并附上指向源页面的引用链接。
功能
| 功能 | 详情 |
|---|---|
| 流式响应 | 实时接收答案 |
| 引用链接 | 每个答案都会链接到所参考的文档页面 |
| 消歧 | 当问题匹配多个主题时,AI 会询问访客具体指的是哪个主题 |
| 对话上下文 | 保存每个浏览器标签页中的 10 条消息历史记录 |
| 起始问题 | 根据文档自动生成,也可以在 docs.json 中自行设置 |
| 键盘快捷键 | 使用 Cmd+I / Ctrl+I 切换,使用 Escape 关闭 |
| Markdown 渲染 | 响应中会渲染代码块、表格和列表 |

配置
聊天功能开箱即用,无需任何配置。只有在需要自定义起始问题或关闭聊天功能时,才需要向 docs.json 添加 chat 块。chat 字段是可选的,其中两个设置都有合理的默认值。
{
"chat": {
"enabled": true,
"starterQuestions": [
"How do I get started?",
"What API endpoints are available?"
]
}
}| 字段 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled | boolean | true | 设置为 false 可从站点中移除 Ask AI 按钮、聊天面板和键盘快捷键 |
starterQuestions | string[] | auto-generated | 面板打开时显示的最多 4 个问题(每个问题为 5–200 个字符)。省略时会根据文档自动生成;设置为 [] 则不显示问题 |
起始问题
起始问题是访客输入内容前显示在聊天面板中的建议提示语:这些一键示例可以帮助访客了解可询问的内容。如果你在 docs.json 中省略 starterQuestions,Jamdesk 会在每次构建时根据文档自动生成问题,确保它们随着文档增长而保持相关性。
如需设置自定义问题,请将其列在 starterQuestions 数组中。当支持团队反复处理相同问题,并希望优先展示这些问题时,这一功能非常实用:
{
"chat": {
"starterQuestions": [
"How do notifications work?",
"Tell me more about analytics"
]
}
}你最多可以设置 4 个起始问题,每个问题长度为 5–200 个字符。如需完全不显示起始问题,请将 starterQuestions 设置为空数组([])。
禁用聊天
所有套餐默认启用聊天功能。如需关闭,请将 enabled 设置为 false。这会移除 Ask AI 按钮、聊天面板以及 Cmd+I / Ctrl+I 快捷键:
{
"chat": {
"enabled": false
}
}禁用聊天不会影响搜索。AI 聊天和搜索是独立的功能,因此即使关闭聊天,文档仍然可以被完整搜索。
限制
| 限制 | 值 |
|---|---|
| 最大消息长度 | 2,000 个字符 |
| 最大响应长度 | 2,048 个令牌 |
| 速率限制 | 每个访客每个站点 60 秒内最多 10 个请求 |
| 对话历史记录 | 每个标签页 10 条消息 |
| 起始问题 | 最多 4 个 |
聊天功能支持自定义域名。/_chat 端点与当前站点同源,因此文档部署到任何域名后都可以正常使用。
每次构建期间,Jamdesk 会将页面拆分为多个章节,并为每个章节存储向量嵌入。当访客提出问题时,系统会运行混合搜索(结合关键词匹配与语义相似度),从文档中找出最相关的章节。系统会将这些章节作为上下文发送给 Claude,并要求其仅根据所提供的文档回答。系统通过将 Claude 响应中的页面引用与检索到的章节进行匹配来提取引用。
