【愚公系列】2023年02月 .NET CORE工具案例-ChatGPT和.NET Core应用的结合
前言
1.ChatGPT的概念
ChatGPT是美国人工智能研究实验室OpenAI新推出的一种人工智能技术驱动的自然语言处理工具,使用了Transformer神经网络架构,也是GPT-3.5架构,这是一种用于处理序列数据的模型,拥有语言理解和文本生成能力,尤其是它会通过连接大量的语料库来训练模型,这些语料库包含了真实世界中的对话,使得ChatGPT具备上知天文下知地理,还能根据聊天的上下文进行互动的能力,做到与真正人类几乎无异的聊天场景进行交流。ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。–百度百科
自美国时间12月2日上线以来,美国硅谷的初创公司OpenAI推出的ChatGPT,已经拥有超过一百万的用户,受到热烈的讨论。它既能完成包括写代码,修bug(代码改错),翻译文献,写小说,写商业文案,创作菜谱,做作业,评价作业等一系列常见文字输出型任务,而且在和用户对话时,能记住对话的上下文,反应非常逼真。
本人实际测试过ChatGPT相关功能还是很不错,本篇文章讲解ChatGPT和.NET Core应用的结合。把ChatGPT融入自己的程序里。
API文档地址:https://platform.openai.com/docs/introduction
2.ChatGPT注册教程
1、打开 OpenAI 官网:https://openai.com/
2、在页面右上角点击“Sign In”按钮
注册完成后就可以点击“Create Account”,进行密钥的获取
一、ChatGPT和.NET Core应用的结合
1.安装包
Betalgo.OpenAI.GPT3
2.控制器
[HttpPost]
[Route("getanswer")]
public async Task GetResult()
{
const string OPENAPI_TOKEN = "sk-x9ZSpd67CeF4sHg2xxxxxxxxxxxxxx";
OpenAIService service = new OpenAIService(new OpenAiOptions() { ApiKey = OPENAPI_TOKEN });
CompletionCreateRequest createRequest = new CompletionCreateRequest()
{
Prompt = "写一首关于工作的诗",
Temperature = 0.3f,
MaxTokens = 1000
};
var res = await service.Completions.CreateCompletion(createRequest, Models.TextDavinciV3);
if (res.Successful)
{
var ss = res.Choices.FirstOrDefault().Text;
Console.WriteLine(ss);
}
}
3.运行程序
3.1 问题一
1、问
写一首关于工作的诗
2、答
工作把我折磨,
把我的时间拉长,
把我的精力耗尽,
把我的头发秃掉。
努力工作让我累,
让我的眼睛发红,
让我的身体疲惫,
让我的心情沉重。
但是我知道,
工作是必须的,
它能让我获得成功,
它能让我实现梦想。
所以我要坚持,
不管多么艰辛,
努力工作,
让梦想成真!
3.2 问题二
1、问
.NET和JAVA那个更好
2、答
这取决于你想要做什么。.NET和JAVA都是功能强大的编程语言,它们都有自己的优势和劣势。.NET更适合开发Windows应用程序,而JAVA
更适合开发Web应用程序。因此,你应该根据你的需求来选择合适的语言。
3.3 问题三
1、问
用李白的口语来首刀光剑影的诗
3、答
长江万里长,滔滔不绝;
烟波浩渺,滚滚如潮。
江上落日,刀光剑影,
纷纷欲断,绝不可收。
江山秀丽,景色灿烂;
江渚清碧,渔歌轻轻。
江边渔火,照亮夜空,
船夫拨开,满江星斗。
备注
流读取
using OpenAI.GPT3.Managers;
using OpenAI.GPT3.ObjectModels.RequestModels;
using OpenAI.GPT3.ObjectModels;
using OpenAI.GPT3;
using System.Text;
const string OPENAPI_TOKEN = "sk-G3ZApAW1VfvvnXcTMNk4T3BlXXXXXXXXXXXXXXXXXXXXXX";
Console.InputEncoding = Encoding.Unicode;
while (true)
{
OpenAIService service = new OpenAIService(new OpenAiOptions() { ApiKey = OPENAPI_TOKEN });
Console.WriteLine();
Console.WriteLine("--------------------我:");
string msg = Console.ReadLine();
CompletionCreateRequest createRequest = new CompletionCreateRequest()
{
Prompt = msg,
Temperature = 0.3f,
MaxTokens = 1000,
Stream=true
};
var completionResult =service.Completions.CreateCompletionAsStream(createRequest, Models.TextDavinciV3);
Console.WriteLine("--------------------AI机器人:");
await foreach (var completion in completionResult)
{
if (completion.Successful)
{
Console.Write(completion.Choices.FirstOrDefault()?.Text);
}
else
{
if (completion.Error == null)
{
throw new Exception("Unknown Error");
}
Console.WriteLine($"{completion.Error.Code}: {completion.Error.Message}");
}
}
}
- 点赞
- 收藏
- 关注作者
评论(0)