快速上手Azure OpenAI Chat模型:从配置到集成详解
引言
在现今的人工智能应用中,聊天模型的使用越来越广泛。Azure OpenAI Chat模型提供了一种强大的解决方案,能够实现多种语言的对话和翻译功能。本指南旨在帮助您快速上手Azure OpenAI Chat模型,并详细介绍如何进行配置和集成。
主要内容
Azure OpenAI vs OpenAI
Azure OpenAI指的是托管在Microsoft Azure平台上的OpenAI模型。与直接使用OpenAI提供的API不同,Azure OpenAI在Azure云环境中运行,提供了更高的稳定性和可扩展性。
配置Azure OpenAI
为了访问Azure OpenAI模型,您需要创建一个Azure账户,部署一个Azure OpenAI模型,获取部署的名称和端点,生成Azure OpenAI API密钥,并安装langchain-openai集成包。
生成API密钥和端点
前往Azure文档完成部署并生成API密钥。生成后,设置如下环境变量:
import getpass
import os
os.environ["AZURE_OPENAI_API_KEY"] = getpass.getpass("Enter your Azure OpenAI API key: ")
os.environ["AZURE_OPENAI_ENDPOINT"] = "https://YOUR-ENDPOINT.openai.azure.com/" # 使用API代理服务提高访问稳定性
安装依赖包
使用pip安装langchain-openai包:
%pip install -qU langchain-openai
实例化模型
实例化Azure Chat OpenAI模型对象并生成聊天结果:
from langchain_openai import AzureChatOpenAI
llm = AzureChatOpenAI(
azure_deployment="gpt-35-turbo", # 或者使用您的部署名称
api_version="2023-06-01-preview", # 或者使用您的API版本
temperature=0,
max_tokens=None,
timeout=None,
max_retries=2,
# 其他参数...
)
调用模型
示例代码展示如何调用模型来生成聊天结果:
messages = [
(
"system",
"你是一个帮助用户将英语翻译成法语的助手。请翻译用户的句子。",
),
("human", "I love programming."),
]
ai_msg = llm.invoke(messages)
print(ai_msg.content)
# 输出: "J'adore la programmation."
模型链的使用
将模型与提示模板进行链式调用:
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages(
[
(
"system",
"你是一个将{input_language}翻译成{output_language}的助手。",
),
("human", "{input}"),
]
)
chain = prompt | llm
result = chain.invoke(
{
"input_language": "英语",
"output_language": "德语",
"input": "I love programming.",
}
)
print(result.content)
# 输出: "Ich liebe das Programmieren."
常见问题和解决方案
网络限制
由于某些地区的网络限制,开发者可能需要考虑使用API代理服务以提高访问稳定性。可以通过设置代理来实现。
模型版本控制
Azure OpenAI的响应中包含模型名称,但并不指定具体的版本号。可以通过传递 model_version 参数来解决这个问题。如下示例代码展示如何指定模型版本并进行成本计算:
from langchain_community.callbacks import get_openai_callback
llm_0301 = AzureChatOpenAI(
azure_deployment="gpt-35-turbo", # 或者使用您的部署名称
api_version="2023-06-01-preview", # 或者使用您的API版本
model_version="0301",
)
with get_openai_callback() as cb:
llm_0301.invoke(messages)
print(f"Total Cost (USD): ${format(cb.total_cost, '.6f')}")
总结和进一步学习资源
Azure OpenAI Chat模型提供了强大的多语言对话能力。通过本指南,您可以快速上手并实现实际应用。若需深入了解,可以参考以下资源:
参考资料
结束语:如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---