Langchain-Chatchat 项目 API 接口详解与使用指南

Langchain-Chatchat 项目 API 接口详解与使用指南

【免费下载链接】Langchain-Chatchat Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM) QA app with langchain 【免费下载链接】Langchain-Chatchat 项目地址: https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat

项目概述

Langchain-Chatchat 是一个基于大语言模型的智能对话系统,提供了丰富的 API 接口用于实现不同类型的对话交互。本文将详细介绍该项目的核心 API 接口及其使用方法,帮助开发者快速掌握系统的功能特点。

接口概览

系统提供了三类主要接口:

  1. 工具查询接口:获取可用工具信息
  2. 通用对话接口:支持多种对话模式
  3. 知识检索接口:实现知识增强的问答

工具查询接口

接口说明

通过 /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 格式。

支持模式

  1. 纯 LLM 对话:仅使用大语言模型能力
  2. Agent 对话:模型自主选择工具辅助回答
  3. 半 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 对话特点

  1. 必须设置 stream=True
  2. 通过 tools 参数指定可用工具列表
  3. 输出中包含执行状态标识

状态码说明

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 专为知识增强问答设计。

工作模式

  1. 本地知识库模式:检索已构建的知识库
  2. 临时文件模式:基于上传的文件进行问答
  3. 搜索引擎模式:调用外部搜索引擎获取信息

特有参数

  • 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)

最佳实践建议

  1. 流式处理:对于长文本生成,建议使用流式输出
  2. 参数调优:根据场景调整 top_k 和 score_threshold
  3. 错误处理:检查 status 字段处理异常情况
  4. 结果解析:注意区分不同 message_type 的内容展示

总结

Langchain-Chatchat 提供了完善的 API 体系,支持从基础对话到复杂知识增强问答的各种场景。开发者可以根据实际需求选择合适的接口和参数配置,构建智能对话应用。通过本文的详细介绍,相信读者已经掌握了核心接口的使用方法,可以开始实践开发了。

【免费下载链接】Langchain-Chatchat Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM) QA app with langchain 【免费下载链接】Langchain-Chatchat 项目地址: https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值