LangChain中的ChatOpenAI类与OpenAI类的区别

LangChain是一个AI框架,允许开发者使用ChatOpenAI类和OpenAI类来实现不同的功能。
在本文中,我们将讨论这两个类的区别以及它们在LangChain的使用中的不同场景。

ChatOpenAI类和OpenAI类的区别

从LangChain API官网文档中我们可以看到,ChatOpenAI类属于langchain.chat_models模块,而OpenAI类属于langchain模块。它们之间的主要区别在于适用的场景和API功能。
LangChain API官网
langchain_api

ChatOpenAI类

ChatOpenAI类用于处理聊天会话场景,并支持LangChain中的聊天模型。
chat_openai_support_models
当我们想要实现人类与AI之间多轮的对话和交互时,可以使用ChatOpenAI类。
该类的使用需要传递使用LangChain框架封装的消息类SystemMessage。
chat_openai_implenment

OpenAI类

OpenAI类则适用于一问一答的场景,并且没有聊天会话的概念。
OpenAI类支持的模型包括较老的模型,如davinci等。
openai_support_models
该类可以直接实例化,而不需要特定的消息类。
openai_implenment

API文档和功能

在OpenAI API官网上,我们可以找到有关Chat和Completions两个概念的详细信息。

Chat

Chat功能用于给定一个由对话组成的消息列表,模型将返回一个响应。
Chat API endpoint:https://api.openai.com/v1/chat/completions
重点关注聊天会话。
OpenAI Chat API官网
chat_api

Completions

Completions功能用于给定一个提示(prompt),模型将返回一个或多个预测的补全结果,并可以返回每个位置的可选标记概率。需要注意的是,OpenAI建议大多数用户使用Chat Completions API。
Completions API endpoint:https://api.openai.com/v1/completions
重点关注一问一答场景,而没有聊天会话的概念。
OpenAI Completions API官网
completions_api

综上所述,ChatOpenAI适用于聊天模型,适用于多轮问答交互场景;而OpenAI则适用于较老的模型,如davinci等。