项目介绍:.NET 访问 OpenAI 的库
概述
这个项目是一个面向 .NET 开发者的社区库,旨在简化在 .NET 应用中集成 OpenAI API 的过程。通过使用这个库,开发者可以轻松地将 OpenAI 的智能能力整合到自己的应用程序中。
安装包
核心库
核心库的包名和命名空间已经更新为 Betalgo.Ranul.OpenAI
。开发者可以通过 NuGet 包管理器轻松安装此库:
Install-Package Betalgo.Ranul.OpenAI
实验性实用程序库
一个实验性的实用程序库也能够提供更丰富的功能,安装方法如下:
Install-Package Betalgo.OpenAI.Utilities
文档和链接
项目包含丰富的文档资源,包括:
致谢
项目的维护离不开所有错误报告者、贡献者和赞助商的支持。贡献者 和 赞助商 的支持是项目持续发展的动力。
示例使用
代码库中包含一个名为 OpenAI.Playground 的示例项目,帮助使用者理解库的工作原理。不过,用户在试验时要小心,因为某些测试方法可能会导致意外后果,如文件删除或模型微调。
重要提示: 建议使用单独的账户进行操作,避免对主账户造成影响。
使用依赖注入
采用依赖注入的方式,可以在应用程序中快速集成和管理 API 服务。
配置 secrets.json
"OpenAIServiceOptions": {
"ApiKey": "Your api key goes here",
"Organization": "Your Organization Id goes here (optional)",
"UseBeta": "true/false (optional)"
}
在 Program.cs 中配置
serviceCollection.AddOpenAIService(settings => { settings.ApiKey = Environment.GetEnvironmentVariable("MY_OPEN_AI_API_KEY"); });
var openAiService = serviceProvider.GetRequiredService<IOpenAIService>();
openAiService.SetDefaultModelId(Models.Gpt_4o); // 可选,设置默认模型
Chat GPT 示例
示例代码展示了如何使用这个库创建一个简单的聊天功能:
var completionResult = await openAiService.ChatCompletion.CreateCompletion(new ChatCompletionCreateRequest
{
Messages = new List<ChatMessage>
{
ChatMessage.FromSystem("You are a helpful assistant."),
ChatMessage.FromUser("Who won the world series in 2020?"),
ChatMessage.FromAssistant("The Los Angeles Dodgers won the World Series in 2020."),
ChatMessage.FromUser("Where was it played?")
},
Model = Models.Gpt_4o,
});
if (completionResult.Successful)
{
Console.WriteLine(completionResult.Choices.First().Message.Content);
}
注意事项
由于时间限制,可能并非所有的方法都经过详尽测试或完全记录。在使用时,如遇任何问题,欢迎提交错误报告或提出拉取请求。
版本更新日志
8.9.0
- 实施了实时 API,这是第一个版本,可能包含一些错误,欢迎报告问题。
8.8.0
- 增强了该库与官方 OpenAI 库和/或同一个项目中的语义内核的兼容性。
- 库的命名空间和 PackageId 从
Betalgo.OpenAI
变更为Betalgo.Ranul.OpenAI
。 - 从命名一致性出发,将库中所有 "OpenAi" 变为 "OpenAI"。
- 提供了迁移指南来帮助开发者更新代码。
要了解更多变更内容,请查看完整变更日志。
如需进一步交流或提供反馈,欢迎加入我们的 Discord 频道、Reddit 论坛或 GitHub 讨论区。我们欢迎您的参与和贡献!