Azure OpenAI Embedding SDK(C#)官方示例使用过时类型,替代方案返回404错误求助
Azure OpenAI Embedding SDK(C#)官方示例使用过时类型,替代方案返回404错误求助
我刚在Azure OpenAI门户成功部署了text-embedding-3-large模型,现在打算用OpenAI .NET SDK来做集成。结果发现Azure门户提供的C#示例代码里用到的类型居然已经过时了,我试着换成了官方推荐的新调用方式,却又一直返回404错误,实在摸不着头脑,来求助各位大佬!
先给大家看看Azure门户给出的示例代码片段(参数用占位符代替):
using OpenAI; using OpenAI.Embeddings; using System.Text.Json; var endpoint = new Uri("<OPENAI_RESOURCE_NAME>.openai.azure.com/"); var credential = new AzureKeyCredential("<API_KEY>"); // 门户里后续调用代码未完整展示,但核心客户端初始化用的是上述类
我查了SDK文档,发现OpenAI命名空间下的类已经被标记为过时,官方推荐使用Azure.AI.OpenAI命名空间下的AzureOpenAIClient。于是我改成了下面的代码:
using Azure.AI.OpenAI; using Azure; // 确保端点带https前缀 var endpoint = new Uri("https://<OPENAI_RESOURCE_NAME>.openai.azure.com/"); var credential = new AzureKeyCredential("<API_KEY>"); var client = new AzureOpenAIClient(endpoint, credential); var embeddingOptions = new EmbeddingsOptions() { Input = new List<string> { "测试生成嵌入的文本内容" }, DeploymentName = "<我的text-embedding-3-large部署名>" }; try { var response = await client.GetEmbeddingsAsync(embeddingOptions); // 处理返回的嵌入结果 } catch (RequestFailedException ex) { Console.WriteLine($"请求失败:状态码{ex.Status} - {ex.Message}"); }
结果运行这段代码后,一直抛出404的请求失败异常。我反复检查了端点地址(确认带了https前缀)、API密钥、部署名称,这些信息和Azure门户里的完全一致,而且在门户的在线测试功能里调用这个模型是完全正常的。
有没有人遇到过类似的问题?是不是我用新SDK的方式哪里写错了?或者还有什么配置没注意到?
备注:内容来源于stack exchange,提问作者José Augustinho
相关产品推荐
相关产品推荐

