返回
使用.NET SDK Betalgo调用OpenAI ChatGPT API 代码示例
2022-12-13
4432 1首先准备工作是需要有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页面
您可能感兴趣:
匿名用户
这样写不连贯,还有更好的方法吗