Hon*_*iao 14 openai-api langchain
我阅读了 LangChain快速入门。
里面有一个demo:
from langchain.llms import OpenAI
from langchain.chat_models import ChatOpenAI
llm = OpenAI()
chat_model = ChatOpenAI()
llm.predict("hi!")
>>> "Hi"
chat_model.predict("hi!")
>>> "Hi"
Run Code Online (Sandbox Code Playgroud)
我搜索了文档的其余部分以及在线搜索,但没有找到任何有关 OpenAI 和 ChatOpenAI 之间差异的信息。
基于from langchain.llms import OpenAI,OpenAI 是一个大型语言模型(LLM),也与聊天相关。
那么 OpenAI 是否更通用,而 ChatOpenAI 更专注于聊天呢?
OpenAI浪链中的class和class有什么区别ChatOpenAI?有人可以澄清一下吗?
Hon*_*iao 17
根据我的研究,
\nOpenAI类包括更通用的机器学习任务属性,例如frequency_penalty, presence_penalty, logit_bias, allowed_special, disallowed_special,best_of。
ChatOpenAI类提供了更多与聊天相关的方法,例如completion_with_retry,get_num_tokens_from_messages以便在构建聊天机器人相关应用程序时更加用户友好。
在查看源代码后,这就是我的发现。
\nOpenAI下面列出了和类的类继承ChatOpenAI,以及它们各自的类属性和方法。
OpenAI \xe2\x86\x90 BaseOpenAI \xe2\x86\x90 BaseLLM \xe2\x86\x90 BaseLanguageModel
\nChatOpenAI \xe2\x86\x90 BaseChatModel \xe2\x86\x90 BaseLanguageModel
\n让我们开始比较,从第四列移动到第一列。
\n这两个类最终都继承自基类BaseLanguageModel。
BaseLLMBaseChatModel非常相似但略有不同:
对于 OpenAI 来说BaseLLM,它包括额外的方法:
batch(self, inputs, config=None, max_concurrency=None, **kwargs)abatch (self, inputs, config=None, max_concurrency=None,**kwargs)对于 ChatOpenAI 来说BaseChatModel,它包含一个额外的方法:
_combine_llm_outputs(self, llm_outputs)第二列包含BaseOpenAI类,它的存在主要是由于存在更高级别的类OpenAI和AzureOpenAI。然而,它们都共享相同的类属性和方法。
在顶层类(第一列):
\nOpenAI类包括更通用的机器学习任务属性,例如frequency_penalty, presence_penalty, logit_bias, allowed_special, disallowed_special,best_of。
ChatOpenAI类提供了更多与聊天相关的方法,例如completion_with_retry,get_num_tokens_from_messages以便在构建聊天机器人相关应用程序时更加用户友好。
| 归档时间: |
|
| 查看次数: |
12678 次 |
| 最近记录: |