用winform开发ChatGPT对话应用

news/2025/3/3 20:19:14/

用winform开发ChatGPT对话应用

最近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。在这里哦,贴心吧!
在项目中安装OPENAI
把这个API安装到项目中后,接下来就是要看怎么用了?这是一个比较犯愁的地方,因为我没有在CSDN中找到可参考的;就只能找官方文档了,你知道的,凭我的英文水平,天然是对官方文档有有抵触情绪的;不过还好,内容不是很多,并且提供的用法和解释也十分清楚,这里我把官方文档的链接放在这里,方便兄弟们查看:openai说明文档
有了这些鸟语的支持,那进度就快很多了;首先是跑起来了,我用的这段代码:

var result = await api.Completions.GetCompletion("One Two Three One Two");

能跑,也能获取回应,但是内容不全,而且只有几个字,这显然不是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问答测试和翻译测试


http://www.ppmy.cn/news/949793.html

相关文章

搭建ChatGPT对话式小说

牙叔教程 简单易懂 你只需要写一个开头 剩下的交给ChatGPT 视频查看效果 两个ChatGPT互聊-写小说_哔哩哔哩_bilibili 这是一种ChatGPT的展现方式, 他把你主动问ChatGPT的这种方式, 改为了ChatGPT和ChatGPT聊天的方式 我们只需要写一个开头, 小说的后续部分, 完全都交给了Chat…

99%的人还不懂怎么和ChatGPT对话(30万字ChatGPT手册)

关注公众号&#xff1a;人工智能学派 关于chatGPT相关的问题&#xff0c;都可以找我答疑解惑&#xff0c;相互交流学习&#xff0c;有问必应&#xff01; 大家都知道ChatGPT是一个基于自然语言理解的模型&#xff0c;它总是试图根据对我们提出问题的理解来给出我们想听到的答…

教你快速导出 ChatGPT 对话数据!

距离 ChatGPT 上线已经过了半年&#xff0c;ChatGPT 已成为最有价值的工具&#xff0c;相信大家已经在使用 ChatGPT 高效地完成各项工作了。在 2023 年 4 月 25 日 OpenAI 开放了保存对话数据的功能&#xff0c;让我们在使用 ChatGPT 来进行创意写作或编码等工作时&#xff0c;…

ChatGPT对话聊天

工具说明 ChatGPT是人工智能技术驱动的自然语言处理工具&#xff0c;它能够通过理解和学习人类的语言来进行对话&#xff0c;还能根据聊天的上下文进行互动。 站内地址 本站提供ChatGPT聊天工具&#xff0c;能满足日常使用&#xff0c;但由于对接国外接口&#xff0c;中间经…

基于Chatbot UI 实现ChatGPT对话-V1.0

基于Chatbot UI 实现ChatGPT对话-V1.0 前端基于开源项目&#xff1a;chatbot-ui进行二次开发&#xff0c;感兴趣的小伙伴可以自行研究。 本项目搭建初衷&#xff1a;在无法科学上网的情况下&#xff0c;实现ChatGPT对话。还有规避官方聊天时&#xff0c;长时间无链接导致的问题…

chatgpt对话训练

ChatGPT&#xff0c;是一种基于预训练语言模型GPT的聊天机器人。在本教程中&#xff0c;我们将演示如何使用Python编写ChatGPT&#xff0c;并使用对话式数据集进行训练&#xff0c;使其能够回答一些简单的问题。 步骤 1: 安装必要的库 ChatGPT是基于PyTorch深度学习框架编写的…

4个公式8个案例学会与chatGPT对话

一、什么是Prompt? (1)Prompt的概念 我们在使用GPT的时候,给GPT发送的消息就是Prompt. 例如,当我们问ChatGPT"WPS是什么软件?"时: 其中,"WPS是什么软件?"这句话就是Prompt. (2)为什么要学习Prompt? Prompt是我们和GPT交流的方式,我们需要让GPT了解…

实训笔记7.19

实训笔记7.19 7.19一、座右铭二、Hadoop的HDFS分布式文件存储系统的相关原理性内容2.1 HDFS上传数据的流程2.2 HDFS下载数据的流程2.3 HDFS中NameNode和SecondaryNameNode工作机制&#xff08;涉及到HDFS的元数据管理操作&#xff09;2.4 HDFS中NameNode和DataNode的工作机制&a…