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 ...
随机推荐
- MySQL数据结构(索引)
目录 一:MySQL索引与慢查询优化 1.什么是索引? 2.索引类型分类介绍 3.不同的存储引擎支持的索引类型也不一样 二:索引的数据结构 1.二叉树(每个节点只能分两个叉) 2.数据结构(B树) 3 ...
- 过滤器 Filter 与 拦截器 Interceptor 的区别
引言 说起 Filter 与 Interceptor 的区别,相信很多同学第一感觉就是容易.简单! 毕竟开发中这两个组件使用频率较高,用法也较简单.然后真回答起来有答不出个所以然来,场面尴尬,老丢脸了 ...
- 学习.NET MAUI Blazor(二)、MAUI是个啥
随着.NET 7的发布,MAUI也正式发布了.那么MAUI是个啥?我们先来看看官方解释: .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移 ...
- 后疫情办公时代——你需要的多人同步协同编辑Demo(可粘贴可撤销)
新冠病毒的疫情使得在线办公成为了一个常态,这使得在线文档成为了时下的热点.其中在线协同表格是在线文档的重要一个组成部分,纯前端表格在在线协同表格上有着得天独厚的优势:本身已经实现了单人操作在线文档的基 ...
- cookie设置失败
有个小项目,本地测试一帆风顺,昨天发布到云服务器后就出问题了 Java端设置的Cookie,浏览器访问不到 1-2022-2-11 设置cookie代码如下 /** * 添加Cookie * @par ...
- 安装pytorch-gpu的经验与教训
首先说明 本文并不是安装教程,网上有很多,这里只是自己遇到的一些问题 我是以前安装的tensorflow-gpu的,但是发现现在的学术论文大部分都是用pytorch复现的,因此才去安装的pytorch ...
- 常见非指纹built-in函数
unescape unescape() _函数_可对通过 escape() 编码的字符串进行解码. unescape("abcdefg") 'abcdefg' unescape(& ...
- Unity3D——鼠标双击
Unity之鼠标双击 小黑终于又回到公司了! 能在公司安生的待段时间了,今天更新一篇吧! 懒惰的小黑给大家分享个好东西吧,解决双击之痛! 前言 小黑相信有许多人和我一样.万年不会碰到一个需求:双击!可 ...
- 操作系统linux
Linux命令概览 一.哪些地方可以学到Linux? 1.Linux中国 Linux中国绝对是学习Linux的好去处,各种资讯.文章.技术都有,而且更新及时,质量也很高,学Linux一定要去看啊. 2 ...
- 微机原理与系统设计笔记3 | 8086cpu指令系统
打算整理汇编语言与接口微机这方面的学习记录.本部分介绍8086的指令系统(一些与程序设计密切相关的如子程序调用指令放在下一部分). 参考资料 西电<微机原理与系统设计>周佳社 西交< ...