自学内容网 自学内容网

LangChain学习笔记 3 Chat models

https://python.langchain.com/docs/concepts/chat_models/

概述

大型语言模型 (LLMs) 是高级机器学习模型,在各种与语言相关的任务中表现出色,例如文本生成、翻译、摘要、问答等,而无需针对每个场景进行特定于任务的微调。

**工具调用:**许多流行的聊天模型都提供原生工具调用 API。此 API 允许开发人员构建丰富的应用程序,使 LLMs 能够与外部服务、API 和数据库进行交互。工具调用还可用于从非结构化数据中提取结构化信息并执行各种其他任务。
**结构化输出:**一种使聊天模型以结构化格式(例如与给定架构匹配的 JSON)响应的技术。
**多模态:**能够处理文本以外的数据;例如,图像、音频和视频。

模型

LangChain 有许多聊天模型集成,允许您使用来自不同提供商的各种模型。这些模型可以分为两类:

  • 官方模型:这些是 LangChain 和/或模型提供商官方支持的模型。
  • 社区模型:有些模型主要由社区贡献和支持。

LangChain支持的模型列表:https://python.langchain.com/docs/integrations/chat/

LangChain 聊天模型的命名约定是在其类名前加上 “Chat” 前缀(例如,ChatOllama、ChatAnthropic、ChatOpenAI 等)。名称中不包含前缀“Chat”或名称中不包含“LLM”作为后缀的模型通常是指不遵循聊天模型接口的旧模型,而是使用将字符串作为输入并返回字符串作为输出的接口。

接口

LangChain 聊天模型实现了 BaseChatModel 接口。
BaseChatModel 还实现了 Runnable Interface,使得聊天模型支持标准流式处理接口、异步编程、优化批处理等(https://python.langchain.com/docs/concepts/runnables/)

聊天模型的许多关键方法将消息作为输入进行操作,并将返回消息作为输出。聊天模型提供了一组可用于配置模型的标准参数。这些参数通常用于控制模型的行为,例如输出的温度、响应中的最大令牌数以及等待响应的最长时间。

Key methods

聊天模型的主要方法包括:

  • invoke:与聊天模型交互的主要方法。它采用消息列表作为输入,并返回消息列表作为输出。
  • stream:一种方法,允许您在生成聊天模型时流式传输聊天模型的输出。
  • batch:一种允许您将对聊天模型的多个请求一起批处理以实现更高效处理的方法。
  • bind_tools:一种方法,允许您将工具绑定到聊天模型,以便在模型的执行上下文中使用。
  • with_structured_output:本机支持结构化输出的模型的 invoke 方法的包装器。
    更多方法参考:https://python.langchain.com/api_reference/core/language_models/langchain_core.language_models.chat_models.BaseChatModel.html

Inputs and outputs

LangChain 支持两种消息格式与聊天模型交互:

  • LangChain 消息格式:LangChain 自带的消息格式,默认使用,LangChain 内部使用。
  • OpenAI 的消息格式:OpenAI 的消息格式。

Standard parameters

许多聊天模型都有可用于配置模型的标准化参数:

ParameterDescription
modelAI 模型的名称或标识符(例如, “gpt-3.5-turbo"或"gpt-4” )。
temperature控制模型输出的随机性。较高的值(例如,1.0)使响应更具创造性,而较低的值(例如,0.0)使响应更具确定性和针对性。
timeout取消请求之前等待模型响应的最长时间(以秒为单位)。确保请求不会无限期挂起。
max_tokens限制响应中的标记(单词和标点符号)总数。这控制输出的长度。
stop指定指示模型何时应停止生成令牌的停止序列。例如,您可以使用特定字符串来表示响应的结束。
api_key与模型提供者进行身份验证所需的 API 密钥。
base_url发送请求的 API 端点的 URL。这通常由模型提供商提供。
rate_limiter许多聊天模型提供商对给定时间段内可以发出的请求数量施加限制。可选的BaseRateLimiter用于间隔请求以避免超出速率限制。

Tool calling

聊天模型可以调用工具来执行任务,例如从数据库获取数据、发出 API 请求或运行自定义代码。(https://python.langchain.com/docs/concepts/tool_calling/)

Structured outputs

可以请求聊天模型以特定格式(例如,JSON 或匹配特定模式)进行响应。此功能对于信息提取任务非常有用。(https://python.langchain.com/docs/concepts/structured_outputs/)

Multimodality

大型语言模型 ( LLMs ) 不仅限于处理文本。它们还可以用于处理其他类型的数据,例如图像、音频和视频。这就是所谓的多模态。

目前,只有一些LLMs支持多模式输入,几乎没有一个支持多模式输出。

Context window

聊天模型的上下文窗口是指模型一次可以处理的输入序列的最大大小。尽管现代LLMs的上下文窗口相当大,但它们仍然存在开发人员在使用聊天模型时必须牢记的限制。开发人员通常需要管理上下文窗口内的输入,以保持连贯的对话而不超出限制。有关在对话中处理内存的更多详细信息,请参阅Memory(https://langchain-ai.github.io/langgraph/concepts/memory/)。


原文地址:https://blog.csdn.net/weixin_43791406/article/details/145118947

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!