.NET技术做到ChatGPT流式响应并实现打字机效果
ChatGPT是当前备受瞩目的人工智能产品之一,它具备与人类进行智能对话的能力,同时能够理解人类的想法和需求。在内容创作、营销、智能客服、教育、投资等领域和场景中,ChatGPT都展现出了巨大的商业价值。
最近我抽出时间深入研究了ChatGPT聊天机器人。虽然之前有过简单的体验,但我想更进一步地了解它的实现原理。经过在网上搜索,我发现关于.Net和ChatGPT开发的文章非常有限。因此,我决定分享一下我在开发过程中遇到的一些关键问题和解决方法,希望能与大家一起学习。正好我还没有确定要在公众号上发布的内容,所以我决定先分享这个,也请大家多多关注。
如何实现ChatGPT的Stream传输
参考资料: https://www.cnblogs.com/hejiale010426/p/17583803.html
我参考这个代码,跟着做了一遍,我发现存在以下几个问题:
不是流式输出
原来的代码:
改成这样,就可以用eventStream的方式来调用,核心代码是:
context.Response.Headers.Add("Content-Type", "text/event-stream");
await context.Response.WriteAsync(v);
await context.Response.Body.FlushAsync();
输出的结果会有重复
解决方案:
将public async IAsyncEnumerable<char> Test()
改成:public async Task Test()
报错: 错误 CS1624 “Task”不是迭代器接口类型,因此“StreamController.Test()”体不能是迭代器块
解决方案:
需要删除这个代码
//yield return v;
【NET 如何实现ChatGPT的Stream传输】源代码下载:
已经上传到CSDN, 下载地址:
https://download.csdn.net/download/dmz1981/88312670
附上我们开发的软件产品:晨希AI军师
网址: 晨希AI军师 v2.0 http://ai.chaling58.cn/aewebvue/#/login