在C#中调用Azure OpenAI时找不到StreamingCompletions和deploymentOrModelName
解决C#调用Azure OpenAI时找不到StreamingCompletions类的问题
核心解决步骤
你遇到的问题源于未安装正确的Azure OpenAI SDK NuGet包,以下是具体处理方案:
1. 安装指定NuGet包
必须安装Azure.AI.OpenAI官方NuGet包,它包含StreamingCompletions相关类及deploymentOrModelName参数的定义,是当前Azure OpenAI推荐使用的SDK。
- Visual Studio中可通过NuGet包管理器搜索安装;
- 使用Package Manager Console执行命令:
Install-Package Azure.AI.OpenAI
- 或用.NET CLI命令:
dotnet add package Azure.AI.OpenAI
2. 添加命名空间引用
在代码文件顶部添加以下命名空间,确保能访问相关类:
using Azure.AI.OpenAI; using Azure;
3. 关于deploymentOrModelName参数
该参数对应你在Azure门户中部署的模型名称,直接替换为自身的部署名即可(比如部署了gpt-35-turbo,就填入这个名称)。
4. 匹配SDK的代码结构
如果Azure门户生成的示例是旧版本SDK代码,类名可能存在差异,最新SDK中流式调用的基础示例结构如下:
var endpoint = new Uri("你的Azure OpenAI端点"); var apiKey = new AzureKeyCredential("你的API密钥"); var openAIClient = new OpenAIClient(endpoint, apiKey); var chatCompletionsOptions = new ChatCompletionsOptions() { DeploymentName = "你的部署名称", // 对应deploymentOrModelName Messages = { new ChatMessage(ChatRole.System, "你是一个助手"), new ChatMessage(ChatRole.User, "Hello!") }, Stream = true }; await foreach (var chatUpdate in openAIClient.GetChatCompletionsStreamingAsync(chatCompletionsOptions)) { if (chatUpdate.Choices.Count > 0) { var delta = chatUpdate.Choices[0].Delta; if (!string.IsNullOrEmpty(delta.Content)) { Console.Write(delta.Content); } } }
确保使用最新版本SDK,即可匹配示例逻辑。
内容的提问来源于stack exchange,提问作者sathishgaalla
相关产品推荐
相关产品推荐

