是否有官方OpenAI NuGet包?VS控制台项目API调用相关咨询
关于在Visual Studio控制台项目中使用OpenAI API的问题解答
一、官方NuGet包情况
你听说的“OpenAI未发布官方NuGet包”并不属实,OpenAI官方已经推出了针对.NET平台的正式NuGet包,包名为OpenAI。你可以通过以下方式安装:
- 在Visual Studio的NuGet包管理器中搜索
OpenAI,选择官方发布的包(发布者为OpenAI)进行安装 - 使用Package Manager Console执行命令:
Install-Package OpenAI - 使用.NET CLI执行命令:
dotnet add package OpenAI
二、快速测试API的方式
方式1:使用官方NuGet包(推荐)
安装完成后,可通过以下简单代码在控制台项目中调用API:
using OpenAI; using OpenAI.Chat; // 建议通过环境变量或配置文件管理API密钥,避免硬编码 var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY"); var client = new OpenAIClient(apiKey); var chatRequest = new ChatCompletionCreateRequest { Messages = new List<ChatMessage> { new ChatMessage(ChatRole.User, "请用一句话介绍OpenAI API") }, Model = "gpt-3.5-turbo" }; var response = await client.ChatEndpoint.CreateCompletionAsync(chatRequest); foreach (var choice in response.Choices) { Console.WriteLine("AI回复:"); Console.WriteLine(choice.Message.Content); }
方式2:手动发送HTTP请求(无需NuGet包)
如果不想依赖官方包,可直接使用HttpClient发送HTTP请求调用API,示例代码如下:
using System.Net.Http; using System.Text; using System.Text.Json; // 同样建议通过环境变量获取API密钥 var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY"); var requestUrl = "https://api.openai.com/v1/chat/completions"; // 构造请求体 var requestBody = new { model = "gpt-3.5-turbo", messages = new[] { new { role = "user", content = "请用一句话介绍OpenAI API" } } }; var jsonContent = JsonSerializer.Serialize(requestBody); var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"); using var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}"); var response = await httpClient.PostAsync(requestUrl, content); response.EnsureSuccessStatusCode(); var responseJson = await response.Content.ReadAsStringAsync(); var resultDoc = JsonDocument.Parse(responseJson); var aiReply = resultDoc.RootElement .GetProperty("choices")[0] .GetProperty("message") .GetProperty("content") .GetString(); Console.WriteLine("AI回复:"); Console.WriteLine(aiReply);
注意事项
- 务必妥善保管你的OpenAI API密钥,不要将其硬编码到代码中或提交到版本控制系统,建议使用环境变量、配置文件等方式管理
- 确保你的API账户有可用额度,避免因额度不足导致请求失败
内容的提问来源于stack exchange,提问作者kintela
相关产品推荐
相关产品推荐

