Chat Models

Chat Models #

聊天模型简介 #

Chat Models是使用一系列消息(messages)作为输入,并返回对话消息(chat messages)作为输出的语言模型(不同于使用纯文本的模型)。这些通常是较新的模型(较早的模型一般是LLM,见下文)。

Chat Models支持为对话消息分配不同的角色,帮助区分来自AI、用户(user)和系统(system)消息等指令的内容。

虽然底层模型是以消息为输入并输出消息,但LangChain的封装也允许这些模型接受字符串作为输入。这意味着你可以轻松地将ChatModel用作LLM。

当使用字符串作为输入时,它会被转换为HumanMessage,然后传递给底层模型。

LangChain本身并不托管任何聊天模型,而是依赖第三方集成。

在构建ChatModels时有一些标准化的参数:

  • model:模型的名称
  • temperature:采样温度
  • timeout:请求超时时间
  • max_tokens:生成的最大token数量
  • stop:默认的停止序列
  • max_retries:请求重试的最大次数
  • api_key:模型提供商的API密钥
  • base_url:发送请求的端点

需要注意的一些重要事项:

  • 标准参数只适用于那些暴露出相应功能参数的模型提供商。例如,有些提供商不支持最大输出 token 配置,因此这些模型不支持max_tokens
  • 标准参数目前仅对拥有自己集成包的模型强制执行(如langchain-openailangchain-anthropic等),而不强制对langchain-community中的模型执行。
  • ChatModels也接受特定于该集成的其他参数。要查看某个ChatModel支持的所有参数,请查阅该模型的API参考文档。

提示

一些聊天模型经过专门微调以适应工具调用,并提供专门的API。通常,此类模型在工具调用(tool calling)方面比未经过微调的模型表现更好,建议在需要工具调用的使用场景中使用。有关更多信息,请参阅工具调用tool calling部分。

有关如何使用聊天模型的具体说明,请参阅此处的相关操作指南

多模态 #

一些聊天模型是多模态的,能够接受图像、音频甚至视频作为输入。这些模型仍较为少见,模型提供商尚未对定义API的“最佳”方式进行标准化。多模态输出则更为少见。因此,LangChain保持了多模态抽象的轻量化,并计划随着领域的发展进一步完善多模态API和交互模式。

在LangChain中,大多数支持多模态输入的聊天模型也接受 OpenAI 的内容块格式。目前,这仅限于图像输入。对于像 Gemini 这样支持视频和其他字节输入的模型,API 也支持模型特定的原生表示形式。

有关如何使用多模态模型的具体说明,请参阅此处的相关操作指南

要查看LangChain中支持多模态模型的模型提供商完整列表,请查阅此表格

© 2024 青蛙小白
comments powered by Disqus