跳至内容

OpenAI

使用结构化提取从图像中提取元数据

像 gpt-4o 这样的多模态语言模型擅长处理多模态数据,使我们能够从图像中提取丰富、结构化的元数据。

这在时尚等领域尤其有价值,我们可以利用这些能力从图像甚至视频中了解用户的风格偏好。在这篇文章中,我们将介绍如何使用 instructor 将图像映射到给定的产品分类法,以便为用户推荐类似产品。

使用 GPT-4o 生成一致的故事

语言模型难以生成包含大量节点的一致图。通常情况下,这是因为图本身对于模型来说太大了,无法处理。这导致模型生成不一致的图,其中包含无效和断开的节点等问题。

在本文中,我们将通过一个生成“选择你自己的冒险”故事的简单示例,探讨如何使用两阶段方法利用 gpt-4o 生成复杂 DAG 来克服这一限制。

使用 GPT-4o 生成一致的故事

语言模型难以生成包含大量节点的一致图。通常情况下,这是因为图本身对于模型来说太大了,无法处理。这导致模型生成不一致的图,其中包含无效和断开的节点等问题。

在本文中,我们将通过一个生成“选择你自己的冒险”故事的简单示例,探讨如何使用两阶段方法利用 gpt-4o 生成复杂 DAG 来克服这一限制。

有了 Google 新的 OpenAI 集成,我还需要 Instructor 吗?

Google 最近为 Gemini 推出了 OpenAI 客户端兼容性。

虽然这通过简化 Gemini 模型交互为开发者迈出了重要一步,但你绝对仍然需要 instructor

如果你不熟悉 instructor,我们提供了一个简单的接口,可以从不同提供商的 LLM 中获取结构化输出。

这使得在不同提供商之间切换、从语言模型获取可靠输出以及最终构建生产级 LLM 应用变得容易。

OpenAI Chat Completions API 中的音频支持

OpenAI 最近在其 Chat Completions API 中引入了音频支持,为处理音频和文本交互的开发者开启了令人兴奋的新可能性。此功能由新的 gpt-4o-audio-preview 模型提供支持,该模型将先进的语音功能带入熟悉的 Chat Completions API 接口。

使用 Instructor 进行 OpenAI API 模型蒸馏

OpenAI 最近引入了一个名为 API 模型蒸馏 的新功能,该功能允许开发者创建针对其特定用例定制的自定义模型。此功能与 Instructor 的结构化输出能力结合时尤其强大。在本文中,我们将探讨如何利用 API 模型蒸馏和 Instructor 来创建更高效、更专业的模型。

我应该使用结构化输出吗?

OpenAI 最近宣布了结构化输出(Structured Outputs),该功能确保生成的响应与提供的任何任意 JSON Schema 匹配。在他们的公告文章中,他们承认其灵感来源于 instructor 等库。

主要挑战

如果你正在构建复杂的 LLM 工作流程,你可能已经考虑过将 OpenAI 的结构化输出作为 instructor 的潜在替代方案。

但在这样做之前,仍然存在三个主要挑战

  1. 有限的验证和重试逻辑:结构化输出确保符合 Schema,但不确保内容的有用性。你可能会得到格式完美但无用的响应
  2. 流式传输挑战:使用 SDK 从流式响应中解析原始 JSON 对象容易出错且效率低下
  3. 不可预测的延迟问题:结构化输出存在随机的延迟峰值,可能导致响应时间增加近 20 倍

此外,采用结构化输出会将你锁定在 OpenAI 的生态系统中,限制你尝试可能更适合特定用例的不同模型或提供商的能力。

这种供应商锁定增加了对提供商中断的脆弱性,可能导致应用停机和 SLA 违规,从而损害用户信任并影响你的商业声誉。

在本文中,我们将展示 instructor 如何通过验证失败时的自动重问、对验证后的流式数据的自动支持等功能来解决其中的许多挑战。

宣布 instructor=1.0.0

在过去的 10 个月里,我们遵循“易于尝试,易于删除”的原则构建了 instructor。我们通过使用 instructor 包修补 openai 客户端并添加诸如 response_modelmax_retriesvalidation_context 等新参数来实现这一目标。因此,我坚信 instructor 是从 LLM API 获取结构化数据的最佳方式

但结果是,我们在让类型检查良好工作的同时,给你更多开发时控制权方面遇到了一些困难。我很兴奋推出 1.0.0 版本,它在不牺牲易用性的前提下清理了与类型相关的 API。