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

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

  • 小米10青春版支持双卡双待吗(小米10青春版支持无线充电吗)

    小米10青春版支持双卡双待吗(小米10青春版支持无线充电吗)

  • 计算机存储容量的单位是(计算机存储容量最大的单位)

    计算机存储容量的单位是(计算机存储容量最大的单位)

  • svip恢复火苗会恢复天数吗(svip能恢复火花吗)

    svip恢复火苗会恢复天数吗(svip能恢复火花吗)

  • 多少分可以享受极速退款(多少分吧)

    多少分可以享受极速退款(多少分吧)

  • 微信怎么发满屏爱心(微信怎么发满屏下雨的爱心)

    微信怎么发满屏爱心(微信怎么发满屏下雨的爱心)

  • 尚未授权是什么意思(尚未授权怎么办)

    尚未授权是什么意思(尚未授权怎么办)

  • 微信怎么看红包发了多少(微信怎么看红包记录和转账记录)

    微信怎么看红包发了多少(微信怎么看红包记录和转账记录)

  • 苹果手机连接apple id服务器出错是什么意思(苹果手机连接apple ID服务器时出错)

    苹果手机连接apple id服务器出错是什么意思(苹果手机连接apple ID服务器时出错)

  • 固态硬盘格式化了还能恢复吗(固态硬盘格式化工具)

    固态硬盘格式化了还能恢复吗(固态硬盘格式化工具)

  • 一加怎么唤醒语音助手(一加如何唤醒语音助手)

    一加怎么唤醒语音助手(一加如何唤醒语音助手)

  • word2010工作界面由哪些部分组成(简要说明word2010的工作界面的组成)

    word2010工作界面由哪些部分组成(简要说明word2010的工作界面的组成)

  • 微信解封除了人脸识别还有其他方法吗(微信解封只能找一个人吗)

    微信解封除了人脸识别还有其他方法吗(微信解封只能找一个人吗)

  • 微信注册的腾讯会员怎么给别人用(微信注册的腾讯会员可以两个人用吗)

    微信注册的腾讯会员怎么给别人用(微信注册的腾讯会员可以两个人用吗)

  • iphonex网速变慢怎么回事(苹果x网速不稳定)

    iphonex网速变慢怎么回事(苹果x网速不稳定)

  • 苹果手机病毒怎么清理(苹果手机病毒怎么彻底清理)

    苹果手机病毒怎么清理(苹果手机病毒怎么彻底清理)

  • 手机wps文件保存在哪里(手机WPS文件保存到手机)

    手机wps文件保存在哪里(手机WPS文件保存到手机)

  • vivo手机怎么把文件移到sd(vivo手机怎么把里面的东西移到另手机里)

    vivo手机怎么把文件移到sd(vivo手机怎么把里面的东西移到另手机里)

  • vivo手机怎样下歌到mp3(vivo手机怎样下载电视剧)

    vivo手机怎样下歌到mp3(vivo手机怎样下载电视剧)

  • 华为p20原配充电器型号(华为p20手机充电器)

    华为p20原配充电器型号(华为p20手机充电器)

  • qq邮箱保存的照片在哪(qq邮箱保存的照片在哪里)

    qq邮箱保存的照片在哪(qq邮箱保存的照片在哪里)

  • 抖音怎么关闭评论(抖音怎么关闭评论仅自己可见)

    抖音怎么关闭评论(抖音怎么关闭评论仅自己可见)

  • word绘图工具在哪(word2007绘图工具)

    word绘图工具在哪(word2007绘图工具)

  • qq屏蔽对方还能收到消息吗(QQ屏蔽对方还能发消息吗)

    qq屏蔽对方还能收到消息吗(QQ屏蔽对方还能发消息吗)

  • win10怎么恢复被卸载的自带记事本? win10恢复自带应用的技巧(win10怎么恢复被系统删除的文件)

    win10怎么恢复被卸载的自带记事本? win10恢复自带应用的技巧(win10怎么恢复被系统删除的文件)

  • 选 择 器(选择器优先级)

    选 择 器(选择器优先级)

  • 非营利组织免税资格认定申请表
  • 现代服务印花税属于哪项
  • 简易计税方法能开专用发票吗
  • 销售原材料给供应商
  • 免税农产品发票开具时税率怎么选
  • 往来款项包括什么
  • 公司油票怎么抵扣
  • 工业企业总产值的计算是以什么为主体
  • 进销存明细账怎么填写
  • 订单式生产管理
  • 投资办厂协议
  • 盘盈固定资产冲销啥科目
  • 在途物资的入账价值
  • 公司员工出差补贴与差旅费报销制度
  • 小规模附加税减免政策2023
  • 收取客户税点怎么记账
  • 已认证的发票在哪里查
  • 2018新个税
  • 土地转让应交税费
  • 结转出租设备的会计分录
  • 电脑搜索功能不准确
  • 王者荣耀中白起的台词
  • 缴纳公积金个人没有扣款怎么回事
  • php sybase_fetch_array使用方法
  • 其他应收款未收回会计分录
  • php接口规则
  • php中implode
  • 刚收到的假发怎么处理
  • 设计费包含概算费用吗
  • codeigniter3中文手册
  • php随机ua
  • 利润表的营业收入是开票金额吗
  • 微信小程序自定义tabbar
  • seaborn库的特点
  • 嵌入式开关安装效果图
  • CSS渐变背景应用
  • css选择器详解
  • uniapp支付宝支付开发
  • xa 事务
  • mail命令发送邮件
  • 增值税普通发票查询
  • vue style import
  • 织梦内容页模板修改
  • 红字发票还要交税吗
  • 税务实名认证是法人还是办税人
  • 预收款增值税纳税时间
  • 企业缴纳个人所得税客户端
  • 股权激励具体解释是什么
  • 其他应付款长期挂账几年必须转收入
  • 经营租赁属于什么收入
  • 公司注销财务账本怎么处理
  • 购入自用的机器怎么入账
  • 不得从销项税额中抵扣的进项税额,不得计提加计抵减额
  • 应付款多付了怎么入账
  • 税控盘费用抵扣怎么申报什么表怎么说什么表怎么填报
  • 报销单粘贴单
  • 银行承兑汇票托收凭证
  • 指定为fvtpl
  • Xp系统的桌面文件在哪里
  • linux 使用
  • wps2019视频
  • win8右下角图标不见了
  • xp启动加速
  • winxp鼠标右键菜单栏怎么改
  • 我们如何成为专业人员
  • 近期win7蓝屏
  • win7系统如何给文件夹加密
  • gta4支持win10
  • 写出javascript的数据类型
  • javascript HTML5文件上传FileReader API
  • js中断点用法
  • unity用鼠标控制物体移动
  • nodejs.
  • python函数经典例程
  • install ubuntu kylin
  • android webapi调用
  • 增值税税控开票软件密码不知道了怎么办
  • 所得税季度预缴申报表怎样填写
  • 重庆市非住宅交易税费
  • 下载国税网上申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设