昨天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. Jmeter 之 switch 控制器

    switch 控制器作用: switch 控制器起到了分流作用,具体应用在并发时,一部分用户执行某个场景,一部分用户执行另外一种场景,就像吞吐量控制器进行分流操作 switch 控制器字段介绍: 实例 ...

  2. python 之匿名函数(lambda)

    什么是匿名函数?匿名函数就是不用def关键字,使用lambda关键字定义的一个函数.匿名函数简约而不简单. 匿名函数的格式: lambda[ paramters1, paramters2 , .... ...

  3. [编程基础] C++多线程入门7-条件变量介绍

    原始C++标准仅支持单线程编程.新的C++标准(称为C++11或C++0x)于2011年发布.在C++11中,引入了新的线程库.因此运行本文程序需要C++至少符合C++11标准. 文章目录 7 条件变 ...

  4. [深度学习] ncnn编译使用

    文章目录 工程 ncnn工程编译使用(cpu) ncnn工程编译使用(vulkan) 参考 工程 ncnn工程编译使用(cpu) 在linux下建立如CMakeLists文件即可编译生成ncnn工程 ...

  5. pnpm配置

    之前通过 nvm 来管理了 nodejs 版本,结果安装 pnpm 之后,安装全局依赖报错,如下: PS C:\Users\Administrator> pnpm i -g commitizen ...

  6. python之路53 ajax补充返回序列化数据,多对多创建三种方式,django内置序列化组件(drf前身),批量操作数据,自定义分页器,form组件

    ajax补充说明 主要是针对回调函数args接收到的响应数据 1.后端request.is_ajax() 用于判断当前请求是否由ajax发出 2.后端返回的三板斧都会被args接收不再影响整个浏览器页 ...

  7. 算法学习笔记(5): 最近公共祖先(LCA)

    最近公共祖先(LCA) 目录 最近公共祖先(LCA) 定义 求法 方法一:树上倍增 朴素算法 复杂度分析 方法二:dfs序与ST表 初始化与查询 复杂度分析 方法三:树链剖分 DFS序 性质 重链 重 ...

  8. 网络流棋盘模型 | P3355 骑士共存问题 P4304 [TJOI2013]攻击装置

    题面(骑士共存问题) 在一个 \(n \times n\) 个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示.棋盘上某些方格设置了障碍,骑士不得进入. 对于给定的 \(n \times n ...

  9. 一文详解如何在基于webpack5的react项目中使用svg

    本文主要讨论基于webpack5+TypeScript的React项目(cra.craco底层本质都是使用webpack,所以同理)在2023年的今天是如何在项目中使用svg资源的. 首先,假定您已经 ...

  10. DJI Flight Simulator 无人机模拟器 功能介绍与使用说明

    0 前言 无人机是当前非常火热的"相机设备",而大疆又是其中翘楚,功能丰富,可以说是一个将带着云台的智能手机放到了天空中.如果你有自己玩过旋翼无人机航模的话,可能会体会到大疆的另一 ...