base_url = 'http://127.0.0.1:7861'
headers = {'Content-Type': 'application/json'}
response = requests.get(urljoin(base_url, api))
response = requests.post(urljoin(base_url, api), json=data, headers=headers)
创建知识库
- URL:/knowledge_base/create_knowledge_base
- 请求方式:post
- 源码地址:server/knowledge_base/kb_api.py/create_kb
- 请求参数:
{
"knowledge_base_name": "待创建知识库",
"vector_store_type": "faiss",
"embed_model": "bge-large-zh"
}
删除知识库
- URL:/knowledge_base/delete_knowledge_base
- 请求方式:post
- 源码地址:server/knowledge_base/kb_api.py/delete_kb
- 请求参数:
{"knowledge_base_name": "待删除知识库"}
更新知识库介绍
- /knowledge_base/update_info
- POST
- 参数:
{
"knowledge_base_name": "samples",
"kb_info": "这是一个知识库"
}
- 源码地址:server/knowledge_base/kb_doc_api.py/update_info
获取知识库列表
- URL:/knowledge_base/list_knowledge_bases
- 请求方式:get
- 源码地址:server/knowledge_base/kb_api.py/list_kbs
更新现有文件到知识库
- /knowledge_base/update_docs
- POST
{
"knowledge_base_name": "xiaomi",
"file_names": ["/home/admin/workspace/data/美团北斗计划14条.csv"],
"chunk_size": 250,
"chunk_overlap": 50,
"zh_title_enhance": True,
"not_refresh_vs_cache": False
}
- 源码地址:server/knowledge_base/kb_doc_api.py/update_docs
获取知识库内的文件列表
- URL:/knowledge_base/list_files?knowledge_base_name=目标知识库
- 请求方式:get
- 源码地址:server/knowledge_base/kb_doc_api.py/list_files
删除知识库内指定文件
- /knowledge_base/delete_docs
- POST
{
"knowledge_base_name": "samples",
"file_names": [
"file_name.md",
"test.txt"
],
"delete_content": false,
"not_refresh_vs_cache": false
}
根据content中文档重建向量库,流式输出处理进度。
- /knowledge_base/recreate_vector_store
- POST
上传文件到临时目录,用于文件对话。
- /knowledge_base/upload_temp_docs
- POST
知识库对话
搜索知识库
- URL:/knowledge_base/search_docs
- 请求方式:post
- 源码地址:server/knowledge_base/kb_doc_api.py/search_docs
- 请求参数:
query不为空:借助langchain的similarity_search_with_score
{
"query": "你好",
"knowledge_base_name": "samples",
"top_k": 3, #匹配向量数
"score_threshold": 1, #知识库匹配相关度阈值,取值范围在0-1之间,SCORE越小,相关度越高,取到1相当于不筛选,建议设置在0.5左右
"file_name": "",
"metadata": {}
}
query为空:通过file_name或metadata检索Document
file_name: str = Body("", description="文件名称,支持 sql 通配符"),
metadata: dict = Body({}, description="根据 metadata 进行过滤,仅支持一级键"),
- 返回:DocumentWithVSId的实例列表
[
{
"page_content": "string",
"metadata": {},
"type": "Document",
"id": "string",
"score": 3
},
]
- knowledge_base_chat调用此接口
与知识库对话
- URL:/chat/knowledge_base_chat
- 请求方式:post
- 源码地址:server/chat/knowledge_base_chat.py
{
"query": "你好",
"knowledge_base_name": "samples",
"top_k": 3,
"score_threshold": 1,
"history": [
{
"role": "user",
"content": "我们来玩成语接龙,我先来,生龙活虎"
},
{
"role": "assistant",
"content": "虎头虎脑"
}
],
"stream": false,
"model_name": "chatglm3-6b",
"temperature": 0.7,
"max_tokens": 0,
"prompt_name": "default"
}
- server/agent/tools/search_knowledgebase_complex调用此接口,并作为agent_chat接口的工具之一
可能不会用到的接口
上传文件到知识库,并/或进行向量化
- /knowledge_base/upload_docs
- POST
- 源码地址:server/knowledge_base/kb_doc_api.py/upload_docs
直接更新知识库文档
- URL:/knowledge_base/update_docs_by_id
- POST
- 源码地址:server/knowledge_base/kb_doc_api.py/update_docs_by_id
下载对应的知识文件
- /knowledge_base/download_doc/?
- GET
根据content中文档重建向量库,流式输出处理进度。
- /knowledge_base/recreate_vector_store
- POST
上传文件到临时目录,用于文件对话。
- /knowledge_base/upload_temp_docs
- POST