位置: IT常识 - 正文

用winform开发ChatGPT对话应用(winform开发技术有哪些)

编辑:rootadmin
用winform开发ChatGPT对话应用 用winform开发ChatGPT对话应用

推荐整理分享用winform开发ChatGPT对话应用(winform开发技术有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:winform开发工具,winform开发实例教程,编写winform程序,winform开发技术有哪些,winform开发用哪种设计模式,winform开发实例教程,winform开发工具,winform开发实例教程,内容如对您有帮助,希望把文章链接给更多的朋友!

最近ChatGPT非常火热,本着有热闹就凑的心理,我也上手玩了一把。不玩不知道,玩了吓一跳,这家伙的火,是自己把自己点燃的。不客气的说,OpenAI给人类重新创造了一个神,上帝的无所不能是在人类的想象中,而ChatGPT的无所不能是在人类的眼前耍大刀; 闲话不扯,进入正题,今天我尝试用C#开发一个对话应用,让我们能跳过网页验证,跳过科学上网,直接与AI对话。本着一贯偷懒的态度,来到CSDN来抄袭一把,查到用C#开发的示例非常少,而且对于我这总代码水平复现他们操作也相对困难。求助于ChatGPT,可他给出的代码一直跑不起来,我把代码放在这里,有哪位大神能看出那里有问题,帮我指出来。

using System;using System.Net.Http;using System.Text;using System.Windows.Forms;using Newtonsoft.Json;namespace chatGTP对话应用{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private async void btnSubmit_Click(object sender, EventArgs e) { string input = txtInput.Text; string response = await GetResponseFromChatGPT(input); txtResponse.Text = response; } private async System.Threading.Tasks.Task<string> GetResponseFromChatGPT(string input) { using (var client = new HttpClient()) { var request = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("https://api.openai.com/v1/engines/text-davinci-002/jobs"), Content = new StringContent("{\"prompt\": \"" + input + "\", \"max_tokens\":100}", Encoding.UTF8, "application/json") }; request.Headers.Add("Authorization", "Bearer <API-KEY>"); var response = await client.SendAsync(request); var result = await response.Content.ReadAsStringAsync(); dynamic data = JsonConvert.DeserializeObject(result); return data.choices[0].text; } } }}

这段代码总是报API-KEY错误,JSON格式无法解析,模块接口错误;昨天完胜测试了很久都没有通过,可能AI大神对比较新的需求跟我们一样也需要经过一段时间的消化; 虽然以上代码无法跑起来,但在解决这个问题的过程中参考的很多其他博友的解决思路;重要的思路之一就是调用OPENAI的API。有了这个思路就开干,建立winform项目后,直接在Nuget中搜索,果然找到OPENAI。在这里哦,贴心吧! 把这个API安装到项目中后,接下来就是要看怎么用了?这是一个比较犯愁的地方,因为我没有在CSDN中找到可参考的;就只能找官方文档了,你知道的,凭我的英文水平,天然是对官方文档有有抵触情绪的;不过还好,内容不是很多,并且提供的用法和解释也十分清楚,这里我把官方文档的链接放在这里,方便兄弟们查看:openai说明文档 有了这些鸟语的支持,那进度就快很多了;首先是跑起来了,我用的这段代码:

var result = await api.Completions.GetCompletion("One Two Three One Two");用winform开发ChatGPT对话应用(winform开发技术有哪些)

能跑,也能获取回应,但是内容不全,而且只有几个字,这显然不是AI大神的风格。本着有错就一定是我的错的原则,以及之前代码中关于异步方法的浅薄理解,我果断选择下面这段代码:

await api.Completions.StreamCompletionAsync(new CompletionRequest("My name is Roger and I am a principal software engineer at Salesforce. This is my resume:", Model.DavinciText, 200, 0.5, presencePenalty: 0.1, frequencyPenalty: 0.1),res => ResumeTextbox.Text += res.ToString());

当然这样选择还有一个原因,这段代码的参数比较全,如果运行效果不理想,我可以对这些参数进行调整;经过这样的修改和参数调整后,效果跟在网页中AI大神的表现就差不多了;接下来我把完成的代码贴在这里,楷了大家这么多年的油,今天也算是还一笔这么多年欠下的一份人情了;

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Net.Http;using System.Reflection;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using Newtonsoft.Json;using OpenAI_API;using OpenAI_API.Completions;using OpenAI_API.Embedding;using OpenAI_API.Models;namespace chatGTP对话应用{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private async void btnSubmit_Click(object sender, EventArgs e) { var api = new OpenAI_API.OpenAIAPI("你的API密钥"); await api.Completions.StreamCompletionAsync( new CompletionRequest(txtQuestion.Text, Model.DavinciText, 2000, 1, presencePenalty: 0.1, frequencyPenalty: 0.1), res => txtAnswer.Text += res.ToString()); textBox1.Text = Model.DavinciText.ModelID; } private void button1_Click(object sender, EventArgs e) { txtQuestion.Text = string.Empty; txtAnswer.Text = string.Empty; textBox1.Text = string.Empty; } } }

好了,展示一下效果:

20230209_213527

下面展示一下问答测试和翻译功能:

chatgtp问答测试和翻译测试

本文链接地址:https://www.jiuchutong.com/zhishi/297587.html 转载请保留说明!

上一篇:关于服务连接器(Servlet)你了解多少?(服务器连接方式包括直接相连,间接连接)

下一篇:最常见的六种跨域解决方案(跨的基本功有哪些)

  • 小猿搜题怎么拍照搜题(小猿搜题怎么拍整本答案)

    小猿搜题怎么拍照搜题(小猿搜题怎么拍整本答案)

  • 荣耀x10max安兔兔跑分是多少(荣耀10x 安兔兔)

    荣耀x10max安兔兔跑分是多少(荣耀10x 安兔兔)

  • 小米录音功能怎么打开(小米录音在哪里开启)

    小米录音功能怎么打开(小米录音在哪里开启)

  • 抢红包功能异常怎么解决(抢红包的时候出现异常)

    抢红包功能异常怎么解决(抢红包的时候出现异常)

  • 视频字幕播放乱码(视频全是字幕)

    视频字幕播放乱码(视频全是字幕)

  • 恢复出厂后找回联系人(恢复出厂设置的东西还能找回来吗)

    恢复出厂后找回联系人(恢复出厂设置的东西还能找回来吗)

  • 智能云电视机系统复位花屏了(智能电视云电视)

    智能云电视机系统复位花屏了(智能电视云电视)

  • 蓝牙耳机不见了手机能定位吗(蓝牙耳机不见了怎么办定位查找)

    蓝牙耳机不见了手机能定位吗(蓝牙耳机不见了怎么办定位查找)

  • 三星s10不贴膜容易花屏吗(三星s10不贴膜会刮花吗)

    三星s10不贴膜容易花屏吗(三星s10不贴膜会刮花吗)

  • ipadpencil第一次线充要多久(ipadpencil第一次充电多久)

    ipadpencil第一次线充要多久(ipadpencil第一次充电多久)

  • 抖音粉丝灯牌有什么用(抖音粉丝灯牌有效期多久)

    抖音粉丝灯牌有什么用(抖音粉丝灯牌有效期多久)

  • 操作系统的分类(操作系统的分类及具体举例)

    操作系统的分类(操作系统的分类及具体举例)

  • 滴滴出行啥时候出来的(滴滴出行啥时候上线)

    滴滴出行啥时候出来的(滴滴出行啥时候上线)

  • 手机短信看不了是怎么回事(手机短信看不了怎么设置)

    手机短信看不了是怎么回事(手机短信看不了怎么设置)

  • ps去色后怎么还原(ps去色怎么还原颜色)

    ps去色后怎么还原(ps去色怎么还原颜色)

  • 第7代ipad屏幕尺寸多大(ipad7代屏幕多少寸)

    第7代ipad屏幕尺寸多大(ipad7代屏幕多少寸)

  • 来电视频怎么设置(来电视频怎么设置自己喜欢的)

    来电视频怎么设置(来电视频怎么设置自己喜欢的)

  • iphone11怎么设置指纹(iphone11怎么设置面容解锁)

    iphone11怎么设置指纹(iphone11怎么设置面容解锁)

  • 手机漂流瓶在哪里找到(手机漂流瓶哪去了)

    手机漂流瓶在哪里找到(手机漂流瓶哪去了)

  • 手机被拉黑了怎么打通(手机号被拉黑怎么破解)

    手机被拉黑了怎么打通(手机号被拉黑怎么破解)

  • 唯品会怎么改名(唯品会怎么改名字)

    唯品会怎么改名(唯品会怎么改名字)

  • 怎么调照片的分辨率(怎么调照片的分辨率手机)

    怎么调照片的分辨率(怎么调照片的分辨率手机)

  • 苹果手表a1554是第几代(苹果手表A1554是什么型号)

    苹果手表a1554是第几代(苹果手表A1554是什么型号)

  • 红米k20pro摄像头怎么弹出来(红米k20pro摄像头手动校正)

    红米k20pro摄像头怎么弹出来(红米k20pro摄像头手动校正)

  • 企业所得税留抵税额会显示在申报表上吗?
  • 委托加工物资的消费税计入成本吗
  • 应交个人所得税计提分录
  • 内账会计会承担法律责任吗
  • 固定资产清理结转到什么科目
  • 金税四期已经开始了吗
  • 进口货物再出口 增值税处理
  • 关联企业往来款 利息
  • 购置税发票如何下载
  • 销售产品货款存入银行是什么凭证
  • 进项税未抵扣完怎么结转
  • 摊余成本加还是减
  • 小规模纳税人取得的专票转为一般纳税人之后能抵扣吗
  • 购入材料用什么科目
  • 企业购入旧固定资产如何计提折旧
  • 融资租入固定资产
  • 开了增值税专用发票对方不付款可以申请冻结对方公帐嘛
  • 税控服务费抵扣增值税
  • 其他综合收益影响净利润吗
  • 俱乐部会员有什么用
  • 纳税人申领发票流程
  • 税务局开的专票可以抵扣吗
  • 出口退税转内销还是转免税好
  • 公司有物业管理部门吗
  • 社保费现金收缴管理制度
  • windows10不会自动锁屏
  • 集团内部资金往来用什么科目核算
  • mac安装软件提示需要更高版本
  • uefi+bios
  • 小微企业工业企业认定标准
  • linux禁止ip访问80端口
  • 高新技术企业加计5%
  • 公允价值变动损益借贷方向增减
  • 进项税加计抵扣10%和15%
  • 金税盘一定要有吗
  • 制造费用期末怎么结转
  • 管理费用的主要科目
  • 免征增值税会计科目
  • 税收优惠会计分录 附加税
  • 一维频率分布表
  • php自动生成文章
  • 税控盘开具增值税专用发票步骤
  • 租金收入的所得税率
  • 财务报表怎样调出来
  • 非一般纳税人怎么报税
  • 工程代建的性质
  • php单例模式优点
  • 帝国cms使用手册
  • 筹资活动产生的现金流量净额减少说明什么
  • 物流货损怎样处理
  • 业务招待费的范畴
  • 广告公司的广告制作费计入什么科目
  • 发生销售退回账务处理
  • 购买的税控盘可以全额抵扣,怎么报
  • 计提社保和工资一起怎么做账
  • 模具维修费用清单表格
  • 黄金以旧换新工具有哪些
  • 工程施工人工费如何结转
  • 从公账提取备用金到个人账户怎么做会计分录
  • 新公司季初资产总额填什么
  • 修改mysql字段默认值
  • mssql导出数据库
  • windows一键隐藏桌面图标
  • mac屏幕共享软件
  • winxp系统设备管理器
  • Android中SurfaceView的使用详解
  • wow血条插件
  • js修改值
  • node js教程
  • python 变参
  • css如何实现
  • vue全家桶包含哪些
  • jquery将文本框设置为只读
  • nodejs搭建本地资源服务器
  • unity3d官方案例
  • jq拖拽功能
  • android 桌面开发
  • 广东省电子税务局电话
  • 上海二手房个税退税政策
  • 领的增值税发票怎么读入?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设