C#/.Net开发chatGPT、openAI

news/2024/4/24 13:23:41

C#/.Net开发chatGPT、openAI

最近ChatGPT火爆了,自己使用了一下,确实厉害。但是使用官方网站不支持国内访问,好在国内可以使用API调用,所以自己折腾一番,使用C#来调用API。

获取Token

注册账号获取api-keys等操作可以参考CharGPT介绍。本文不再赘述,如果嫌麻烦,直接淘宝上花几块钱买一个也可以,毕竟时间是宝贵的。

C#/.net调用接口

C#/.net 对接chatGPT非常简单,导入相关的依赖,然后构建OpenAiService实例,填写相关参数,就可以发送我们的问题,返回结果是问题答案。

API常用参数

设置项含义数据类型作用
model(必需)模型string要使用的模型ID,目前text-davinci-003是自然语言最强大的模型
prompt提示(问题)string/array你向API提供的提示,即你提出的问题
temperature创新采样float取值范围0-1,当设置为0时,对于相同的问题,模型始终返回相同或者相近的结果,设置1则与上次的回答更加不同。默认1
top_p情绪采样float默认1。替代temperature使用,考虑了模型质量,0.1为生成结果的质量为10%,建议使用1。
n结果数量int默认1。针对提示所生成结果的次数,会大量消耗令牌。
stream流式返回bool默认false。是否以流式返回部分进度,流完成后会发送终止消息data:[DONE]
echo显示提示bool默认false,在返回结果外,还显示用户给的问题
stop停止词string/array最多四个序列,返回的文本不包括停止序列
max_tokens最大令牌数int默认16,大多数模型支持最大为2048

注意:有一个限制是,对于大多数模型,单个API请求只能处理2048个tokens,大约1500个单词(一个token大约是4个字符或者),附上收费标准,大家在使用时注意余额情况,davinci模型收费还是不便宜。

官方参考文档

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hus7sJZm-1672977118125)(C#.Net开发chatGPT、openAI.assets/image-20230106104624033.png)]

使用示例

  1. 采用OpenAPI官网给出的nuget包Betalgo.OpenAI.GPT3

  2. const string OPENAPI_TOKEN = "sk-************************";//输入自己的api-key
    private async void Chat()
    {OpenAIService service = new OpenAIService(new OpenAiOptions() { ApiKey = OPENAPI_TOKEN});CompletionCreateRequest createRequest = new CompletionCreateRequest(){Prompt = "写一首关于工作的诗",Temperature = 0.3f,MaxTokens = 1000};var res = await service.Completions.CreateCompletion(createRequest,Models.TextDavinciV3);if (res.Successful){var ss= res.Choices.FirstOrDefault().Text;Console.WriteLine(ss);}}
    

可以看出写的还不错


https://www.xjx100.cn/news/344712.html

相关文章

v-for循环里面的点击事件控制div的显示与隐藏

1、在页面写好循环和点击事件&#xff08;点击事件带上参数index&#xff09; <template><div v-for"(item,index) in List" :key"index"><div click"change(index)">{{ item.name }}</div><div>{{ item.age }}&…

Java JDK 版本管理工具之Jabba JEnv使用

文章目录 Java JDK 版本管理工具JEnv介绍下载地址配置环境变量到Path上使用JEnv添加JDK查看已经添加的JDK切换JDK版本 Jabba前言安装Jabba常用命令查看服务器上可下载安装的Jdk版本添加本地jdk查询所有安装的JDK版本安装JDK安装 Oracle JDK安装 Oracle Server JRE安装 Adopt Op…

旋翼无人机常用仿真工具

四旋翼常用仿真工具 rviz&#xff1a; 简单的质点&#xff08;也可以加上动力学姿态&#xff09;&#xff0c;用urdf模型在rviz中显示无人机和飞行轨迹、地图等。配合ROS代码使用&#xff0c;轻量化适合多机。典型的比如浙大ego-planner的仿真&#xff1a; https://github.c…

shiro环境搭建

源码部署 这种方法相对复杂&#xff0c;如果不需要分析源码直接用docker就行 前置条件&#xff1a;Maven Ideal Tomcat 下载方式1&#xff1a;https://codeload.github.com/apache/shiro/zip/shiro-root-1.2.4&#xff0c;然后将文件夹导入ideal下载方式2&#xff1a;将shiro…

评奖系统设计

系列文章 任务40 评奖系统设计 文章目录 系列文章一、实践目的与要求1、目的2、要求 二、课题任务三、总体设计1.存储结构及数据类型定义2.程序结构3.所实现的功能函数4、程序流程图 四、小组成员及分工五、 测试执行完毕程序展示成功&#xff01;学生投票&#xff0c;举例第一…

分布式事务解决方案-Seata

分布式事务解决方案-Seata 1.分布式事务问题1.1.本地事务1.2.分布式事务1.3.演示分布式事务问题 2.理论基础2.1.CAP定理2.1.1.一致性2.1.2.可用性2.1.3.分区容错2.1.4.矛盾 2.2.BASE理论2.3.解决分布式事务的思路 3.初识Seata3.1.Seata的架构3.2.部署TC服务3.3.微服务集成Seata…

C++多态详解(虚函数重写、接口继承、虚函数表详解)

目录 1. 多态概念 2. 多态的定义及实现 2.1 多态的构成条件 2.2 虚函数重写 2.3 C11 override和final 2.4 重载、覆盖&#xff08;重写&#xff09;、隐藏&#xff08;重定义&#xff09;的对比 3. 抽象类 3.1 概念 3.2 接口继承和实现继承 4. 多态的原理 4.1 虚函数表 4.2…

编程练习【判断两个时间是否存在冲突】

给你两个字符串数组 event1 和 event2 &#xff0c;表示发生在同一天的两个闭区间时间段事件&#xff0c;其中&#xff1a; event1 [startTime1, endTime1] 且 event2 [startTime2, endTime2] 事件的时间为有效的 24 小时制且按 HH:MM 格式给出。 当两个事件存在某个非空的…