前言:前一天写的一个ChatGPT服务端,貌似大家用起来还不是那么方便,所以我顺便用WPF和AspNetCore的webapi程序做个客户端吧,通过客户端来快速访问chatgpt模型生成对话。
 
1、新建一个WPF项目,用来做第一个客户端示例。
2、项目框架我这边选择的是.NET6,建议大家选择.NET CORE2.2或以上环境,不然ChatGPT的库会引用不成功。
 
3、引用下图这两个包,如图。第一个是用来提供依赖注入的核心组件,第二个是用来快捷访问OpenAI的我提前写好的一个通用客户端类库。
 
4、WPF项目做点小调整,在App.Xaml里面,把启动项干掉先。
 
5、App.xaml.cs里面,添加如下功能代码。因为通用库的方法实现使用了依赖注入的形式,所以此处就弄一个简单的注册方式来意思一下,就不搞别的IOC容器来做了,怎么简单怎么来。
核心的两个注册选项:HttpClient、IOpenAiServices接口以及实现
6、随便搞两个输入框和一个按钮,给俩输入框命个名,区分一哈,例如 Receive和Send。大家可以自己自定义,不用在意这些细节。
7、提供的客户端访问接口是异步的,建议也用异步的形式调用。在按钮事件里面进行实现,如图所示。其他备注可以直接看图文字描述。
8、运行程序,做个简单测试,例如写一个hello world。提供的答案是一个C程序代码的Hello world,看来访问是没得问题的,Bingo~
9、接下来,再做一个基于aspnetcore的webapi的客户端试试。新建一个webapi项目。
10、此处我也选择的是.NET 6框架版本。大佬们自己喜欢就行,版本不重要,.NET CORE2.2以及以上都可以用。
11、添加上面同款引用
12、添加注册。
13、对IOpenAiServices服务进行注入。简单起见,直接在默认的控制器里面注入吧。
14、改造一下默认的方法,看图即可。
中途插播我文章的原文链接,防止盗链。本文最初发表于:https://www.cnblogs.com/weskynet/p/16990125.html
如果其他地方看见该文章,作者不是Wesky或者WeskyNet,则大概率是盗版文章。
继续~继续~~~
15、启动程序,走一个。例如写一个Vue前端登录代码
 
16、大概可以看出内容,但是返回值直接看字符串是比较头大,刚好上面WPF有输入框,那就丢过去看看效果。
17、启动,瞅一眼效果,看起来好像还可以,基本上功能都涵盖到了。比自己撸,还是快很多的。
18、既然WPF的客户端都开了,那就顺便我也再问一下WPF的前端代码,并使用MVVM模式,看看排版怎么样。貌似也几乎写的不差,包括了Xaml代码和ViewModel代码
19、切换回webapi项目,CallGPT3参数如下所示,所以message参数后面也可以自定义为我们自己的个性化调参使用。
 
 例如,我要传一个自己的key来访问:
20、走一个,输入请求对话的内容,以及自己的key,走一个。内容和返回,自行看图~
 
21、以上就是本篇文章的全部内容,大佬们感兴趣,欢迎自己把玩一番。要是觉得对你有帮助,欢迎转发、评论、推荐点赞,谢谢各位大佬~
如果需要上面客户端源码,也可以在我的个人公众号【Dotnet Dancer】后台回复【聊天神器】即可获取。
 

使用WPF或AspNetCore创建简易版ChatGPT客户端,让ChatGPT成为你的私人助理的更多相关文章

  1. 依赖注入[5]: 创建一个简易版的DI框架[下篇]

    为了让读者朋友们能够对.NET Core DI框架的实现原理具有一个深刻而认识,我们采用与之类似的设计构架了一个名为Cat的DI框架.在<依赖注入[4]: 创建一个简易版的DI框架[上篇]> ...

  2. 依赖注入[4]: 创建一个简易版的DI框架[上篇]

    本系列文章旨在剖析.NET Core的依赖注入框架的实现原理,到目前为止我们通过三篇文章(<控制反转>.<基于IoC的设计模式>和< 依赖注入模式>)从纯理论的角度 ...

  3. .NET CORE学习笔记系列(2)——依赖注入[4]: 创建一个简易版的DI框架[上篇]

    原文https://www.cnblogs.com/artech/p/net-core-di-04.html 本系列文章旨在剖析.NET Core的依赖注入框架的实现原理,到目前为止我们通过三篇文章从 ...

  4. Android学习之路——简易版微信为例(一)

    这是“Android学习之路”系列文章的开篇,可能会让大家有些失望——这篇文章中我们不介绍简易版微信的实现(不过不是标题党哦,我会在后续博文中一步步实现这个应用程序的).这里主要是和广大园友们聊聊一个 ...

  5. C#调用OpenCV开发简易版美图工具

    前言 在C#调用OpenCV其实非常简单,因为C#中有很多OPenCV的开源类库. 本文主要介绍在WPF项目中使用OpenCVSharp3-AnyCPU开源类库处理图片,下面我们先来做开发前的准备工作 ...

  6. .NET Core的文件系统[5]:扩展文件系统构建一个简易版“云盘”

    FileProvider构建了一个抽象文件系统,作为它的两个具体实现,PhysicalFileProvider和EmbeddedFileProvider则分别为我们构建了一个物理文件系统和程序集内嵌文 ...

  7. MVC5+EF6 简易版CMS(非接口) 第三章:数据存储和业务处理

    目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...

  8. Android学习之路——简易版微信为例(三)

    最近好久没有更新博文,一则是因为公司最近比较忙,另外自己在Android学习过程和简易版微信的开发过程中碰到了一些绊脚石,所以最近一直在学习充电中.下面来列举一下自己所走过的弯路: (1)本来打算前端 ...

  9. Android学习之路——简易版微信为例(二)

    1 概述 从这篇博文开始,正式进入简易版微信的开发.深入学习前,想谈谈个人对Android程序开发一些理解,不一定正确,只是自己的一点想法.Android程序开发不像我们在大学时候写C控制台程序那样, ...

  10. WPF 自定义 MessageBox (相对完善版)

    WPF 自定义 MessageBox (相对完善版)     基于WPF的自定义 MessageBox. 众所周知WPF界面美观.大多数WPF元素都可以简单的修改其样式,从而达到程序的风格统一.可是当 ...

随机推荐

  1. 面试突击87:说一下 Spring 事务传播机制?

    Spring 事务传播机制是指,包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的. 既然是"事务传播",所以事务的数量应该在两个或两个以上,Spring 事务传播机制的 ...

  2. ImGUI 1.87 绘制D3D外部菜单

    ImGUI 它是与平台无关的C++轻量级跨平台图形界面库,没有任何第三方依赖,可以将ImGUI的源码直接加到项目中使用,该框架通常会配合特定的D3Dx9等图形开发工具包一起使用,ImGUI常用来实现进 ...

  3. Linux+Proton without Steam玩火影忍者究极风暴4指南

    首先你需要Proton7.0 without Steam,使用说明和下载链接看这里https://www.cnblogs.com/tubentubentu/p/16716612.html 启动游戏的命 ...

  4. 聊聊Vim的工作原理

    聊聊Vim的工作原理 日常里一直在用Vim这个编辑器,前阵子学习关于Linux中的fd(文件描述符)时,发现vim的进程描述符会比上一个自动加一,后续了解到vim的工作原理后,解开了这个疑问,所以记录 ...

  5. Seal-Report: 开放式数据库报表工具

    Seal Report是.Net的一个基于Apache 2.0 开源工具,完全用C# 语言编写,最新的6.6 版本采用.NET 6,github: https://github.com/ariacom ...

  6. 2022最新最详细必成功的在Vscode中设置背景图、同时解决不受支持的问题

    文章目录 1.效果展示 2.设置背景图的详细步骤 2.1 .下载background插件 2.2 .选择扩展设置 2.3 .在setting.json中编辑 2.4.对应的配置文件 2.5 .重启电脑 ...

  7. 最近无聊搭建一个齐博X1的下载页面

    https://layui.wanxiangsucai.com/ 用layui官方镜像站的模版 改了个齐博X1的下载页面 https://x1.wanxiangsucai.com/ 哈哈哈!!! 还有 ...

  8. DevOps|从特拉斯辞职风波到研发效能中的不靠谱人干的荒唐事

    今天发生了一件大事特拉斯辞任英国首相,我想借着这件事情说下我看到的一件研发效能的荒唐事,这其中的关联也许就是「都用了不靠谱的人」. 两件事情 今儿一早就听到,2022年10月20日英国第78任首相伊丽 ...

  9. 简读《ASP.NET Core技术内幕与项目实战》之3:配置

    特别说明:1.本系列内容主要基于杨中科老师的书籍<ASP.NET Core技术内幕与项目实战>及配套的B站视频视频教程,同时会增加极少部分的小知识点2.本系列教程主要目的是提炼知识点,追求 ...

  10. python批量依赖包操作

      1.导出所有的python依赖 pip freeze > requirements.txt #requirements.txt 为自定名称,可以指定路径 2.自动安装所有依赖包 pip in ...