基于C#制作一个ChatGPT桌面助手

news2024/10/2 1:22:12

基于C#制作一个ChatGPT桌面助手,在工作或者学习时提升自己的效率,工欲善其事,必先利其器。

  • 一、前言
    • 1.1、什么是ChatGPT
    • 1.2、ChatGPT官网及key申请
  • 二、后台项目
    • 2.1、项目创建
    • 2.2、界面设置
    • 2.3、获取版本
    • 2.4、发送信息

一、前言

1.1、什么是ChatGPT

ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序 ,于2022年11月30日发布。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文 等任务。

1.2、ChatGPT官网及key申请

官网地址点此访问
注册的流程是免费的,网上也有很多注册的教程,这里不再一一赘述,当然也可以直接去购物平台购买;
注册并登录后,右上角点击Personal,在菜单中点击Create new sccret key进行创建key的操作,创建成功后将其复制保存。

在这里插入图片描述
在这里插入图片描述

二、后台项目

2.1、项目创建

打开Visual Studio,右侧选择创建新项目。

在这里插入图片描述

搜索框输入winform,选择windows窗体应用,填写对应的保存路径点击下一步,创建成功后如下图。

在这里插入图片描述
在这里插入图片描述

2.2、界面设置

在左侧工具箱分别拖拽出textBox、button、richTextBox等控件,用于接收用户输入的key和问题,同时将返回的数据进行渲染

在这里插入图片描述

2.3、获取版本

双击发送按钮,生成对应的点击事件,在里面获取用户输入的API Key以及你的魔法地址,因为你直接去调用它的这个接口是没用的,需要使用你指定的URL和回避设置初始化的新实例。

在这里插入图片描述

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3 | System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls;
 string proxyAddress = $"http://{proxyIP}:{proxyPort}";
 WebProxy proxy = new WebProxy(proxyAddress, true);
 WebRequest.DefaultWebProxy = proxy;
 string apiEndpoint = "https://api.openai.com/v1/models";
 var  request = WebRequest.Create(apiEndpoint);
 request.Method = "GET";
 request.ContentType = "application/json";
 request.Headers.Add("Authorization", "Bearer " + API);

 var response = request.GetResponse();
 StreamReader streamReader = new StreamReader(response.GetResponseStream());
 string sJson = streamReader.ReadToEnd();

2.4、发送信息

携带参数调用ChatGPT接口,同时将结果响应到界面上的richTextBox控件

在这里插入图片描述

var content = new StringContent(JsonConvert.SerializeObject(data));
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                var response = await client.PostAsync("https://api.openai.com/v1/chat/completions", content);
                using (Stream responseStream = await response.Content.ReadAsStreamAsync())
                {
                    using (StreamReader streamReader = new StreamReader(responseStream))
                    {
                        while (!streamReader.EndOfStream)
                        {
                            string message = await streamReader.ReadLineAsync();
                            JObject jsonObject = JObject.Parse(message);
                            string contentValue = jsonObject["choices"][0]["message"]["content"].ToString();
                            contentValue = string.Join(Environment.NewLine, contentValue.Split('\n'));
                            messageHistory.Add(contentValue);
                            return contentValue;
                        }
                    }
                }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/544776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习实战31-开发基于机器学习的在线图像识别工具

大家好,我是微学AI,今天给大家讲一下深度学习实战31-开发基于机器学习的在线图像识别工具,本文开发一个基于机器学习的在线图像识别工具,用户可以上传一张图片,并得到对应的标签或分类信息。该工具应该支持多种图像类型,例如自然风景、动物、物品等,并且在处理复杂图像时…

面向移动机器人的道路环境感知

分享嘉宾 | 范睿 文稿整理 | William 自动驾驶感知 首先,三维几何模型背后的机理是多视图几何学,多视图几何学是指想要得到对应模型的三维几何架构,则必须要用相机在两个不同的位置进行拍照。如图1,可以通过利用两个相机在不同位…

【HarmonyOS】【JS】小白的鸿蒙学习之路2--小小的图片啊,动呀动起来

【关键字】 image组件、动画 【介绍】 今天和大家分享下,我在官网上学习的一篇Codelab。这篇帖子通过一个代码示例,实现image组件的平移、缩放、旋转和透明度变化效果。话不多说,我们一起学起来吧! 【成果展示】 【开发步骤】 …

FE_VUE路由 细致解读router/index.js的配置

1 安装vue-router插件 安装vue-router,命令:npm i vue-router 【npm i vue-router3】,在main.js 中引入路由文件: import router from ./router, 注意router 不要变且为小写;注册路由(因为main…

商场室内地图导航如何实现?商场室内导航地图怎么做?

商场室内地图导航如何实现?现在,消费者的消费观念和消费心理日趋成熟,对于购物商场的要求也愈加挑剔。电子地图作为大家最喜闻乐见的高效应用形式,能够在顾客购物的过程中带来非常大的帮助和体验,对于在大型的综合商场…

抖音电商的新增量在哪里?

“抖音电商涨不动了,才提出做货架”,“抖音做不好货架”……去年,抖音电商提出做“全域兴趣电商”,当时业内外有鼓励,也有不看好的声音。一年过去,5月16日,抖音电商总裁魏雯雯回应了质疑&#x…

Python可视化工具分享

今天和大家分享几个实用的纯python构建可视化界面服务,比如日常写了脚本但是不希望给别人代码,可以利用这些包快速构建好看的界面作为服务提供他人使用。有关于库的最新更新时间和当前star数量。 1、 streamlit (23.3k Updated 2 hours ago) Streamlit…

看完这篇文章你就彻底懂啦{保姆级讲解}-----(I.MX6U驱动GPT定时器中断实现高精度延时) 2023.5.19

目录 前言整体文件结构源码分析(保姆级讲解)初始化延时函数部分:微秒(us)级延时部分毫秒(ms)级延时部分主函数main部分 编译下载结束语 前言 在上一讲过程中我们使用了EPIT定时器来实现了定时器中断,从而解决了按键消抖的问题。但…

ChatGPT与深度学习的完美融合:打造智能化推荐系统新时代

PNN | AutoRec | 推荐算法 NFM | ChatGPT | 深度学习 新技术如ChatGPT、LLM、AIGC等的兴起,使推荐系统拥有更强的学习和预测能力。然而,推荐算法仍然是深度学习推荐系统中不可或缺的关键技术。推荐算法和这些技术应相辅相成,相互补充。推荐…

五大向量数据库入门横评

本文内容节选自 Paxi.ai 文章分享,Paxi.ai是一个基于GPT-4打造的帮助用户快速使用AI的AI工具,对内容感兴趣的朋友可以上他们官网查看。 从OpenAI发布GPT以来,AI尤其以LLM为代表的项目发展迅速,相信大家已经了解到大语言模型的魅力…

apk 作为资源提供 aar 的过程

1:参考:Android将APK项目封装为SDK(AAR) https://blog.csdn.net/weixin_51522235/article/details/128216091 四大点:1: apply plugin:com.android.library 2:去掉:applicationId 3:去掉:applicationVariants.all…

MySQL:触发器、权限管理

一、学习目标 了解什么是触发器掌握创建触发器的方法掌握查看触发器的方法掌握触发器的使用技巧掌握删除触发器的方法熟练掌握使用触发器的方法和技巧了解什么是权限表掌握权限表的用法掌握账户管理的方法掌握权限管理的方法掌握访问控制的方法熟练掌握新建用户的方法和技巧了…

小程序加weui或者TDesign安装

WeUI样式库展示:https://weui.io/ 微信官方WeUI相关文档:https://wechat-miniprogram.github.io/weui/docs/ WeUI-wxss 项目地址:https://github.com/Tencent/weui-wxss 安装 ,1.先安装node.js 2.建立或者打开已经有的项目。…

【SolVES 模型】生态系统服务功能社会价值评估(基于多源环境QGIS、PostgreSQL、ArcGIS、Maxent、R语言)

SolVES模型(Social Values for Ecosystem Services)全称为生态系统服务社会价值模型,是由美国地质勘探局和美国科罗拉多州立大学联合开发的一款地理信息系统应用程序,开发该模型的目的主要是对生态系统服务功能中的社会价值进行空…

敏捷与瀑布:哪种项目管理方法适合你的企业?

​良好的项目管理可以改变企业的工作流,在减少混乱因素的同时注入方向和组织性。 同时,"项目管理 "对每个人来说并不意味着完全相同的事情。在企业及其客户中,最重要的两种项目管理方法是敏捷和瀑布。而这两种风格之间的差异很大&…

Redis是单线程还是多线程?揭开性能之谜!

大家好,我是小米,在这个充满技术乐趣的小天地里,今天我们来探讨一个备受争议的话题——Redis是单线程还是多线程?这个问题一直困扰着Redis的用户,让我们一起揭开性能之谜吧! Redis作为一款高性能键值存储系…

交换机故障恢复

通常情况下,可以为交换机设置enable密码来提供安全,在没有enable密码的情况下,无法对交换机修改任何配置,因此,在忘记enable密码的时候,就意味着无法改动交换机信息。但是,如果能够物理上接触到…

实施办公自动化系统需要注意什么?

办公自动化系统的好处很容易理解。几乎每个企业都会欢迎更高的准确性、效率和利润率。办公自动化这个过程似乎势不可挡,那么该如何实现和管理呢? 决定自动化的内容 在实施办公自动化系统之前,企业将需要花时间研究哪些具体的流程需要自动化…

Go语言核心编程-基本数据类型篇

第 3 章 Golang 变量 3.1 为什么需要变量 3.1.1一个程序就是一个世界 3.1.2变量是程序的基本组成单位 不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位,比如一个示意图: func getVal(numl int, num2 int) (int, int) {sum : num1 n…

【数字敏捷性】上海道宁与​SolarWinds为您提供全面的可观察性、IT 服务管理和数据库管理

SolarWinds Platform是 业界先进的统一监控 可观察性和服务管理平台 它是新一代SolarWinds 可观察性解决方案的基础 并提供了我们如何 为客户解决可观察性挑战的架构 网络管理工具 从配置和流量智能到 性能监控和拓扑映射 可以轻松查看、理解和解决问题 一种集成的多…