雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

使用.NET SDK Betalgo调用OpenAI ChatGPT API 代码示例

2024-10-06 20

首先准备工作是需要有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页面

更新于:12天前
赞一波!

文章评论

评论问答