昨天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使用的更多相关文章

  1. 我做了第一个ChatGPT .net api聊天库

    最近这个ChatGPT很火啊,看了B站上很多视频,自己非常手痒,高低自己得整一个啊,但是让我很难受的是,翻遍了github前十页,竟然没有一个C#的ChatGPT项目,我好难受啊!那能怎么办?自己搞一 ...

  2. 图灵机器人聊天api

    图灵机器人,功能非常强大,可用于聊天.查询等多个领域 图灵机器人官网:http://www.tuling123.com api地址:http://www.tuling123.com/openapi/a ...

  3. Gepetto:使用chatGPT来对函数功能进行分析并重命名变量的IDA插件

    最近OpenAI的chatGPT很火,chatGPT是一个大型的语言模型,能够生成人类语言的文本,主要用于对话式的问答和聊天,以及模拟人类的对话行为 有关chatGPT的介绍就不多赘述了,相关内容很多 ...

  4. Restful API

    http://www.ruanyifeng.com/blog/2011/09/restful 参考资料:-------以网络为基础的应用软件的架构设计. Restful API的设计与实践 字数218 ...

  5. Restful API的设计与实践

    Restful这个名称应该很多人都不陌生,但是我发现不少人对Restful存在或多或少的理解偏差,其中不泛比较厉害的程序员,所以有必要为Restful来“正名”. Restful是一种软件架构风格,设 ...

  6. nodejs实现聊天机器人

    技术栈 服务端: koa.koa-route.koa-websocket.request. 客户端: html.css.js.websocket. 远程聊天API: http://api.qingyu ...

  7. [奶奶看了都会]ChatGPT保姆级注册教程

    大家好,我是小卷 最近几天OpenAI发布的ChatGPT聊天机器人火出天际了,连着上了各个平台的热搜榜.这个聊天机器人最大的特点是模仿人类说话风格同时回答大量问题. 有人说ChatGPT是真正的人工 ...

  8. ChatGPT能做什么?ChatGPT保姆级注册教程

    最近 OpenAI 发布的 ChatGPT 聊天机器人很火,该聊天机器人可以在模仿人类说话风格的同时回答大量的问题. 在现实世界之中,例如数字营销.线上内容创作.回答客户服务查询,甚至可以用来帮助调试 ...

  9. ChatGPT开发实战

    1.概述 前段时间使用体验了ChatGPT的用法,感受到ChatGPT的强大,通过搜索关键字或者输入自己的意图,能够快速得到自己想要的信息和结果.今天笔者将深挖一下ChatGPT,给大家介绍如何使用C ...

  10. ChatGPT保姆级注册教程

    ChatGPT保姆级注册教程 最近几天OpenAI发布的ChatGPT聊天机器人火出天际了,连着上了各个平台的热搜榜.这个聊天机器人最大的特点是模仿人类说话风格同时回答大量问题. 有人说ChatGPT ...

随机推荐

  1. 云数据库FinOps实战复盘

    历时三个多月的HBase成本优化项目按照预期交付了,HBase云数据库月度成本下降了32.5%,超出预期达成目标. 我们对本次HBase成本优化项目进行深度复盘,并进一步尝试总结云数据库的FinOps ...

  2. linux基础第二部分

    一.Linux命令执行过程 先判断是否是别名,如果是直接执行,不是看是否是内部命令 如果是内部命令,直接执行,不是看hash表 hash表中有源文件直接执行,找不到报错 若hash表中不存在去外部规定 ...

  3. jQuery类库

    jQuery介绍 1. jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行A ...

  4. python中使用pip 安装第三方库报错归类及解决方式

    1.  离线安装virtualenv报错,安装命令:python setup.py install 解决方式:升级setuptools 2.  安装第三方库时安装失败,安装命令:pip install ...

  5. Less-1(GET字符型)

    union联合注入(方法一) 进入靶场 按照要求提交一个id:http://192.168.121.131/sqli/Less-1/?id=1 数据库执行语句:select * from news w ...

  6. SQLSERVER 的主键索引真的是物理有序吗?

    一:背景 1. 讲故事 最近在看 SQL SERVER 2008 查询性能优化,书中说当一个表创建了聚集索引,那么表中的行会按照主键索引的顺序物理排列,这里有一个关键词叫:物理排列,如果不了解底层原理 ...

  7. 升级csproj文件为vs2017工程格式(SDK样式)

    csproj文件在VS2017后格式变更为SDK样式.framework项目如果需要源链接等等功能,需要进行手动升级. 升级过程 升级需要Project2015To2017Nuget包. > d ...

  8. python之路28 网络编程基础之OSI七层协议模型

    OSI七层协议 """ 七层模型,亦称OSI(Open System Interconnection).参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间 ...

  9. P1005 [NOIP2007 提高组] 矩阵取数游戏

    题目传送门 前言 今天依旧是不写高精的一天呢!(是的,这位作者又只拿了开 \(LL\) 的 \(\color{yellow}{60}\) 分) 思路描述 看到数据 \(n,m \le 80(30)\) ...

  10. SpringBoot 项目中配置多个 Jackson 的 ObjectMapper ,以及配置遇到的坑

    目录 问题说明 原因排查分析 结论总结 Jackson 自动装配分析 问题说明 我们都知道,SpringBoot 项目中,如果引入了 Jackson 的包,哪怕不配置,SpringBoot 也会帮我们 ...