c#.NET技术做到ChatGPT流式响应并实现打字机效果 实现ChatGPT的Stream传输

news/2024/10/17 17:22:15/

.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

注册账号

AI问答


http://www.ppmy.cn/news/1103839.html

相关文章

飞行动力学 - 第19节-航向操纵的临界条件 之 基础点摘要

飞行动力学 - 第19节-航向操纵的临界条件 之 基础点摘要 1. 方向舵设计的临界条件2. 不利偏航3. 侧风起飞/着陆4. 不对称推力5. 参考资料 1. 方向舵设计的临界条件 目的&#xff1a;提供足够的操纵权限。 不利偏航 (Adverse yaw)侧风起飞/着陆不对称推力尾旋改出 2. 不利偏航…

SpringMVC之文件上传下载

SpringMVC是一个基于Java的Web框架&#xff0c;它提供了一套用于构建Web应用程序的开发模型。在SpringMVC中&#xff0c;文件上传和下载是常见的功能之一。 SpringMVC文件上传和下载的介绍&#xff1a; 介绍文件上传&#xff1a; 在SpringMVC中&#xff0c;文件上传功能可以通…

平衡二叉搜索树(AVL)——【C++实现插入、删除等操作】

本章完整代码gitee地址&#xff1a;平衡二叉搜索树 文章目录 &#x1f333;0. 前言&#x1f332;1. AVL树概念&#x1f334;2. 实现AVL树&#x1f33f;2.1 结构定义&#x1f33f;2.2 插入&#x1f490;左单旋&#x1f490;右单旋&#x1f490;左右双旋&#x1f490;右左双旋 &a…

hel-micro

我的博客 这篇文章少了图片(本地找不着了),可以在上面的链接中看到 关于 模块联邦sdk化&#xff0c;免构建、热更新、工具链无关的微模块方案 文档 开发并发布到npm 开发远程 vue 组件 ####克隆模板库 克隆远程 vue 组件模板项目为rvc-xxx&#xff08;名字请按实际需要修…

提升网络安全防御能力的几个方面

提升网络安全防御能力对于个人和组织来说都至关重要。网络安全是一个全面的概念&#xff0c;包括保护个人信息、防止恶意攻击和确保网络资源的安全。在这篇文章中&#xff0c;我将介绍几个方面来提高网络安全防御能力其中包括IP地址查询。 首先&#xff0c;IP地址查询是一种网…

mac 13.x 打开第三方应用,提示已损坏无法打开

前排提示&#xff0c;不一定有效 1、先在终端执行下面这个&#xff0c;因为要提权&#xff0c;输入自己的密码 sudo xattr -r -d com.apple.quarantine 具体应用 # 具体应用是一个路径&#xff0c;拖入 访达——应用程序——第三方应用 到终端就行 # sudo xattr -r -d com.app…

系统测试AC5. AC6. IAR和GCC调试效果,MDK AC6不开优化调试乱跳,甚至倒序执行

首先感谢大家对上一个视频的点评回复&#xff0c;非常有意义的讨论&#xff0c;这次AC6的表现更新惊呆&#xff0c;不开优化都可以乱跳。 【实验目的】 同样的程序代码&#xff0c;目的是测试C环境的调试现象。 【实验版本】 IAR版本 &#xff1a;9.3x MDK版本&#xff1a;5…

【算法】常见位运算总结

目录 1.基础位运算2. 给一个数n&#xff0c;确定它的二进制表示中的第x位是0还是13.将一个数n的二进制表示的第x位修改成14.将一个数n的二进制表示的第x位修改成0、5. 位图的思想6.提取一个数(n)二进制表示中最右侧的17.干掉一个数(n)二进制表示中最右侧的18.位运算的优先级9.异…