LangChain中的ChatOpenAI类与OpenAI类的区别
LangChain中的ChatOpenAI类与OpenAI类的区别
LangChain是一个AI框架,允许开发者使用ChatOpenAI类和OpenAI类来实现不同的功能。
在本文中,我们将讨论这两个类的区别以及它们在LangChain的使用中的不同场景。
ChatOpenAI类和OpenAI类的区别
从LangChain API官网文档中我们可以看到,ChatOpenAI类属于langchain.chat_models模块,而OpenAI类属于langchain模块。它们之间的主要区别在于适用的场景和API功能。
LangChain API官网
ChatOpenAI类
ChatOpenAI类用于处理聊天会话场景,并支持LangChain中的聊天模型。
当我们想要实现人类与AI之间多轮的对话和交互时,可以使用ChatOpenAI类。
该类的使用需要传递使用LangChain框架封装的消息类SystemMessage。
OpenAI类
OpenAI类则适用于一问一答的场景,并且没有聊天会话的概念。
OpenAI类支持的模型包括较老的模型,如davinci等。
该类可以直接实例化,而不需要特定的消息类。
API文档和功能
在OpenAI API官网上,我们可以找到有关Chat和Completions两个概念的详细信息。
Chat
Chat功能用于给定一个由对话组成的消息列表,模型将返回一个响应。
Chat API endpoint:https://api.openai.com/v1/chat/completions
重点关注聊天会话。
OpenAI Chat API官网
Completions
Completions功能用于给定一个提示(prompt),模型将返回一个或多个预测的补全结果,并可以返回每个位置的可选标记概率。需要注意的是,OpenAI建议大多数用户使用Chat Completions API。
Completions API endpoint:https://api.openai.com/v1/completions
重点关注一问一答场景,而没有聊天会话的概念。
OpenAI Completions API官网
综上所述,ChatOpenAI适用于聊天模型,适用于多轮问答交互场景;而OpenAI则适用于较老的模型,如davinci等。