Skip to main content

Azure

本笔记本介绍如何连接到托管在 Azure 上的 OpenAI 端点 (This notebook goes over how to connect to an Azure hosted OpenAI endpoint)

from langchain.chat_models import AzureChatOpenAI
from langchain.schema import HumanMessage
BASE_URL = "https://${TODO}.openai.azure.com"
API_KEY = "..."
DEPLOYMENT_NAME = "chat"
model = AzureChatOpenAI(
openai_api_base=BASE_URL,
openai_api_version="2023-05-15",
deployment_name=DEPLOYMENT_NAME,
openai_api_key=API_KEY,
openai_api_type="azure",
)
model(
[
HumanMessage(
content="Translate this sentence from English to French. I love programming."
)
]
)
    AIMessage(content="\n\nJ'aime programmer.", additional_kwargs={})

Model Version (模型版本)

Azure OpenAI 响应包含 model 属性,该属性是用于生成响应的模型的名称。但是,与原生 OpenAI 响应不同,它不包含模型的版本,该版本在 Azure 中设置。这使得很难知道生成响应所使用的模型的版本,这可能导致例如使用 OpenAICallbackHandler 进行错误的总成本计算。

为了解决这个问题,您可以将 model_version 参数传递给 AzureChatOpenAI 类,它将添加到 llm 输出中的模型名称中。这样,您可以轻松区分不同版本的模型。

from langchain.callbacks import get_openai_callback
BASE_URL = "https://{endpoint}.openai.azure.com"
API_KEY = "..."
DEPLOYMENT_NAME = "gpt-35-turbo" # 在 Azure 中,此部署的版本为 0613 - 输入和输出令牌分别计数
model = AzureChatOpenAI(
openai_api_base=BASE_URL,
openai_api_version="2023-05-15",
deployment_name=DEPLOYMENT_NAME,
openai_api_key=API_KEY,
openai_api_type="azure",
)
with get_openai_callback() as cb:
model(
[
HumanMessage(
content="Translate this sentence from English to French. I love programming."
)
]
)
print(f"Total Cost (USD): ${format(cb.total_cost, '.6f')}") # 如果不指定模型版本,则使用固定费率 0.002 美元每 1k 输入和输出令牌
    Total Cost (USD): $0.000054

我们可以将模型版本提供给 AzureChatOpenAI 构造函数。它将附加到 Azure OpenAI 返回的模型名称,并且成本将被正确计算。

model0613 = AzureChatOpenAI(
openai_api_base=BASE_URL,
openai_api_version="2023-05-15",
deployment_name=DEPLOYMENT_NAME,
openai_api_key=API_KEY,
openai_api_type="azure",
model_version="0613"
)
with get_openai_callback() as cb:
model0613(
[
HumanMessage(
content="Translate this sentence from English to French. I love programming."
)
]
)
print(f"Total Cost (USD): ${format(cb.total_cost, '.6f')}")
    Total Cost (USD): $0.000044