**题意:**当我在 Azure OpenAI 中使用嵌入功能时,我遇到了 404 错误(资源未找到)
问题背景:
When I use embeddings with Azure OpenAI I am getting 404 (resource not found):
当我在 Azure OpenAI 中使用嵌入功能时,我遇到了 404 错误(资源未找到)
cs
EmbeddingsOptions embdOptions = new EmbeddingsOptions(text);
Azure.AI.OpenAI.Embeddings response = Task.Run(() => mOpenAiClient.GetEmbeddingsAsync(mWebSvc.AzureOpenAI.DeploymentID, embdOptions)).Result;
The text is the input text to be used to create the vector. Also, mWebSvc.AzureOpenAI.DeploymentID is a Deployment ID or Deployment Name, which is "ada2" - this is how I named the text-embedding-ada-002 model. Also, while I created mOpenAiClient I used the URL:
该文本是用于创建向量的输入文本。同时,mWebSvc.AzureOpenAI.DeploymentID
是一个部署ID或部署名称,这里是 "ada2"
------这是我给text-embedding-ada-002
模型命名的名称。另外,在创建mOpenAiClient
时,我使用了以下URL:
cs
"https://AzureOpenAIExperiment.openai.azure.com/openai/deployments/ada2/embeddings?api-version=2023-05-15"
Any ideas? Microsoft is quite silent on these things and no documentation is provided in Azure OpenAI part of Azure SDK.
有什么想法吗?微软在这些事情上相当沉默,Azure SDK的Azure OpenAI部分也没有提供任何文档。
问题解决:
Apparently, the URL that I used before, although correct for normal HttpClient calls is not what Azure Open AI API is expecting. It expects this:
显然,我之前使用的URL虽然对于正常的HttpClient调用是正确的,但并不是Azure OpenAI API所期望的。它期望的是这样的:
cs
https://{resourceName}.openai.azure.com
Where {resourceName} is a placeholder - it is the name of the resource you created on Azure. The Type Of Resource is: "Azure OpenAI". This is the resource that you deployed the model (in my case text-embedding-ada-002 that I named "ada2". This "ada2" goes as a parameter into GetEmbeddingsAsync function.
其中{resourceName}
是一个占位符,它是你在Azure上创建的资源的名称。资源类型是:"Azure OpenAI"。这是你部署模型的资源(在我的情况下,我命名为"ada2"的text-embedding-ada-002
模型)。这个"ada2"作为参数传递给GetEmbeddingsAsync
函数。