申请试用

解锁文章后加作者微信获取邀请码

微信二维码

微信:cxzk_168

扫码联系我们

接入遇到问题?添加微信获得1v1技术协助

微信二维码

微信号:cxzk_168

JitKnow 开放平台 · Developer API

用一行代码,给你的产品
装上 AI 知识大脑

JitKnow 开放平台提供嵌入式 Widget、RESTful Chat API 和 SSE 流式输出,5 分钟接入,让任何网站、App 拥有专属 AI 知识库问答能力。

< 5 分钟
快速接入
SSE 流式
实时输出
三层安全
Key + IP + 限流
Citations
引用溯源

三种能力,覆盖所有接入场景

无论你是嵌入网页、调用 API 还是构建完整应用,都有对应方案

嵌入式 Widget

悬浮气泡按钮或 iframe 两种形态,1 段代码粘贴即用,支持自定义颜色、位置、尺寸。

  • 悬浮气泡 Widget
  • iframe 无缝嵌入
  • 支持深色 / 浅色主题
查看接入指南

对话 Chat API

标准 RESTful 接口,支持 SSE 流式输出,完整多轮对话上下文,并返回答案的知识来源引用。

  • SSE 实时流式响应
  • 多轮对话 conversationId
  • Citations 知识引用溯源
查看 API 文档

安全与管控

API Key 绑定单个助手,配合 IP 白名单、RPM 限流和日调用配额,三层防护保障服务安全稳定。

  • IP 白名单访问控制
  • RPM 速率 + 日配额
  • Key 随时启/禁/过期
查看安全说明

5 步快速开始

从注册到完成首次 API 调用,只需 5 分钟

1

注册并创建 AI 助手

在 JitKnow 平台注册账户,创建一个 AI 助手,上传你的产品文档、FAQ、知识文章,构建专属知识库。

前往注册
2

获取 API Key

在助手详情页 → API 接入 Tab → 创建 API Key。记录 assistantIdjk-xxxx 格式的 Key。

📌 一个 Key 只能访问绑定的助手 🔒 Key 格式:jk-xxxxxxxxxxxxxxxx
3

验证接口连通性

# 获取助手信息,验证 Key 是否有效
curl https://know.jitword.com/open/v1/info \
  -H "Authorization: Bearer jk-xxxxxxxxxxxxxxxx"

返回 200 及助手信息则表示 Key 有效,可以继续下一步。

4

发起流式对话

curl -X POST https://know.jitword.com/open/v1/chat \
  -H "Authorization: Bearer jk-xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"message":"产品有哪些核心功能?"}' \
  --no-buffer

# 响应:SSE 流式输出
event: conversation_meta
data: {"conversation_id":"conv_xxx"}

event: block_delta
data: {"delta":"本产品核心功能包括..."}

event: block_replace
data: {"blocks":[{"type":"text","content":"完整回答内容..."}]}

嵌入你的产品

复制下方 Widget 代码,粘贴到你的网页 </body> 前,立即获得悬浮 AI 助手按钮。或直接使用 iframe 嵌入方式

查看完整嵌入文档
嵌入接入

两种嵌入方式,自由选择

悬浮气泡适合全局服务,iframe 适合页面内嵌

HTML复制粘贴到 </body> 前即可
<script>
  window.JitMindConfig = {
    assistantId: 'your-assistant-id',
    token:       'jk-xxxxxxxxxxxxxxxx',
    baseUrl:     'https://know.jitword.com',
    btnLabel:    '智能助手',  // 按钮文案
    btnColor:    '#6366F1',   // 按钮颜色
    theme:       'light',     // 'light' | 'dark'
    position:   'bottom-right'
  }
</script>
<script src="https://know.jitword.com/know/embed.js"></script>
⚠️ 安全提醒:生产环境建议开启 IP 白名单,防止 Key 被滥用。公开页面可设置每日调用配额上限。
效果预览
智能助手
智能助手
×
你好!我是你的智能助手,有什么可以帮助你?
产品支持哪些文件格式?
支持 PDF、Word、Excel、Markdown、网页链接等 20+ 格式...
HTML适合嵌入页面特定区域
<iframe
  src="https://know.jitword.com/know/embed/{assistantId}
       ?key=jk-xxxxxxxxxxxxxxxx&theme=light"
  width="400"
  height="600"
  style="border:none;border-radius:16px;
         box-shadow:0 4px 24px rgba(0,0,0,0.12)"
  allow="clipboard-write"
></iframe>

{assistantId}jk-xxx 替换为你的真实值即可。

效果预览(左侧业务页 + 右侧嵌入)
助手
你好,有什么问题?
功能介绍
产品支持...

JitMindConfig 参数说明

参数名类型必填默认值说明
assistantIdstring必填AI 助手的唯一 ID
tokenstring必填API Key,格式为 jk-xxx
baseUrlstring可选script originAPI 服务地址,私有化部署时需指定
theme'light'|'dark'可选'light'界面主题,浅色或深色
position'bottom-right'|'bottom-left'可选'bottom-right'悬浮按钮位置
btnColorstring可选'#6366F1'悬浮按钮颜色(CSS 颜色值)
btnLabelstring可选'智能助手'悬浮按钮文案
widthnumber可选380面板宽度(px,PC 端)
heightnumber可选600面板高度(px,PC 端)
API 参考

接口文档

Base URL: https://know.jitword.com/open/v1

鉴权方式

所有 API 请求均需在 Header 中携带 API Key:

Authorization: Bearer jk-xxxxxxxxxxxxxxxx
GET /info 获取助手信息

获取当前 API Key 绑定的助手信息,可用于初始化欢迎语、助手名称展示等。

请求示例
curl https://know.jitword.com/open/v1/info \
  -H "Authorization: Bearer jk-xxxxxxxxxxxxxxxx"
响应示例 200 OK
{
  "id": "asst_abc123",
  "name": "产品知识库助手",
  "description": "负责解答产品相关问题",
  "welcomeMessage": "你好!我是产品助手,有什么可以帮你?"
}
POST /chat 发起对话(SSE 流式)

向助手发送消息并获取 SSE 流式回复。支持多轮对话,服务端推送事件格式。

请求 Body
{
  "message":        "如何申请退款?",
  // 可选,续接多轮对话
  "conversationId": "conv_xxx"
}
请求 Headers
Authorization: Bearer jk-xxx
Content-Type: application/json
Accept: text/event-stream
SSE 事件序列说明
事件名数据字段说明
conversation_metaconversation_id返回对话 ID,用于续接多轮对话
block_start新内容块开始,可用于显示 loading
block_deltadelta流式增量文本,每帧追加到展示区域
block_replaceblocks[0].content完整最终内容,用于替换流式展示结果
[DONE]流结束标志,关闭连接

多语言 SDK 示例

选择你熟悉的语言,直接复制使用

# 1. 获取助手信息
curl https://know.jitword.com/open/v1/info \
  -H "Authorization: Bearer jk-xxxxxxxxxxxxxxxx"

# 2. 发起流式对话
curl -X POST https://know.jitword.com/open/v1/chat \
  -H "Authorization: Bearer jk-xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"message":"产品有哪些核心功能?"}' \
  --no-buffer

# 3. 多轮对话(续接)
curl -X POST https://know.jitword.com/open/v1/chat \
  -H "Authorization: Bearer jk-xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"message":"能详细说说第一点吗?","conversationId":"conv_xxx"}' \
  --no-buffer
// JitKnow SSE 流式对话 - JavaScript 示例
const askAssistant = async (message, conversationId) => {
  const response = await fetch('https://know.jitword.com/open/v1/chat', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer jk-xxxxxxxxxxxxxxxx',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ message, conversationId })
  })

  const reader  = response.body.getReader()
  const decoder = new TextDecoder()
  let buffer = ''
  let currentEvent = ''  // 跨行追踪事件类型

  while (true) {
    const { done, value } = await reader.read()
    if (done) break
    buffer += decoder.decode(value, { stream: true })
    const lines = buffer.split('\n')
    buffer = lines.pop() || ''

    for (const line of lines) {
      if (line.startsWith('event: ')) {
        currentEvent = line.slice(7).trim(); continue
      }
      if (!line.trim()) { currentEvent = ''; continue }
      if (!line.startsWith('data: ')) continue
      const raw = line.slice(6).trim()
      if (!raw || raw === '[DONE]') continue
      const data = JSON.parse(raw)

      if (currentEvent === 'block_delta') {
        document.getElementById('output').textContent += data.delta
      }
      if (currentEvent === 'block_replace') {
        document.getElementById('output').textContent = data.blocks[0].content
      }
    }
  }
}

askAssistant('产品有哪些核心功能?')
# JitKnow SSE 流式对话 - Python 示例
import requests
import json

API_KEY  = "jk-xxxxxxxxxxxxxxxx"
BASE_URL = "https://know.jitword.com/open/v1"
HEADERS  = {"Authorization": f"Bearer {API_KEY}"}

# 获取助手信息
def get_info():
    resp = requests.get(f"{BASE_URL}/info", headers=HEADERS)
    return resp.json()

# 流式对话(SSE)
def chat_stream(message, conversation_id=None):
    body = {"message": message}
    if conversation_id:
        body["conversationId"] = conversation_id

    with requests.post(
        f"{BASE_URL}/chat",
        headers={**HEADERS, "Content-Type": "application/json"},
        json=body,
        stream=True
    ) as resp:
        current_event = ""
        for line in resp.iter_lines(decode_unicode=True):
            if line.startswith("event: "):
                current_event = line[7:].strip()
            elif line.startswith("data: "):
                raw = line[6:].strip()
                if not raw or raw == "[DONE]": continue
                data = json.loads(raw)
                if current_event == "block_delta":
                    print(data["delta"], end="", flush=True)
                elif current_event == "block_replace":
                    print()  # 换行
            elif not line:
                current_event = ""

# 使用示例
info = get_info()
print(f"助手名称:{info['name']}")
chat_stream("产品有哪些核心功能?")

在线体验 Demo

登录 JitKnow,创建助手,在「API 接入」Tab 下载本地 Demo,5 分钟内跑通完整效果

一键下载 Demo HTML

在助手「API 接入」Tab 下载预配置好的演示 HTML,浏览器直接打开即可测试气泡模式或 iframe 模式。

替换 API Key 即可运行

Demo HTML 中已预置助手 ID,将 token 字段替换为你的 Key,即可完整体验问答、流式输出全流程。

源码完全透明

Demo 是标准 HTML 文件,可直接查看源码,快速理解接入方式,复制到你的项目中二次开发。

jitknow-demo.html
<script>
window.JitMindConfig = {
assistantId: 'asst_demo',
token: 'jk-xxxxxxxx',
btnLabel: '问问 AI'
}
</script>
<script src="...embed.js"></script>
问问 AI

这就是接入后,用户在你的页面看到的效果

安全与限流

三层安全防护体系

从 Key 权限到调用频次,全方位保障你的 API 服务稳定安全

API Key 绑定助手
每个 Key 只能访问创建时绑定的单个助手,无法越权访问其他助手数据。Key 被泄露后可立即在控制台禁用或删除,不影响其他 Key。
IP 白名单(可选)
为 Key 配置允许访问的来源 IP 列表,非白名单 IP 的请求将被直接拒绝(HTTP 403),适合服务端调用场景。留空则不限制 IP。
RPM 速率限流
每分钟请求次数(RPM)上限,基于内存滑动窗口实现,超限返回 HTTP 429。防止突发流量冲击知识库服务。
日调用配额
每日最大调用次数,基于数据库计数,跨天自动重置。超出配额后返回 HTTP 429,适合控制 B 端客户用量。
Key 过期时间
可为 Key 设置有效期,过期后自动失效,适合临时授权或演示场景。可在控制台随时延期或永久有效。
调用日志与统计
每次 API 调用均记录日志,包含时间、IP、耗时、Token 用量,支持在控制台查询和导出,便于审计和成本分析。

常见问题

接入过程中最常遇到的问题与解答

API Key 泄露了怎么办?
立即在 JitKnow 控制台 → 助手详情 → API 接入 Tab 中找到该 Key,点击「禁用」或「删除」。Key 被禁用后所有使用该 Key 的请求均返回 401,不影响其他 Key 和助手的正常运行。建议重新创建一个新 Key 并更新你的服务配置。
支持私有化部署后自托管 API 吗?
完全支持。私有化部署的 JitKnow 实例与 SaaS 版本功能完全一致,开放 API 同样可用。只需将 baseUrl 和 API 调用地址改为你的私有服务地址(如 https://your-domain.com)即可。详见私有化部署文档
流式接口和非流式有什么区别?
当前开放 API 的 /chat 接口统一使用 SSE 流式输出,AI 生成的内容实时推送,用户可看到逐字输出效果,体验更流畅。
如果你的场景需要等待完整回答(如批量处理),可监听 block_replace 事件,该事件携带最终完整内容,关闭连接后处理即可。
Citations 引用溯源是怎么实现的?
JitKnow 基于 RAG(检索增强生成)技术,每次回答都会从知识库中检索相关文档片段作为参考。block_replace 事件的 blocks 数组中包含 citations 字段,列出每条引用的文档名称、页码和原文片段,你可以在 UI 中展示「参考来源」,提升用户信任度。
如何更换对话中使用的底层 AI 模型?
底层模型在 JitKnow 控制台「助手设置」中配置,支持 GPT-4o、Claude、Gemini、Deepseek 等主流模型,以及自定义 API 兼容模型。修改助手的模型配置后,API 调用会自动使用新模型,无需更改接入代码。
调用量超出配额后会怎样?
超出 RPM 限流或日调用配额后,接口返回 HTTP 429 Too Many Requests,响应体包含 {"message":"Rate limit exceeded"}。建议在前端做友好提示,如「服务繁忙,请稍后再试」。配额会在每天 0 点(UTC+8)自动重置,RPM 限流为滑动窗口实时重置。

立即开始,免费体验完整 API 能力

注册即获 14 天免费试用,无需信用卡,5 分钟完成首次接入

私有化部署需求请查看部署方案