ChatGpt聊天API使用
昨天ChatGpt发布了聊天API,新增了两个模型,目前还是测试阶段
- gpt-3.5-turbo 功能强大的GPT-3.5模型,专门针对聊天做了优化
- gpt-3.5-turbo-0301 此模型只支持到今年6月份
所以我们直接是用gpt-3.5-turbo模型就行了,相对于之前的text-davinci-003模型,gpt-3.5-turbo模型使用成本降低了90%。我昨天第一时间调用API使用了,返回结果速度变快的,简单的问题3秒内就返回结果了,写文章的问答10多秒也能回复了,并且回复质量也比之前的text-davinci-003模型要好。
使用gpt-3.5-turbo聊天模型集成到应用程序中能做什么?有哪些使用场景
- 写文章
- 写代码
- 回答问题
- 聊天
- 翻译
- 模拟游戏中的角色,例如NPC
ChatGpt API早期用户
Snapchat
Snapchat的创始人推出了 My AI for Snapchat+,My AI 为 Snapchatter 提供了一个友好的、可自定义的聊天机器人,让他们触手可及,可以提供建议,甚至可以在几秒钟内为朋友写一句俳句。Snapchat 是日常交流和消息传递的场所,每月有 7.5 亿 Snapchatter。
Quizlet
Quizlet是一个全球学习平台,有超过 6000 万学生使用它来学习、练习和掌握他们正在学习的任何内容。Quizlet 在过去三年中一直与 OpenAI 合作,在多个用例中利用 GPT-3,包括词汇学习和练习测试。随着 ChatGPT API 的推出,Quizlet 推出了 Q-Chat,这是一种完全自适应的 AI 导师,可让学生根据通过有趣的聊天体验提供的相关学习材料提出自适应问题。
Instacart
Instacart正在增强 Instacart 应用程序,使客户能够询问食物并获得鼓舞人心的、可购买的答案。这使用 ChatGPT 以及 Instacart 自己的 AI 和来自其 75,000 多家零售合作伙伴商店位置的产品数据来帮助客户发现开放式购物目标的想法,例如“我如何制作美味的鱼炸玉米饼?” 或“对我的孩子来说,什么是健康的午餐?” Instacart 计划在今年晚些时候推出“Ask Instacart”。
Shop
Shop是 Shopify 的消费者应用程序,有 1 亿购物者使用它来寻找和购买他们喜爱的产品和品牌。ChatGPT API 用于为 Shop 的新购物助手提供动力。当购物者搜索商品时,导购会根据他们的需求进行个性化推荐。Shop 的新人工智能购物助手将通过扫描数百万种产品来简化应用程序内购物,以快速找到买家正在寻找的东西,或者帮助他们发现新东西。
Speak
Speak是一款人工智能语言学习应用程序,专注于打造流利口语的最佳途径。他们是韩国发展最快的英语应用程序,并且已经在使用 Whisper API 为新的 AI 语音配套产品提供支持,并迅速将其推向全球其他地区。Whisper 为各个级别的语言学习者提供了人类水平的准确性,解锁了真正的开放式会话练习和高度准确的反馈。
API使用
api使用跟之前差不多,调用起来很方便。申请api key什么的我就不说了,网上教程一大堆。
例如使用Java如何调用,用Idea新建一个maven项目,依赖hutool工具包。
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.10</version>
</dependency>
然后新建一个测试类,其实就是调用一下api,代码很少,就不一一解释了
public static void main(String[] args) {
String url="https://api.openai.com/v1/chat/completions";//api url
List<ChoiceMessage> list=new ArrayList<>();
list.add(new ChoiceMessage("user","你好"));//问题
GptTurbo gptTurbo=new GptTurbo();
gptTurbo.setModel("gpt-3.5-turbo");//模型
gptTurbo.setMessages(list);
gptTurbo.setUser("1");//用户标识
HttpResponse response = HttpRequest.post(url)
.headerMap(null, false)
.bearerAuth(Constants.TOKEN)//API Token,openai官方生成token
.body(JSON.toJSONString(gptTurbo))
.timeout(5 * 60 * 1000)
.execute();
String jsonResult=response.body();
System.out.println(jsonResult);
}
GptTurbo实体类:
@Data
public class GptTurbo {
private String model;
private List<ChoiceMessage> messages;
private String user;//用户id
}
ChoiceMessage实体类:
@Data
public class ChoiceMessage {
private String role;
private String content;
public ChoiceMessage() {
}
public ChoiceMessage(String role, String content) {
this.role = role;
this.content = content;
}
}
返回json结果:
{"id":"chatcmpl-6ps2CsxhVlF1HQkfOml9PQAyaK2qK","object":"chat.completion","created":1677820456,"model":"gpt-3.5-turbo-0301","usage":{"prompt_tokens":9,"completion_tokens":19,"total_tokens":28},"choices":[{"message":{"role":"assistant","content":"\n\n你好,有什么可以帮助您的吗?"},"finish_reason":"stop","index":0}]}
当然你也可以直接使用curl方式,打开终端输入,下面代码把YOUR_API_KEY替换成openai申请的key就行了:
curl https://api.openai.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello!"}]
}'
api的参数说明
- model 模型,模型列表
- messages 消息,这是一个数组,可以传多个消息,每个消息必须有一个角色,参考链接
- temperature 温度,控制结果的随机性,如果希望结果更有创意可以尝试 0.9,或者希望有固定结果可以尝试 0.0
- top_p 一种替代温度采样的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记的结果。所以 0.1意味着只考虑构成前 10% 概率质量的标记。我们通常建议改变这个或temperature但不是两者。
- n 默认为1,为每个输入消息生成多少个聊天完成选项。
- stream 如果设置,将发送部分消息增量,就像在 ChatGPT 中一样。当令牌可用时,令牌将作为纯数据服务器发送事件data: [DONE]发送,流由消息终止。
- stop API 将停止生成更多令牌的最多 4 个序列。
- max_tokens 生成的答案允许的最大标记数。默认情况下,模型可以返回的标记数为(4096 - 提示标记)。
- presence_penalty 惩罚 -2.0 和 2.0之间的数字。正值会根据到目前为止是否出现在文本中来惩罚新标记,从而增加模型谈论新主题的可能性。
- frequency_penalty 频率惩罚 -2.0 和 2.0之间的数字。正值会根据新标记在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性。
- logit_bias 地图 接受一个 json 对象,该对象将标记(由标记器中的标记 ID 指定)映射到从 -100 到 100 的关联偏差值。从数学上讲,偏差会在采样之前添加到模型生成的 logits 中。确切的效果因模型而异,但 -1 和 1 之间的值应该会减少或增加选择的可能性;像 -100 或 100 这样的值应该导致相关令牌的禁止或独占选择。
- user 用户的唯一标识符,可以帮助 OpenAI 监控和检测滥用行为
大部分参数都用不上,正常情况使用module、messages、user这三个参数就行了,我之前以为user是用来区分上下文的,后面发现为理解错了,user就是用来检测滥用行为,例如你被起诉了,可以通过user找到用户的记录,如果要区分上下文,那就messages传多个对象,但是这样的话产生的token就变多了,对上下文支持还不是很友好,期待chatgpt的继续更新。
参考官方链接:
ChatGPT和Whisper介绍: https://openai.com/blog/introducing-chatgpt-and-whisper-apis
聊天介绍:https://platform.openai.com/docs/guides/chat
聊天API调用:https://platform.openai.com/docs/guides/chat/introduction
Whisper
Whisper是我们于 2022 年 9 月开源的语音转文本模型,已获得开发者社区的极大赞誉,但也很难运行。我们现在已经通过我们的 API 提供了 large-v2 模型,它提供了方便的按需访问,价格为 0.006 美元/分钟。此外,与其他服务相比,我们高度优化的服务堆栈可确保更快的性能。
Whisper API 可通过我们的transcriptions(以源语言转录)或translations(转录成英文)端点使用,并接受多种格式(m4a、mp3、mp4、mpeg、mpga、wav、webm):
简单体验
如果您只是想体验一下,微信搜索小程序:「Ai聊天写作机器人」

ChatGpt聊天API使用的更多相关文章
- 我做了第一个ChatGPT .net api聊天库
最近这个ChatGPT很火啊,看了B站上很多视频,自己非常手痒,高低自己得整一个啊,但是让我很难受的是,翻遍了github前十页,竟然没有一个C#的ChatGPT项目,我好难受啊!那能怎么办?自己搞一 ...
- 图灵机器人聊天api
图灵机器人,功能非常强大,可用于聊天.查询等多个领域 图灵机器人官网:http://www.tuling123.com api地址:http://www.tuling123.com/openapi/a ...
- Gepetto:使用chatGPT来对函数功能进行分析并重命名变量的IDA插件
最近OpenAI的chatGPT很火,chatGPT是一个大型的语言模型,能够生成人类语言的文本,主要用于对话式的问答和聊天,以及模拟人类的对话行为 有关chatGPT的介绍就不多赘述了,相关内容很多 ...
- Restful API
http://www.ruanyifeng.com/blog/2011/09/restful 参考资料:-------以网络为基础的应用软件的架构设计. Restful API的设计与实践 字数218 ...
- Restful API的设计与实践
Restful这个名称应该很多人都不陌生,但是我发现不少人对Restful存在或多或少的理解偏差,其中不泛比较厉害的程序员,所以有必要为Restful来“正名”. Restful是一种软件架构风格,设 ...
- nodejs实现聊天机器人
技术栈 服务端: koa.koa-route.koa-websocket.request. 客户端: html.css.js.websocket. 远程聊天API: http://api.qingyu ...
- [奶奶看了都会]ChatGPT保姆级注册教程
大家好,我是小卷 最近几天OpenAI发布的ChatGPT聊天机器人火出天际了,连着上了各个平台的热搜榜.这个聊天机器人最大的特点是模仿人类说话风格同时回答大量问题. 有人说ChatGPT是真正的人工 ...
- ChatGPT能做什么?ChatGPT保姆级注册教程
最近 OpenAI 发布的 ChatGPT 聊天机器人很火,该聊天机器人可以在模仿人类说话风格的同时回答大量的问题. 在现实世界之中,例如数字营销.线上内容创作.回答客户服务查询,甚至可以用来帮助调试 ...
- ChatGPT开发实战
1.概述 前段时间使用体验了ChatGPT的用法,感受到ChatGPT的强大,通过搜索关键字或者输入自己的意图,能够快速得到自己想要的信息和结果.今天笔者将深挖一下ChatGPT,给大家介绍如何使用C ...
- ChatGPT保姆级注册教程
ChatGPT保姆级注册教程 最近几天OpenAI发布的ChatGPT聊天机器人火出天际了,连着上了各个平台的热搜榜.这个聊天机器人最大的特点是模仿人类说话风格同时回答大量问题. 有人说ChatGPT ...
随机推荐
- ORM常用字段与参数(自定义字段)
目录 一:orm中常用字段及参数 1.说明 2.自定义字段使用 3.ORM字段参数 一:orm中常用字段及参数 1.说明 id字段是自动添加的,如果你想要指定自定义主键,只需在其中一个字段中指定pri ...
- 【爬虫+数据分析+数据可视化】python数据分析全流程《2021胡润百富榜》榜单数据!
目录 一.爬虫 1.1 爬取目标 1.2 分析页面 1.3 爬虫代码 1.4 结果数据 二.数据分析 2.1 导入库 2.2 数据概况 2.3 可视化分析 2.3.1 财富分布 2.3.2 年龄分布 ...
- 分享一个自己在用的.net 中mysql事务控制类(支持多条sql,参数化,自定义判断条件,错误点返回等)
1)首先看下事务控制器. using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using Sys ...
- [随笔所想] UBC学习生活经验分享
当时受到了很多人的帮助,在网上也查到了很多经验帖子,比如如何办理签证,如何填写表格,要准备哪些材料以及生活上要带哪些物品,等等.当时就想到等我办理好这些,也一定和大家分享,为更多的人提供一些参考. 1 ...
- Python实现单项链表
单向链表 单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域.这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值. 表元素域ele ...
- 初学《python编程从入门到实践》web应用程序,出现错误
一开始是遇到了TemplateDoesNotExist的错误,上百度都是说改settings.py里面的TEMPLATE的DIRS, 但我改了还是出现问题, 我用的<python编程从入门到实践 ...
- python之路47 django路由层配置 虚拟环境
可视化界面之数据增删改查 针对数据对象主键字段的获取可以使用更加方便的obj.pk获取 在模型类中定义双下str方法可以在数据对象被执行打印操作的时候方便的查看 ''' form表单中能够触发提交动作 ...
- PowerUsageSummary.java源码分析
在在线网站http://androidxref.com/上对Android版本6.0.1_r10源码进行分析 官方手机的应用耗电排行具体实现位置在:/packages/apps/Settings/sr ...
- 轻松理解Promise.all 、Promise.then、Promise.race有什么区别以及使用方法
简单来说呢,Promse.all一般应用于某个场景需要多个接口数据合并起来才能实现 有个极大地好处我必须说一下,请求顺序和获取数据顺序是一样的哟,大可放心使用~~ const success1 = n ...
- 问题记录:VMware vSphere vCenter 7.0 上传文件失败
问题记录:VMware vSphere vCenter 7.0 上传文件失败 环境说明: VC版本:VMware vSphere vCenter 7.0 ESXi版本:VMware vSphere E ...