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

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

  • 微博要怎样做才能达到良好的营销效果(微博怎样做才能赚钱)

    微博要怎样做才能达到良好的营销效果(微博怎样做才能赚钱)

  • 支付宝邀请新人有礼在哪里(支付宝邀请新人领钱怎么弄)

    支付宝邀请新人有礼在哪里(支付宝邀请新人领钱怎么弄)

  • 支付宝怎么乘公交刷码(支付宝怎么乘公交车付费)

    支付宝怎么乘公交刷码(支付宝怎么乘公交车付费)

  • 锁屏后微信语音对方听不到(锁屏后微信语音没声音)

    锁屏后微信语音对方听不到(锁屏后微信语音没声音)

  • 怎么把qq空间的照片保存到电脑(怎么把qq空间的照片保存到百度网盘)

    怎么把qq空间的照片保存到电脑(怎么把qq空间的照片保存到百度网盘)

  • 苹果xs锁屏下怎么开手电筒(苹果xs锁屏怎么设置)

    苹果xs锁屏下怎么开手电筒(苹果xs锁屏怎么设置)

  • 静音模式怎么关(静音模式怎么关苹果手机)

    静音模式怎么关(静音模式怎么关苹果手机)

  • 华为mate30pro视频的时候可以美颜吗

    华为mate30pro视频的时候可以美颜吗

  • 微信公众号留言不显示(微信公众号留言在哪里找)

    微信公众号留言不显示(微信公众号留言在哪里找)

  • win10如何把c盘软件移到d盘(win10如何把c盘软件移到D盘)

    win10如何把c盘软件移到d盘(win10如何把c盘软件移到D盘)

  • ps复制选区快捷键是什么(Ps复制选区快捷键ctrl加什么)

    ps复制选区快捷键是什么(Ps复制选区快捷键ctrl加什么)

  • 支付宝不支持手机号码充值是怎么回事(支付宝不支持手机版本怎么办)

    支付宝不支持手机号码充值是怎么回事(支付宝不支持手机版本怎么办)

  • 钉钉里有游戏吗(钉钉里有游戏吗怎么删除)

    钉钉里有游戏吗(钉钉里有游戏吗怎么删除)

  • 保存到云端是什么意思(保存在云端的文件在哪里)

    保存到云端是什么意思(保存在云端的文件在哪里)

  • q9650配什么显卡好(q9650cpu配什么主板最好)

    q9650配什么显卡好(q9650cpu配什么主板最好)

  • 苹果xr静音模式怎么设置和取消(苹果xr静音模式闹钟会响吗)

    苹果xr静音模式怎么设置和取消(苹果xr静音模式闹钟会响吗)

  • 怎么修改网站内容(怎么修改网站内容刷新跳过)

    怎么修改网站内容(怎么修改网站内容刷新跳过)

  • 苹果手机没有id怎么激活(苹果手机没有id怎么办)

    苹果手机没有id怎么激活(苹果手机没有id怎么办)

  • 抖音怎么删除喜欢视频(抖音怎么删除喜欢的记录)

    抖音怎么删除喜欢视频(抖音怎么删除喜欢的记录)

  • 手机dlna怎么用(手机dlna在哪里)

    手机dlna怎么用(手机dlna在哪里)

  • 淘宝的会员表示在哪呢(淘宝会员的定义)

    淘宝的会员表示在哪呢(淘宝会员的定义)

  • 小米8无线网速度慢怎么办(小米无线网速慢)

    小米8无线网速度慢怎么办(小米无线网速慢)

  • 手机直播怎么放音乐(手机直播怎么放大画面)

    手机直播怎么放音乐(手机直播怎么放大画面)

  • 滴滴未成年人怎么打车(滴滴未成年乘车)

    滴滴未成年人怎么打车(滴滴未成年乘车)

  • imessag显示已送达没显示已读(imessag显示已送达 对方就是肯定开了嘛)

    imessag显示已送达没显示已读(imessag显示已送达 对方就是肯定开了嘛)

  • tiktok怎么下载(苹果tiktok怎么下载)

    tiktok怎么下载(苹果tiktok怎么下载)

  • s8听筒声音小解决方法

    s8听筒声音小解决方法

  • 企业所得税的纳税人发生年度亏损的时间
  • 发票上税额加不上怎么办
  • 年终奖计入工伤赔偿
  • 固定资产一次扣除政策执行到什么时候?
  • 金蝶kis旗舰版使用手册
  • 过次页的金额怎么来的
  • 利润分配包括缴纳所得税吗
  • 存货成本包括消费吗
  • 行政单位发过节费违法吗
  • 发票没认证可以作废吗?
  • 建筑行业开工程票,材料抵扣有没有比例
  • 收到美元货款兑换人民币流程
  • 印刷品生产需要生产许可证吗?
  • 企业给员工购买的团体意外险的被保险人一般是
  • 赔偿金要交增值税吗
  • 月工资和账户工资区别
  • 不抵扣的发票怎么导入做账系统
  • 小规模纳税人可以享受小微企业吗
  • 购买方已抵扣
  • 付工程款现金怎么做凭证?
  • 租用服务器会泄漏数据吗
  • 物业管理体现在哪些地方
  • 销售残次品怎么处罚
  • 销售推广的常用形式
  • 新版edge浏览器兼容模式怎么设置
  • 资产负债表期初和期末指的是什么
  • 赠与合同要公证吗有效吗
  • packethsvc.exe - packethsvc是什么进程 有什么用
  • Windows 11 Build 22000.176 (KB5006050) 更新推送(附更新内容+安装)
  • 建筑公司合作模式有哪几种
  • 使用linux命令
  • PHP:xml_parser_get_option()的用法_XML解析器函数
  • 股权转让分期付款协议
  • gcasInstallHelper.exe是什么进程 作用是什么 gcasInstallHelper进程查询
  • 企业自行搬迁需要交税吗
  • 多交税款的退还
  • framework3.5怎么打开
  • php内置数组
  • 框架如何使用
  • 常见浏览器兼容软件
  • vue3父子组件传递数组通信
  • javascript数据类型
  • yii2框架从入门到精通
  • 建筑行业工程结算属于什么科目
  • php连接mysql8.0
  • php添加背景怎么实现
  • 其他应收款的核算范围包括
  • 供货方代垫运费会计分录
  • 电脑自学网
  • 其他业务支出属于利润表项目吗
  • 周转材料属于什么
  • 交税交多了如何申请退税
  • 个体工商户的免税证明
  • 以前年度损益调整结转到哪里
  • 税控技术服务费会计分录
  • 确认应付职工薪酬是什么意思
  • 库存商品暂估入库科目怎么做
  • 出口退税进口退税吗
  • 营改增之前广告位出租
  • 税务入账的加油费怎么算
  • 一般纳税人拿到普票怎么处理账务
  • 城镇土地使用税减免税政策
  • sql解析框架
  • Mysql使用or如何优化
  • windows自带截图软件
  • XP系统电脑开机密码忘了
  • mac蓝牙怎么连接耳机
  • 一键u盘装系统软件哪个好
  • hl.exe是什么
  • gamebar.exe是什么进程
  • linux中mail命令
  • centos运行程序
  • nodejs支付宝支付
  • bat 批处理文件
  • 百分比的介绍
  • c#中抽象类的定义
  • bootstrap基础教程
  • Unity KillCount
  • 深圳如何打印个人参保证明
  • 对税务总局党组织的评价
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设