位置: 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)你了解多少?(服务器连接方式包括直接相连,间接连接)

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

  • 真我gtneo2t支持nfc吗(真我gtneo2t支持内存扩展吗)

    真我gtneo2t支持nfc吗(真我gtneo2t支持内存扩展吗)

  • wifi复位了上不了网怎么调(wifi复位后用不了)

    wifi复位了上不了网怎么调(wifi复位后用不了)

  • 小米蓝牙遥控器没反应(小米蓝牙遥控器怎么跟电视配对)

    小米蓝牙遥控器没反应(小米蓝牙遥控器怎么跟电视配对)

  • 笔记本放久了启动不了(笔记本放久了启动不了拿去修要多少钱)

    笔记本放久了启动不了(笔记本放久了启动不了拿去修要多少钱)

  • 微信互删 头像是否更新(微信互删头像变灰)

    微信互删 头像是否更新(微信互删头像变灰)

  • 微信删除拉黑对方列表里还有你吗(微信删除拉黑对方后,对方申请好友)

    微信删除拉黑对方列表里还有你吗(微信删除拉黑对方后,对方申请好友)

  • 华为p40能放大多少倍(华为p40能放大多少倍拍摄)

    华为p40能放大多少倍(华为p40能放大多少倍拍摄)

  • 删除和撤回有什么区别(删除和撤回微信有何不同)

    删除和撤回有什么区别(删除和撤回微信有何不同)

  • 演示文档的扩展名(演示文稿扩展)

    演示文档的扩展名(演示文稿扩展)

  • 智慧团建手机登录可以吗(智慧团建手机登录入口电脑版)

    智慧团建手机登录可以吗(智慧团建手机登录入口电脑版)

  • 微信对话翻译怎么取消(微信对话框翻译)

    微信对话翻译怎么取消(微信对话框翻译)

  • fps低是什么原因(csgofps低是什么原因)

    fps低是什么原因(csgofps低是什么原因)

  • 苹果怎么拉黑联系人(苹果怎么拉黑联系人电话号码说真在通话中)

    苹果怎么拉黑联系人(苹果怎么拉黑联系人电话号码说真在通话中)

  • 国产银河数字式电子计算机是属于什么(国产银河数字式电子计算机)

    国产银河数字式电子计算机是属于什么(国产银河数字式电子计算机)

  • 优酷会员怎么踢人下线(优酷会员怎么踢出其他设备)

    优酷会员怎么踢人下线(优酷会员怎么踢出其他设备)

  • 荣耀20s支持nfc吗(荣耀20s支不支持nfc)

    荣耀20s支持nfc吗(荣耀20s支不支持nfc)

  • 手机wps怎么打勾(手机wps怎么打勾号打入已有方框中)

    手机wps怎么打勾(手机wps怎么打勾号打入已有方框中)

  • 苹果手机怎么连接小爱音响(苹果手机怎么连接华为手表)

    苹果手机怎么连接小爱音响(苹果手机怎么连接华为手表)

  • 怎么加入京东自营(怎么加入京东自营快团团)

    怎么加入京东自营(怎么加入京东自营快团团)

  • win10怎么删除磁盘(window10怎么清空磁盘)

    win10怎么删除磁盘(window10怎么清空磁盘)

  • 快手收藏的视频怎么上传(快手收藏的视频为什么没有了)

    快手收藏的视频怎么上传(快手收藏的视频为什么没有了)

  • p30手机支持5g吗(华为p30支持5g嘛)

    p30手机支持5g吗(华为p30支持5g嘛)

  • 6s发烫一会就没电了(iphone6用一下就发烫)

    6s发烫一会就没电了(iphone6用一下就发烫)

  • iphone搜不到beatsx

    iphone搜不到beatsx

  • 一个g是多少mb(一个g是多少mg)

    一个g是多少mb(一个g是多少mg)

  • 职工薪酬纳税调减的情况
  • 已提折旧
  • 土地增值税要计增值税吗
  • 一般纳税人认定表
  • 股权转让如何进行资产评估的
  • 收到单位借款如何处理
  • 盘盈的固定资产怎么做账务处理
  • 经营范围没广告怎么办
  • 留抵税额账上比申报表多280
  • 信用评估费用收费标准
  • 开模费用计入什么科目
  • 保险中介的保险可以买吗
  • 境外中资企业转让股权的涉税处理
  • 公司报销费用发票怎么开
  • 单位车辆折旧完怎么处理
  • 即期外汇交易有幅度限制吗
  • 往来款少付零头怎么入账
  • 资质招投标
  • 仓储业有哪些
  • 投资公司的利息支出可抵扣吗
  • 企业从政府取得的经济资源,如果与企业销售商品
  • 未认证的增值税发票如何开具红字发票
  • 建筑材料增值税税率
  • 固定资产借方表示什么意思
  • 法院强制拍卖房子流程
  • 银行贷款入公账怎么入分录?
  • windows版本比较
  • 存货跌价准备借贷方表示的含义
  • PHP:iterator_to_array()的用法_spl函数
  • 公会经费缴费单位应于每月
  • 购买电子承兑需要给对方开发票吗
  • laravel 入门
  • 威尔士黄水仙
  • php从数据库中读取数据
  • 个人独资企业建筑类怎么注册
  • 什么是微前端
  • php array_slice 取出数组中的一段序列实例
  • 冲减管理费用为什么放在借方
  • 与取得收入无关的费用支出可以扣除吗
  • 企业境外收入境内申报
  • 帝国cms移动端
  • day10-Tomcat02
  • 企业电子发票申请流程2023版
  • sql查询结果分页
  • 请问在accessdemo1
  • 表单数据提交时会触发什么事件
  • 清算时存货是否要交税
  • 社保当月没扣
  • 企业所得税法允许按规定的比例在税前扣除的准备金
  • 固定资产的折旧账务处理
  • 端午节发放的现金福利会计处理
  • 会计工资标准
  • 如何调整利润分录
  • 公司配股对股价的影响
  • 递延所得税负债会计分录
  • 按季度报税怎么处理
  • 银行代发工资业务收费吗
  • 水电费收据能证明什么??
  • 负债表预付账款怎么填
  • 年末坏账准备计提余额减少说明什么
  • 营业税金及附加和税金及附加有什么区别
  • centos php apache
  • bois开启usb功能
  • 微软被告
  • win8蓝牙连不上
  • win8网络连接受限怎么处理
  • GhostXP_SP3活力版V3.0_系统之家首发
  • win10安全问题
  • javascript中匿名函数
  • extjs grid设置某列背景颜色和字体颜色的实现方法
  • 安卓匿名电话软件
  • input的file
  • javascript如何学
  • jquery多级菜单
  • 山东税务局电子税务局申报
  • 税务局税收分类编码
  • 台资企业有什么
  • 湖北安徽是一个地方吗
  • 北京市房山区限行范围
  • 烟草税多少比例
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设