使用.NET SDK Betalgo调用OpenAI ChatGPT API 代码示例
2024-10-06
37
首先准备工作是需要有OpenAI的帐号然后获取ApiKey。目前国内IP无法注册和登陆OpenAI。翻墙后注册需要手机验证,可以通过手机验证码平台注册,注册过程非常快,花费大概1元左右。注册方法请看:
最新OpenAI ChatGPT注册手机验证图文教程亲测可用
https://www.leavescn.com/Articles/Content/1208
根据官方推荐使用Betalgo这个SDK调用OpenAI接口。
可以通过Github下载
https://github.com/betalgo/openai
也可以通过Nuget安装包
Install-Package Betalgo.OpenAI.GPT3
这是登录OpenAI后的页面。
我们在登陆OpenAI账户后,在Example例子中可以看到很多使用场景,通过传递不同的参数调整它的使用场景。
下面以调用接口实现Chat聊天功能为例。我创建了一个Console控制台,输入后调用api得到聊天内容。
using OpenAI.GPT3;
using OpenAI.GPT3.Managers;
using OpenAI.GPT3.ObjectModels;
using OpenAI.GPT3.ObjectModels.RequestModels;
var openAiService = new OpenAIService(new OpenAiOptions()
{
ApiKey = "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" //设置ApiKey
});
await TryChat();
async Task TryChat() {
var str = Console.ReadLine();
// 调用$"/{_apiVersion}/engines/{engineId}/completions" api
var completionResult = await openAiService.Completions.CreateCompletion(new CompletionCreateRequest()
{
Prompt = str,
Temperature = 0.9f,
TopP = 1,
MaxTokens = 150,
FrequencyPenalty =0.0f,
PresencePenalty = 0.6f,
}, Models.TextDavinciV3);
if (completionResult.Successful)
{
var choice = completionResult.Choices.FirstOrDefault();
Console.WriteLine(choice == null ? "no response" : choice.Text);
Console.WriteLine("");
}
else
{
if (completionResult.Error == null)
{
throw new Exception("Unknown Error");
}
Console.WriteLine($"{completionResult.Error.Code}: {completionResult.Error.Message}");
Console.WriteLine("");
}
await TryChat();
}
运行和聊天结果:
我直接问了个比较难的问题How to learn .net?,它也是给了我5点建议~
我问Can you speak chinese? 跟官方的回答一样,No. 不支持~
我让它用c#编写一个冒泡的方法,它也是直接上Code了
总的来说调用还是很方便的,这是OpenAI的API,最近大火的ChatGPT目前只能在它的网站上使用还没有提供API,聊天功能是类似的。
ChatGPT页面
更新于:1个月前赞一波!
相关文章
- Sylvan.Data.Excel 性能优异的开源.NET Excel数据读取库
- ASP.NET Core 中常用的内置中间件
- .NET9 F#有什么新特性?
- .NET 开源 ORM FreeSql 使用教程
- .NET9 C# 13 有哪些新特性?
- .NET9 开始删除内置的 Swagger 支持 可使用Scalar.AspNetCore替代
- .NET 9 中System.Text.Json 的新增功能
- 【说站】java中有哪些时间API?
- 什么是.NET渐进式Web应用(PWA)
- .NET开发中常见的异常报错原因和解决方法?
- .NET框架和CLR的工作原理?
- ASP.NET MVC与Web Forms的区别
- .NET C#中的IEnumerable和IEnumerator的区别
- 使用ADO.NET连接到南大通用GBase 8s数据库
- 鸿蒙OpenHarmony系统可以运行跨平台的.NET Core吗?
- ASP.NET Core使用partial标签报错
- .NET 9 即将推出的功能Task.WhenEach
- .NET 使用HttpClientFactory+Polly替代直接使用HttpClient
- .NET Framework被淘汰了吗?
- 强大的 .NET Mock 框架 单元测试模拟库Moq使用教程
文章评论
评论问答