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

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

  • opporeno4电池容量多大(opporeno4电池容量多e)

    opporeno4电池容量多大(opporeno4电池容量多e)

  • 钉钉网课能投屏到电视吗(钉钉网课能投屏电视吗)

    钉钉网课能投屏到电视吗(钉钉网课能投屏电视吗)

  • 苹果12mini用的屏幕是什么材质的(苹果12mini屏幕好吗)

    苹果12mini用的屏幕是什么材质的(苹果12mini屏幕好吗)

  • 荣耀10x支持wifi6吗(荣耀10x支持多少瓦快充)

    荣耀10x支持wifi6吗(荣耀10x支持多少瓦快充)

  • 淘宝星级标准(淘宝星级标准怎么看)

    淘宝星级标准(淘宝星级标准怎么看)

  • 能用视频代替刷脸吗(可以刷视频的软件有哪些不赚钱)

    能用视频代替刷脸吗(可以刷视频的软件有哪些不赚钱)

  • 表格中字怎么竖着写(表格中字怎么竖着排)

    表格中字怎么竖着写(表格中字怎么竖着排)

  • vivox23充电需要多久(vivo手机x23充电)

    vivox23充电需要多久(vivo手机x23充电)

  • 电脑蓝屏后重启一直黑屏(电脑蓝屏后重启又正常是什么原因?)

    电脑蓝屏后重启一直黑屏(电脑蓝屏后重启又正常是什么原因?)

  • 小米手机保修期(小米手机保修期怎么查)

    小米手机保修期(小米手机保修期怎么查)

  • ipadmini5支持无线充电吗(ipadmini5可以插卡吗)

    ipadmini5支持无线充电吗(ipadmini5可以插卡吗)

  • 苹果手机显示gprs是什么意思(苹果手机显示gprs怎么解决)

    苹果手机显示gprs是什么意思(苹果手机显示gprs怎么解决)

  • 华为标准数据线一般多长(华为正常数据线是多少厘米)

    华为标准数据线一般多长(华为正常数据线是多少厘米)

  • ipad怎样释放空间(ipad怎么释放空间)

    ipad怎样释放空间(ipad怎么释放空间)

  • 百度地图如何截大图(百度地图如何截屏)

    百度地图如何截大图(百度地图如何截屏)

  • 照片怎么调大小kb(照片怎么调大小尺寸)

    照片怎么调大小kb(照片怎么调大小尺寸)

  • 小程序音频怎么下载(小程序音频怎么导出来手机)

    小程序音频怎么下载(小程序音频怎么导出来手机)

  • 群邀请链接多久失效(群邀请链接多久会过期?)

    群邀请链接多久失效(群邀请链接多久会过期?)

  • 如何移动ppt文字位置(如何移动ppt文字内容)

    如何移动ppt文字位置(如何移动ppt文字内容)

  • 小米手环怎么监控睡眠(小米手环怎么监测运动心率)

    小米手环怎么监控睡眠(小米手环怎么监测运动心率)

  • 怎么用抖音号查手机号(怎么用抖音号查找用户)

    怎么用抖音号查手机号(怎么用抖音号查找用户)

  • vivo手机里的照片怎么转移到U盘(vivo手机里的照片怎么传到华为手机里)

    vivo手机里的照片怎么转移到U盘(vivo手机里的照片怎么传到华为手机里)

  • x27pro和x27的区别(x27pro与x27区别)

    x27pro和x27的区别(x27pro与x27区别)

  • 苹果a1458是什么型号(苹果a1458是苹果几代)

    苹果a1458是什么型号(苹果a1458是苹果几代)

  • Python列表中有哪些索引(python中列表的作用)

    Python列表中有哪些索引(python中列表的作用)

  • 增值税核算办法
  • 避税岛是什么
  • 服务费的增值税怎么算
  • 展会补贴收入会计处理
  • 二房东开发票交多少税
  • 不能抵扣进项税额的发票类型
  • 公司买车计算方式
  • 入资款印花税怎么计算
  • 小规模印花税计税金额是什么
  • 通过应交税费核算的
  • 房地产公司的利润怎么分析
  • 商业保险费可以在个人所得税税前扣除吗
  • 计税依据的三种类型
  • 稿酬收入怎么算
  • 高管培训费不能税前列支
  • 出口货物免抵退税额城市维护建设税
  • 土地增值税四级税率表
  • 连年亏损的企业因为具有递延税金的优势
  • 车间管理人员工作总结
  • 发票总金额怎么算折扣
  • 销售额的意思
  • 一般纳税人简易计税会计分录
  • 市净率怎么计算举例说明
  • win10开机黑屏几秒
  • win10老是错误
  • 确定注册资本的方法
  • PHP:Memcached::isPersistent()的用法_Memcached类
  • 广告费用计入什么会计科目
  • php字段
  • 补充养老保险费扣除限额
  • 公司交社保需要承担多少费用
  • 关于政府的话
  • 进料加工贸易方式
  • 外贸企业出口退税流程(详细步骤)
  • html与js之间如何配合
  • yolo训练参数
  • 目标检测数据集
  • 你让他心动他让你心安
  • 汇算清缴后缴纳的企业所得税怎么做分录
  • 安装路灯会计分录
  • 购买项目用设备计入什么科目
  • 赡养老人专项附加扣除的标准
  • 用友怎么取消对账结果
  • 库存商品入库的会计分录怎么写
  • 异地预缴税款怎么抵扣
  • 白条抵库怎么处罚
  • 劳务派遣公司差额征税怎么做账
  • 实收资本挂在其他应收款现在股权转让
  • 环保局检查锅炉房都查什么
  • 工业企业固定资产折旧年限
  • mysql handshake
  • sql server数据库查询语句
  • windowsxp教程
  • 服务器centos版本选择
  • solaris安装软件
  • hprof-conv.exe
  • issch.exe
  • 常用宏操作的参数设置方法
  • ubuntu每次开机都会进入grub
  • os x yosemite dp5下载地址 os x 10.10 dp5更新内容
  • 在pc上安装了hp网络打印机需要注意什么
  • ubuntu和windows比较有什么好处
  • win8系统怎么设置自动关机
  • itunes清理iphone垃圾
  • win10系统误删文件怎么恢复
  • win7纯净版和正版区别
  • win10每周更新
  • win8怎么改系统
  • win10鼠标移动速度怎么设置
  • js修改css样式属性不生效
  • web标准化
  • javascript:openattachment
  • unity协程的工作原理
  • Unity3d HDR和Bloom效果(高动态范围图像和泛光)
  • python的例子
  • android数据存储与访问的方式有
  • 全国企业信用信息系统网官网
  • 水电费收税
  • 种花需要
  • 车位交易费用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设