Langchain-Chatchat 项目 API 接口详解与使用指南
项目概述
Langchain-Chatchat 是一个基于大语言模型的智能对话系统,提供了丰富的 API 接口用于实现不同类型的对话交互。本文将详细介绍该项目的核心 API 接口及其使用方法,帮助开发者快速掌握系统的功能特点。
接口概览
系统提供了三类主要接口:
- 工具查询接口:获取可用工具信息
- 通用对话接口:支持多种对话模式
- 知识检索接口:实现知识增强的问答
工具查询接口
接口说明
通过 /tools 接口可以查询系统当前支持的所有工具及其详细参数信息。
使用示例
import requests
response = requests.get("http://127.0.0.1:7861/tools")
tools_info = response.json()
print(tools_info)
返回数据结构
返回的 JSON 数据包含以下关键信息:
- 工具名称:如
search_local_knowledgebase - 工具标题:如"本地知识库"
- 工具描述:详细说明工具的用途
- 参数配置:包括参数类型、可选值等
- 工具配置:如 top_k、score_threshold 等检索参数
通用对话接口
接口地址
/chat/chat/completions 是系统的核心对话接口,兼容标准 API 格式。
支持模式
- 纯 LLM 对话:仅使用大语言模型能力
- Agent 对话:模型自主选择工具辅助回答
- 半 Agent 对话:指定工具但由模型解析参数
基础参数
model:指定使用的模型messages:对话历史temperature:控制生成随机性stream:是否流式输出
纯 LLM 对话示例
import openai
client = openai.Client(base_url="http://127.0.0.1:7861/chat", api_key="EMPTY")
response = client.chat.completions.create(
model="qwen1.5-chat",
messages=[
{"role": "user", "content": "请用100字介绍自己"}
],
stream=True
)
for chunk in response:
print(chunk.choices[0].delta.content, end="", flush=True)
Agent 对话特点
- 必须设置
stream=True - 通过
tools参数指定可用工具列表 - 输出中包含执行状态标识
状态码说明
class AgentStatus:
llm_start = 1 # LLM开始处理
llm_new_token = 2 # LLM生成新token
llm_end = 3 # LLM处理结束
agent_action = 4 # Agent决定执行动作
agent_finish = 5 # Agent完成决策
tool_start = 6 # 工具开始执行
tool_end = 7 # 工具执行结束
error = 8 # 错误状态
知识检索接口
接口地址
/knowledge_base/chat/completions 专为知识增强问答设计。
工作模式
- 本地知识库模式:检索已构建的知识库
- 临时文件模式:基于上传的文件进行问答
- 搜索引擎模式:调用外部搜索引擎获取信息
特有参数
mode:指定检索模式top_k:返回结果数量score_threshold:匹配分数阈值return_direct:是否直接返回检索结果
本地知识库示例
client = openai.Client(
base_url="http://127.0.0.1:7861/knowledge_base/local_kb/samples",
api_key="EMPTY"
)
response = client.chat.completions.create(
model="qwen2-instruct",
messages=[
{"role": "user", "content": "如何高质量提问?"}
],
stream=True,
extra_body={
"top_k": 3,
"return_direct": True
}
)
for chunk in response:
if hasattr(chunk, 'docs'):
print("检索结果:", chunk.docs)
最佳实践建议
- 流式处理:对于长文本生成,建议使用流式输出
- 参数调优:根据场景调整 top_k 和 score_threshold
- 错误处理:检查 status 字段处理异常情况
- 结果解析:注意区分不同 message_type 的内容展示
总结
Langchain-Chatchat 提供了完善的 API 体系,支持从基础对话到复杂知识增强问答的各种场景。开发者可以根据实际需求选择合适的接口和参数配置,构建智能对话应用。通过本文的详细介绍,相信读者已经掌握了核心接口的使用方法,可以开始实践开发了。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



