我正在尝试使用 Azure OpenAI 服务制作 OpenAI 助手,请按照此处的说明进行操作:https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/assistant 。我已经创建了 Azure 资源和部署(“分析聊天”),以及来自 Azure 工作室的端点和 API。
我的代码如下所示:
client = AzureOpenAI(
azure_endpoint=os.getenv("azure_endpoint"),
api_key=os.getenv("azure_openai_key"),
api_version="2024-02-15-preview"
)
assistant = client.beta.assistants.create(
name="MyChatbot",
instructions="You are a helpful assistant",
model="analytics-chat" #You must replace this value with the deployment name for your model. <- from the MS Azure docs
)
此代码总是失败并显示消息:
openai.BadRequestError: Error code: 400 - {'error': {'type': 'invalid_request_error', 'param': 'model', 'code': 'model_not_found'}}
我已经尝试了部署名称、模型名称的每种组合(“analytics-chat”、“gpt-4”、“gpt-4-0125”、“gpt-4-1025-preview”等),但是我总是遇到同样的错误。如上所述,部署名称是“analytics-chat”。
在线示例似乎总是包含
model
参数的模型名称(如“gpt-4”),但文档明确指出模型参数实际上应该是部署名称。无论如何,这里没有任何作用。你知道这里有效的模型名称是什么样子吗? TIA
根据此MS-Document,
Assistants API、SDK、Azure AI Studio 和 Azure OpenAI Studio 仅在选定区域提供。
在我的环境中,我在
australiaeast
位置创建了一个 OpenAI 资源,并创建了一个名为 analyticschat
(gpt-4 1106-Preview)的模型。
现在,我传递了凭据并运行了您共享的相同代码。执行成功了。
代码:
import os
import json
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-02-15-preview",
azure_endpoint =os.getenv("AZURE_OPENAI_ENDPOINT")"
)
# Create an assistant
assistant = client.beta.assistants.create(
name="MyChatbot",
instructions="You are a helpful assistant",
model="analyticschat" #You must replace this value with the deployment name for your model. <- from the MS Azure docs
)
print(assistant.model_dump_json(indent=2))
输出:
{
"id": "asst_DiNfdwxxxxgbF4B",
"created_at": 17xxxx22,
"description": null,
"file_ids": [],
"instructions": "You are a helpful assistant",
"metadata": {},
"model": "analyticschat",
"name": "MyChatbot",
"object": "assistant",
"tools": []
}