Skip to main content
LangChat Pro 提供开放的 API 接口,支持外部系统通过 RESTful API 调用知识库检索服务,实现无缝集成和二次开发。

概述

知识库 API 基于 RAG 技术栈,提供高性能的语义检索能力:
  • 语义搜索:基于向量相似度的智能检索
  • 多知识库支持:可同时检索多个知识库
  • 灵活配置:支持自定义检索参数
  • 高可用性:支持负载均衡和容错机制

创建 API Key

API Key 是访问知识库检索服务的认证凭证: image-20250926104541384

API Key 配置

配置项说明建议
密钥名称便于管理的标识名称使用业务相关命名
有效期密钥的有效时间范围定期轮换,建议 90 天
权限范围可访问的知识库范围按需分配最小权限
IP 限制允许访问的 IP 地址生产环境建议启用
API Key 具有访问知识库的完整权限,请妥善保管,避免泄露。建议定期轮换密钥。

API 接口文档

基础信息

项目详情
接口地址http://your-domain.com/v1/rag/search
请求方式POST
内容类型application/json
认证方式Bearer Token
示例中使用本地地址,生产环境请替换为实际域名。

请求头配置

Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

请求参数

参数名类型必填默认值说明
knowledgeIdsarray-知识库 ID 列表
textstring-检索查询内容
maxResultsnumber10返回结果数量上限
minSimilaritynumber0.75最小相似度阈值

响应参数

字段名类型说明
codenumber响应状态码
messagestring响应消息
dataarray检索结果列表

检索结果对象

字段名类型说明
knowledgeIdstring知识库唯一标识
docsNamestring文档名称
docsIdstring文档唯一标识
embeddingIdstring向量嵌入标识
textstring匹配的文本内容
scorenumber相似度分数 (0-1)
rerankedScorenumber重排序后的分数
sourcestring数据来源类型
metadataobject元数据信息

调用示例

cURL 请求示例

curl --request POST \
  --url "http://127.0.0.1:8100/v1/rag/search" \
  --header "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx" \
  --header "Content-Type: application/json" \
  --data '{
    "knowledgeIds": ["kb_8a7e38653e344047b417f365a66f4ca1"],
    "text": "LangChat 平台功能介绍",
    "maxResults": 5,
    "minSimilarity": 0.7
  }'

JavaScript 请求示例

const response = await fetch('http://127.0.0.1:8100/v1/rag/search', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    knowledgeIds: ['kb_8a7e38653e344047b417f365a66f4ca1'],
    text: 'LangChat 平台功能介绍',
    maxResults: 5,
    minSimilarity: 0.7
  })
});

const result = await response.json();
console.log(result);

Python 请求示例

import requests

url = "http://127.0.0.1:8100/v1/rag/search"
headers = {
    "Authorization": "Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx",
    "Content-Type": "application/json"
}
data = {
    "knowledgeIds": ["kb_8a7e38653e344047b417f365a66f4ca1"],
    "text": "LangChat 平台功能介绍",
    "maxResults": 5,
    "minSimilarity": 0.7
}

response = requests.post(url, headers=headers, json=data)
result = response.json()
print(result)

响应示例

成功响应

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "knowledgeId": "kb_8a7e38653e344047b417f365a66f4ca1",
      "docsName": "LangChat.md",
      "docsId": "7af40d3c6fe91691ce56718d439aaf7a",
      "embeddingId": "emb_1234567890",
      "text": "LangChat 是一个基于 RAG 技术的 AIGC 平台,提供智能对话和知识检索服务。",
      "score": 0.8534821012722914,
      "rerankedScore": 0.9234567890123456,
      "source": "vector",
      "metadata": {
        "knowledgeId": "kb_8a7e38653e344047b417f365a66f4ca1",
        "docsId": "7af40d3c6fe91691ce56718d439aaf7a",
        "docsName": "LangChat.md",
        "chunkIndex": 3,
        "totalChunks": 15
      }
    }
  ]
}

错误响应

{
  "code": 400,
  "message": "Invalid knowledge ID or insufficient permissions",
  "data": null
}

检索流程

性能优化建议

参数调优

场景maxResultsminSimilarity说明
精确检索5-100.8-0.9高精度,少噪声
广泛检索10-200.6-0.7平衡精度与覆盖
探索性检索20-500.5-0.6更多结果,容忍噪声

最佳实践

  • 批量检索:对于多个知识库,建议使用批量接口
  • 缓存策略:对频繁查询的结果进行缓存
  • 错误处理:实现完善的错误处理和重试机制
  • 监控告警:监控 API 调用量和响应时间
建议在生产环境中实施适当的限流和监控机制,确保服务稳定性。