如何将新的 gpt-3.5-16k 模型与 langchain 一起使用?

red*_*123 10 python langchain py-langchain

我在 langchain 中编写了一个应用程序,它将多个链传递给顺序链来运行。我遇到的问题是提示太大,超出了 4K 令牌限制大小。我看到 OpenAI 为 ChatGPT 发布了一个新的 16K 令牌窗口大小的模型,但我似乎无法从 API 访问它。当我尝试时,出现以下错误:

openai.error.InvalidRequestError:这是一个聊天模型,v1/completions 端点不支持。您的意思是使用 v1/chat/completions 吗?

这是我尝试实例化模型的方式:

  self.llm = OpenAI(model='gpt-3.5-turbo-16k',temperature = self.config.llm.temperature,
                          openai_api_key = self.config.llm.openai_api_key,         
                          max_tokens=self.config.llm.max_tokens                 
                         )                                                      
Run Code Online (Sandbox Code Playgroud)

有人知道我该如何解决这个问题吗?

Rij*_*nto 7

2023 年 8 月 20 日更新

OpenAIChat 已弃用。请改用ChatOpenAI()模型。另请注意,模型名称应通过model_name参数传递。

from langchain.chat_models import ChatOpenAI

chat = ChatOpenAI(
    model_name='gpt-3.5-turbo-16k',
    temperature = self.config.llm.temperature,
    openai_api_key = self.config.llm.openai_api_key,         
    max_tokens=self.config.llm.max_tokens
)
Run Code Online (Sandbox Code Playgroud)

旧答案:

gpt-3.5-turbo-16k应该与聊天完成 API 端点一起使用。请参阅下面的参考

端点 型号名称
/v1/聊天/完成 gpt-4、gpt-4-0613、gpt-4-32k、gpt-4-32k-0613、gpt-3.5-turbo、gpt-3.5-turbo-0613、gpt-3.5-turbo-16k、gpt-3.5-涡轮-16k-0613
/v1/完成次数 文本-​​达芬奇-003、文本-达芬奇-002、文本-居里-001、文本-巴贝奇-001、文本-ada-001

因此,不要使用OpenAI()llm(它在底层使用文本完成 API),而是尝试使用OpenAIChat(). 请参阅以下示例并参考您的示例代码:

from langchain.llms import OpenAIChat

self.llm = OpenAIChat(
    model_name='gpt-3.5-turbo-16k',
    temperature = self.config.llm.temperature,
    openai_api_key = self.config.llm.openai_api_key,         
    max_tokens=self.config.llm.max_tokens                 
)
Run Code Online (Sandbox Code Playgroud)

  • OpenAIChat 已弃用。请改用 ChatOpenAI() 模型。请参阅我更新的答案。@megmac (2认同)