检查其他资源
- 我为这个问题添加了一个非常描述性的标题。
- 我在集成搜索中搜索了LangChain文档。
- 我使用GitHub搜索找到了一个类似的问题,但没有找到。
- 我确信这是LangChain中的一个bug,而不是我的代码。
- 通过更新到LangChain的最新稳定版本(或特定集成包)无法解决此bug。
问题描述和示例代码
Langchain似乎使用OpenAICallbackHandler
计算OpenAI和AzureOpenAI模型的token使用情况和成本。然而,这依赖于API检索被调用模型的“完整”名称的事实,而在Azure OpenAI中并非如此。
在我订阅中,我有3个部署的gpt-3.5-turbo,分别对应于gpt-35-turbo-0613
、gpt-35-turbo-0312
和gpt-35-turbo-1106
,以及2个部署的gpt-4,分别对应于gpt-4-1106-preview
和gpt-4-0613
。然而,在进行推理时,无论版本如何,都会分别调用gpt-35-turbo
和gpt-4
的模型。然后,Langchain无法计算正确的成本,尽管没有抛出警告。这个字典中还包含一些由于上述原因永远不会使用的条目,例如这个。
from langchain_openai import AzureChatOpenAI
llm1 = AzureChatOpenAI(
api_version="2023-08-01-preview",
azure_endpoint="https://YOUR_ENDPOINT.openai.azure.com/",
api_key="YOUR_KEY",
azure_deployment="gpt-35-turbo-0613",
temperature=0,
)
llm2 = AzureChatOpenAI(
api_version="2023-08-01-preview",
azure_endpoint="https://YOUR_ENDPOINT.openai.azure.com/",
api_key="YOUR_KEY",
azure_deployment="gpt-35-turbo-0312",
temperature=0,
)
messages = [
(
"system",
"You are a helpful assistant that translates English to French. Translate the user sentence.",
),
("human", "I love programming."),
]
llm1.invoke(messages).response_metadata['model_name'] # gpt-35-turbo
llm2.invoke(messages).response_metadata['model_name'] # gpt-35-turbo
1条答案
按热度按时间wvyml7n51#
你需要使用参数
model_version
来获取正确的定价信息。