今天我们仔细研究一下 LangChain 聊天模型。 LangChain 是一个很棒的工具,它提供了一个标准接口来与各种语言模型进行交互,包括基于文本的大型语言模型(LLM)和聊天模型。
LangChain中模型的概念
模型是 LangChain 的重要组成部分。LangChain 不是模型的提供者,而是一个接口,让您可以与来自其他地方的各种语言模型进行交互。目前 LangChain 支持 LLMs、Chat Models 和 Text Embedding 模型。
LLM 和聊天模型之间的主要区别在于它们的输入和输出结构。LLM 在基于文本的输入和输出上运行,而聊天模型遵循基于消息的输入和输出系统。
值得注意的是,聊天模型 API 是一项相对较新的功能,它们仍在确定最有效的抽象。
聊天模型入门
聊天模型是语言模型的变体。虽然它们在底层使用语言模型,但它们公开的接口有些不同。它们不是“文本输入、文本输出”API,而是公开一个接口,其中“聊天消息”是输入和输出。
在 LangChain,他们将 ChatMessage 称为聊天模型的信息模块化单元。这通常包括一个“文本”字段,表示聊天消息的内容。目前支持四种不同类别的 ChatMessage:
-
• HumanChatMessage:从人的角度发送的聊天消息。
-
• AIChatMessage:从人类正在与之通信的 AI 系统的角度发送的消息。
-
• SystemChatMessage:为 AI 系统提供有关对话的一些信息的消息。通常在对话开始时发送。
-
• ChatMessage:一个通用的聊天消息,不仅有一个“文本”字段,还有一个任意的“角色”字段。
LangChain 目前支持 ChatOpenAI 模型(使用 gpt-4 和 gpt-3.5-turbo),预计未来会增加更多。开始需要做的就是使用 LLM 实现的调用方法,传入一个字符串输入。以下是如何使用 ChatOpenAI 实现发起对话的简单示例:
import { ChatOpenAI } from "langchain/chat_models/openai";
import { HumanChatMessage } from "langchain/schema";
export const run = async () => {
const chat = new ChatOpenAI();
const response = await chat.call([
new HumanChatMessage(
"What is a good name for a company that makes colorful socks?"
),
]);
console.log(response);
// AIChatMessage { text: 'nnRainbow Sox Co.' }
};
更深入的理解可以参考API参考:ChatOpenAI和HumanChatMessage。
集成:聊天模型
LangChain 提供了几种与各种模型提供者集成的聊天模型实现。其中包括 ChatOpenAI、Azure ChatOpenAI 和 ChatAnthropic。这些提供者中的每一个都有不同的实例化方式。例如,要实例化 ChatOpenAI:
import { ChatOpenAI } from "langchain/chat_models/openai";
const model = new ChatOpenAI({
temperature: 0.9,
apiKey: "your_openai_api_key"
});
temperature是调整模型响应随机性的超参数。较高的值会导致更多样化的输出,而较低的值会使输出更具确定性。apiKey 是个人的 OpenAI API 密钥,授权使用该模型。
同样可以实例化 Azure ChatOpenAI 和 ChatAnthropic:
// Azure ChatOpenAI
import { AzureChatOpenAI } from "langchain/chat_models/azure";
const model = new AzureChatOpenAI({
temperature: 0.9,
azureApiKey: "your_azure_api_key"
});
// ChatAnthropic
import { ChatAnthropic } from "langchain/chat_models/anthropic";
const model = new ChatAnthropic({
temperature: 0.9,
anthropicApiKey: "your_anthropic_api_key"
});
注意:确保将“your_openai_api_key”、“your_azure_api_key”和“your_anthropic_api_key”替换为实际 API 密钥。
请记住,每个提供者可能有其实现所特有的特定参数。请始终参考 LangChain 文档或提供商的文档以全面了解参数。
结论
LangChain 的聊天模型提供了与各种 AI 语言模型交互的统一方法。这种多功能性允许开发人员在不同的提供商之间无缝切换。虽然我们已经介绍了从 OpenAI、Azure 和 Anthropic 实例化聊天模型的基础知识,但 LangChain 中还有大量其他功能和定制可用。作为一个开源项目,LangChain 鼓励社区贡献以推动其发展和演变。使用 LangChain,创建强大的语言处理应用程序的潜力触手可及。
原文始发于微信公众号(漫谈大数据):LangChain 聊天模型:概述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/159609.html