2024年OpenAI DevDay发布实时 API、提示缓存等新功能
就在几天前,一些重要人物如前 CTO Mira Murati 离开了 OpenAI。因此,看到 Sam Altman 在 DevDay 上登台,讨论开发者的新产品,感觉有点奇怪。
随着公司内部的这些变化,你不禁会想:我们还应该信任他吗?
但这不是重点。让我们先把这些戏剧性事件放在一边,看看 Dev Day 的真正主题——OpenAI 刚刚为开发者宣布的新工具。
尽管领导层的变动令人担忧,但显然公司仍在向前推进。事实上,这次活动中有许多值得细细探讨的进展。
如果你错过了去年的 DevDay 2023,这里是自那时以来的一些最新进展:
-
从 GPT-4 到 4o mini,每个 token 的成本下降了 98%
-
系统中的 token 处理量增加了 50 倍
-
显著的模型智能进展
实时 API(Realtime API)
DevDay 2024 的亮点无疑是实时 API。
这个 API 使开发者能够在其应用程序中构建低延迟、多模态的对话功能,支持文本、音频以及函数调用。
以下是一个调用 API 的 javascript 示例代码。
const event = {type: 'conversation.item.create',item: {type: 'message',role: 'user',content: [{type: 'input_text',text: 'Hey, how are you doing?'}]}
};
ws.send(JSON.stringify(event));
ws.send(JSON.stringify({type: 'response.create'}));
那么,为什么开发者应该关心这个呢?
-
原生语音到语音: 不经过文本中介,意味着低延迟和更细腻的输出。
-
自然且可引导的语音: 模型具有自然的语调,能表现出笑声、低语等,并能遵循语气指引。
-
同时输出多模态: 文本对内容审核有用,而比实时更快的音频确保了稳定的播放。
现在,数千名开发者可以将这一功能集成到他们的应用中,开启了语音驱动应用的新潮流。
看看一些有机会提前体验实时 API 的开发者分享的产品示例:
“结果是,我们的学习者体验更加个性化和有帮助!今天,我们宣布推出 Live Roleplays,这是一种结合实时 API 和我们的学习引擎的新 Speak 体验,能够在各种角色扮演场景中提供沉浸式的口语练习。” —Andrew Hsu
以下是实时 API 的定价信息:
-
文本输入:每 100 万个 token 5 美元
-
文本输出:每 100 万个 token 20 美元
-
音频输入:每 100 万个 token 100 美元(约每分钟 0.06 美元)
-
音频输出:每 100 万个 token 200 美元(约每分钟 0.24 美元)
提示缓存(Prompt Caching)
接下来介绍的是提示缓存,这项功能显著减少了处理重复提示所需的成本和时间。
OpenAI 现在将把 API 请求路由到最近处理过相同或相似提示的服务器,这意味着你可以跳过重复的计算。对于处理长提示或复杂提示且经常重复使用的开发者来说,这项功能特别有用。
此功能可将长提示的延迟减少多达 80%,成本降低 50%。
提示缓存并不是一个全新的概念。事实上,Anthropic不久前推出了一个类似功能,允许开发者缓存经常使用的上下文,最多可减少 90% 的成本。
OpenAI 的提示缓存适用于以下模型:
-
gpt-4o
-
gpt-4o-mini
-
o1-preview
-
o1-mini
当你发出 API 请求时,流程如下:
-
缓存查找:系统检查你的提示的初始部分(前缀)是否已被缓存。
-
缓存命中:如果找到了匹配的前缀,系统将使用缓存结果。这显著减少了延迟并降低了成本。
-
缓存未命中:如果没有匹配的前缀,系统将处理你的完整提示。处理完成后,提示的前缀会被缓存以备将来使用。
这些缓存的前缀最多可以存储 10 分钟。但在非高峰期,缓存可能会持续长达一小时。
提示缓存的定价如下:
视觉微调(Vision Fine-Tuning)
DevDay 上另一个重要的新功能是视觉微调。
此功能允许用户在 JSONL 文件中使用图像和文本来微调模型。这为不仅依赖文本输入,还可以利用视觉数据训练模型提供了可能性。
以下是 JSONL 文件中一行图像消息的示例。为了方便阅读,JSON 对象已展开,但通常情况下该 JSON 会出现在数据文件的单行中:
{"messages": [{ "role": "system", "content": "You are an assistant that identifies uncommon cheeses." },{ "role": "user", "content": "What is this cheese?" },{ "role": "user", "content": [{"type": "image_url","image_url": {"url": "https://upload.wikimedia.org/wikipedia/commons/3/36/Danbo_Cheese.jpg"}}] },{ "role": "assistant", "content": "Danbo" }]
}
那么,这有什么用呢?
OpenAI 与Grab等领先科技公司合作,展示了视觉微调在现实应用中的强大功能。Grab 是一家主要的食品配送和网约车服务公司,使用此功能提升了其GrabMaps平台的性能。该平台依赖于从司机收集的街道级图像来支持东南亚的运营。
通过使用 100 个样例微调GPT-4o,Grab 提升了识别交通标志和车道分隔线的能力。
结果是车道计数准确性提高了 20%,速度限制标志定位精度提高了 13%,简化了其地图绘制流程,减少了人工干预的需求。
*注意:您的训练图像不得包含人物、面部、验证码或违反我们使用条款的图像。*包含这些图像的数据集将被自动拒绝。
关于定价问题,OpenAI 目前提供每天 100 万个训练 token 的免费额度,时间截止到 2024 年 10 月 31 日,以用于通过图像微调 GPT-4o。
2024 年 10 月 31 日之后,GPT-4o 微调训练的费用为每 100 万个 token 25 美元,推理费用为每 100 万个输入 token 3.75 美元,每 100 万个输出 token 15 美元。
图像输入首先根据图像大小进行 token 化,然后按照与文本输入相同的 token 费率定价。
谈谈安全问题
尽管这些新功能很酷,但它们确实带来了安全隐患,尤其是实时 API。
我们正接近一个假电话可能与真实电话难以区分的世界。想象一下,你接到了一个听起来完全像你的老板或家人的电话,结果却发现那是 AI 的冒充。
不难想象恶意分子如何滥用这项技术。
事实上,几天前,联邦通信委员会罚款一名政治顾问 600 万美元,原因是他今年早些时候使用 AI 模拟乔·拜登总统的声音进行自动电话。
为了避免滥用,OpenAI 的 API 不能直接拨打餐馆或商店的电话。然而,AI 没有公开声明自己不是人类,因此很难确定你是否在与 AI 对话。目前,似乎开发者有责任添加某种类型的声明。
OpenAI 尝试缓解这些风险。对于语音交互,OpenAI 使用了一种音频安全基础设施,已被证明在最小化潜在滥用方面非常有效,尤其是防止被用于欺骗性目的,如误导电话或声音操纵。
关于视觉微调,微调后的模型完全由用户控制,确保了商业数据的完全所有权。OpenAI 不会在未经明确许可的情况下使用任何用于微调的输入或输出来训练模型,确保数据保持私密和安全。
最终思考
今天宣布了很多内容,但让我印象最深刻的是实时 API。
本质上,这是 ChatGPT 高级语音模式的 API 版本,我预计在未来几周内会有数百款基于该语音 API 的应用程序出现。
据 OpenAI 称,目前已有超过 300 万开发者正在利用其技术构建新应用和功能。
这些新宣布的产品,尤其是实时语音 API,可能有助于扩大这一关键用户群体并增加 OpenAI 的收入。
目前尚不清楚这些 API 在现实应用中有多直观或多具成本效益。
我计划构建一些概念验证(PoC)应用程序来测试它们,并将在后续帖子中分享我的发现。在此之前,我很想听听你对今年 DevDay 的看法。
哪一项产品发布让你最兴奋?请在评论中告诉我!
相关文章:

2024年OpenAI DevDay发布实时 API、提示缓存等新功能
就在几天前,一些重要人物如前 CTO Mira Murati 离开了 OpenAI。因此,看到 Sam Altman 在 DevDay 上登台,讨论开发者的新产品,感觉有点奇怪。 随着公司内部的这些变化,你不禁会想:我们还应该信任他吗&#…...
Raspberry Pi3B+之安装bookworm+Rpanion系统
Raspberry Pi3B之安装bookwormRpanion系统 1. 源由2. 系统安装3. 系统安装3.1 烧录系统3.2 设备接线3.3 配置无线3.4 更新系统3.5 安装git3.6 克隆Rpanion3.7 安装Rpanion 4. 系统管理5. 附录问题1:error: externally-managed-environment问题2:bookworm…...

无人机专业除理论外,飞手执照、组装、调试实操技术详解
无人机专业的学习除了丰富的理论知识外,飞手执照的获取、无人机的组装与调试等实操技术也是至关重要的。以下是对这些方面的详细解析: 一、无人机飞手执照 1. 必要性 法规要求:根据《民用无人驾驶航空器系统驾驶员管理暂行规定》等相关法规…...

【网路通信基础与实践番外二】TCP协议的流量控制和拥塞控制以及二者区别和例题
TCP协议是端对端的协议,因此在数据进行传输的过程受发送方,数据通道,接收方三方状态的影响。我们用水龙头来比喻数据发送方,水管来比喻数据通道,水桶来表示数据接收方。 图(a)表示水桶太小,来不及接受注入…...

SpringBoot3+Vue3开发后台管理系统脚手架
后台管理系统脚手架 介绍 在快速迭代的软件开发世界里,时间就是生产力,效率决定成败。对于构建复杂而庞大的后台系统而言,一个高效、可定制的后台脚手架(Backend Scaffold)无疑是开发者的得力助手。 脚手架 后台脚…...

OpenFeign微服务部署
一.开启nacos 和redis 1.查看nacos和redis是否启动 docker ps2.查看是否安装nacos和redis docker ps -a3.启动nacos和redis docker start nacos docker start redis-6379 docker ps 二.使用SpringSession共享例子 这里的两个例子在我的一个博客有创建过程,…...

【C语言】数组(下)
【C语言】数组(下) 6、二维数组的创建6.1二维数组的概念6.2二维数组的创建 7、二维数组的初始化7.1不完全初始化7.2完全初始化7.3按照行初始化7.4初始化时可以省略行,但是不能省略列 8、二维数组的使用8.1 二维数组的下标8.2二维数组的输入和…...

cGANs with Projection Discriminator
基于映射鉴别器的CGAN 模型中,判别器(Discriminator)不是通过将条件信息简单地与特征向量拼接(concatenate)来使用条件信息,而是采用一种基于投影的方式,这种方式更加尊重条件信息在底层概率模…...
mysql学习教程,从入门到精通,SQL HAVING 子句(32)
1、SQL HAVING 子句 当然!HAVING 子句在 SQL 中用于对分组后的结果进行过滤。它通常与 GROUP BY 子句一起使用,以便对聚合函数(如 SUM(), COUNT(), AVG(), MAX(), MIN() 等)的结果进行条件筛选。 以下是一个示例,假设…...

JavaScript while循环语句
While语句包括一个循环条件和一段代码块,只要条件为真,就不断循环执行代码块。 while(条件){语句;} var i0;while(i<100){console.log(i);i1;} 注意:所有的for循环都可以改写为while循环...
49天精通Java(Day 2):Java的基本语法
上期内容回顾 在上一期的内容中,我们介绍了Java的基本概念、历史背景,并完成了JDK 1.8的安装与环境配置。你还编写并运行了第一个简单的Java程序“Hello, World!”。今天,我们将深入探讨Java的基本语法,包括变量、数据类型、运算…...
uni-app之旅-day01-home页
首页 3.0 创建 home 分支 🍕🍕🍕运行如下的命令,基于 master 分支在本地创建 home 子分支,用来开发和 home 首页相关的功能git branch(查看分支)git checkout -b home(创建home分支) 3.1 配置网络请求 ἲ…...
Vue3轻松实现导出Excel文件功能
文章目录 1.前言2.安装插件3.案例3.1 定义表格数据,设置 id 选择器3.2 据所选 dom 对象生成 sheetbook3.3 写入文件3.4 生成 xlsx文件4.完整代码1.前言 前端常用的导出 Excel的 js 库是 xlsx,但是 xlsx不能设置样式。要想设置样式,必要要结合 xlsx-style 插件一起使用,但是…...
在Kali Linux中使用VNC和iptables配置xrdp以实现远程连接
在Kali Linux中,使用VNC和iptables配置xrdp以实现远程连接涉及几个步骤。不过,值得注意的是,VNC和xrdp是两种不同的远程桌面协议,它们通常不会在同一配置中同时使用(除非有特殊的网络架构需求)。然而&#…...

小徐影院:Spring Boot技术下的影院革新
第四章 系统设计 4.1 系统的功能结构图 通过系统需求分析,本小徐影城管理系统的功能结构设计如图4-1所示: 图4-1 系统功能图 4.2 系统数据库设计 4.2.1 数据库E-R图 在该系统的信息中,由于数据库的支持,我们可以对数据库进行收集…...
命名空间
在 C 中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突,使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace 关键字的…...

使用 Elastic 将 AI 摘要添加到你的网站
作者:来自 Elastic Gustavo Llermaly 我们目前所知道的搜索(搜索栏、结果、过滤器、页面等)已经取得了长足的进步,并实现了多种不同的功能。当我们知道找到所需内容所需的关键字或知道哪些文档包含我们想要的信息时,尤…...

dOOv:Java 数据验证与映射库(简化业务逻辑)
dOOv 是一个为 Java 开发人员设计的轻量化库,专注于数据验证和对象间的映射。与传统的验证框架不同,dOOv 通过提供简洁、声明式的 API,使得开发者可以轻松地编写、扩展和维护验证和映射规则。其设计灵感源自领域驱动设计(DDD&…...

Arthas sc(查看JVM已加载的类信息 )
文章目录 二、命令列表2.2 class/classloader相关命令2.2.5 sc(查看JVM已加载的类信息 )举例1:模糊搜索,xx包下所有的类举例2:打印类的详细信息举例3:打印出类的Field信息 本人其他相关文章链接 二、命令列…...

OCR 行驶证识别 离线识别
目录 正页识别 副页识别 全部识别 OCR 行驶证识别 离线识别 正页识别 副页识别 全部识别...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...