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 行驶证识别 离线识别 正页识别 副页识别 全部识别...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
