For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
主导航

生产环境最佳实践

遵循最佳实践,将 AI 项目投入生产。

本指南提供一套全面的最佳实践,帮助您从原型阶段过渡到生产阶段。无论您是经验丰富的机器学习工程师,还是刚入门的爱好者,本指南都能为您提供所需的方法,帮助您在生产环境中有效使用平台:从保障 API 访问安全,到设计能够应对高流量的稳健架构。您可以参考本指南制定应用部署计划,让部署尽可能顺利、高效。

如果您想进一步了解投入生产的最佳实践,请观看我们的 Developer Day 演讲:

设置您的组织

登录 OpenAI 账户后,您可以在组织设置中找到组织名称和 ID。组织名称是显示在用户界面中的组织标签。组织 ID 是组织的唯一标识符,可用于 API 请求。

属于多个组织的用户可以传入请求头,指定 API 请求使用哪个组织。这些 API 请求的用量将计入指定组织的配额。如果未提供请求头,费用将计入默认组织。您可以在用户设置中更改默认组织。

您可以在团队页面邀请新成员加入组织。成员可以是 读取者所有者

读取者:

  • 可以发出 API 请求。
  • 可以查看组织的基本信息。
  • 除非另有说明,否则可以创建、更新和删除组织中的资源(如 Assistants)。

所有者:

  • 拥有读取者的所有权限。
  • 可以修改账单信息。
  • 可以管理组织内的成员。

管理计费限额

您输入账单信息后,OpenAI 会为您的组织设置核准的用量上限。随着您在平台上的用量增加,并从一个用量层级升至另一个层级,您的配额上限会自动提高。您可以在账户设置的限额页面查看当前的用量上限。

限额页面设置支出提醒,以便在使用费用超过某个美元金额时收到通知。要强制执行每月上限,请设置硬性支出限额。当追踪到的支出达到限额时,硬性支出限额会阻止其适用范围内的 API 流量,因此在生产环境中启用前,请先阅读支出限额指南

API 密钥

OpenAI API 使用 API 密钥进行身份验证。请访问您的 API 密钥页面,获取请求中要使用的 API 密钥。

这是一种相对简单的访问控制方式,但您必须谨慎保护这些密钥。避免在代码或公开代码仓库中暴露 API 密钥,应将其存储在安全的位置。您应通过环境变量或密钥管理服务向应用提供密钥,这样就不必将密钥硬编码到代码库中。详情请参阅我们的 API 密钥安全最佳实践

我们强烈建议您在创建项目 API 密钥时设置到期日期,并建立定期轮换密钥的流程。在密钥到期前,创建新密钥并更新应用,使其使用新密钥;确认新密钥正常工作后,再撤销旧密钥。

管理员可以在平台设置中,为组织或项目强制设置 API 密钥的最长有效期。新密钥的有效期不得超过配置的上限,以防止密钥无限期有效。项目的有效期上限不得超过组织的上限。

平台设置中的 API 密钥治理 部分允许组织和项目管理员限制可创建的 API 密钥类型。管理员可以仅允许创建服务账户密钥、仅允许创建归用户所有的项目密钥,或禁止创建任何新 API 密钥。组织级别的限制始终优先:项目设置可以增加限制,但不能放宽组织级别的限制。这些控制措施仅适用于新密钥的创建;现有 API 密钥不受影响。

启用追踪后,您可以在用量页面监控 API 密钥的使用情况。如果您使用的 API 密钥是在 2023 年 12 月 20 日之前生成的,则默认未启用追踪。您可以在 API 密钥管理控制台启用后续用量追踪。2023 年 12 月 20 日之后生成的所有 API 密钥均已启用追踪。此前未追踪的用量将在控制台中显示为 Untracked

预发布项目

随着规模扩大,您可能希望为预发布环境和生产环境分别创建项目。您可以在控制台中创建这些项目,将开发和测试工作隔离开来,避免意外干扰线上应用。您还可以限制用户对生产项目的访问,并为每个项目设置自定义速率限制和支出限额。

扩展解决方案架构

在设计使用我们 API 并将在生产环境中运行的应用或服务时,您需要考虑如何扩展以满足流量需求。无论选择哪家云服务提供商,都需要考虑以下几个关键方面:

  • 水平扩展:您可以考虑对应用进行水平扩展,以处理来自多个来源的请求。这可能需要部署更多服务器或容器来分担负载。如果选择这种扩展方式,请确保架构能够支持多个节点,并具备在节点之间平衡负载的机制。
  • 垂直扩展:另一种选择是对应用进行垂直扩展,也就是增加单个节点可用的资源。这需要提升服务器的处理能力,以应对额外负载。如果选择这种扩展方式,请确保应用的设计能够充分利用新增资源。
  • 缓存:存储经常访问的数据可以缩短响应时间,而无需反复调用我们的 API。您需要在应用设计中确保尽可能使用缓存数据,并在添加新信息时使缓存失效。例如,您可以根据应用的实际需要,将数据存储在数据库、文件系统或内存缓存中。
  • 负载均衡:最后,请考虑使用负载均衡技术,确保请求均匀分配到可用服务器上。这可以通过在服务器前部署负载均衡器或使用 DNS 轮询来实现。平衡负载有助于提升性能、减少瓶颈。

管理速率限制

使用我们的 API 时,务必了解速率限制并据此做好规划。

降低延迟

请查看我们最新的延迟 优化指南。

延迟是指处理请求并返回响应所需的时间。本节将介绍影响文本生成模型延迟的一些因素,并提供降低延迟的建议。

补全请求的延迟主要受两个因素影响:模型和生成的 Token 数量。补全请求的生命周期如下:

Network
End user to API latency
Server
Time to process prompt tokens
Server
Time to sample/generate tokens
Network
API to end user latency

大部分延迟通常来自 Token 生成步骤。

直观理解:提示中的 Token 给补全调用增加的延迟很小。生成补全 Token 所需的时间则长得多,因为 Token 是逐个生成的。生成内容越长,延迟就越高,因为生成每个 Token 所需的时间会逐步累积。

影响延迟的常见因素及可能的缓解方法

了解延迟的基本原理后,接下来看看影响延迟的各种因素,大致按影响从大到小排列。

模型

我们的 API 提供多种模型,其复杂程度和通用性各不相同。能力最强的模型(如 gpt-6-astra)可以生成更复杂、更多样的补全内容,但处理查询所需的时间也更长。 gpt-5.6-terragpt-5.6-luna 等模型可以更快、以更低成本生成 Responses;如果您希望模型在处理复杂任务时更游刃有余,gpt-6-astra 则是能力更强的默认选择。您可以根据使用场景,在速度、成本和质量之间权衡,选择最合适的模型。

补全 Token 数量

请求生成包含大量 Token 的补全内容可能会增加延迟:

  • 降低最大 Token 数量:对于生成 Token 数量相近的请求,max_tokens 参数值较低的请求延迟更小。
  • 添加停止序列:添加停止序列可以避免生成不必要的 Token。例如,您可以使用停止序列生成包含指定数量条目的列表。在这种情况下,将 11. 用作停止序列即可生成仅包含 10 个条目的列表,因为补全会在遇到 11. 时停止。请阅读我们关于停止序列的帮助文章,进一步了解具体做法。
  • 减少补全数量:尽可能降低 nbest_of 的值,其中 n 表示为每个提示生成的补全数量,best_of 用于选出每个 Token 对数概率最高的结果。

如果 nbest_of 都等于 1(默认值),则生成的 Token 数量最多为 max_tokens

如果 n(返回的补全数量)或 best_of(生成以供选择的补全数量)设置为 > 1,每个请求都会创建多个输出。此时,您可以将生成的 Token 数量视为 [ max_tokens * max (n, best_of) ]

流式传输

在请求中设置 stream: true 后,模型会在 Token 可用时立即开始返回,而不必等到整个 Token 序列生成完毕。这不会改变获取全部 Token 所需的时间,但对于需要展示部分进度或中途停止生成的应用,可以缩短首个 Token 的等待时间。这有助于改善用户体验,因此值得尝试流式传输。

批处理

视您的使用场景而定,批处理可能有所帮助。如果您向同一个端点发送多个请求,可以将提示合并为一批,在同一个请求中发送。这样可以减少需要发出的请求数量。prompt 参数最多可包含 20 个不同的提示。我们建议您测试这种方法,看看是否有效。在某些情况下,这可能反而增加生成的 Token 数量,延长响应时间。

管理成本

为监控成本,您可以在账户中设置通知阈值,以便在用量超过指定阈值时收到电子邮件提醒。使用用量追踪控制台,可以监控当前及以往计费周期内的 Token 用量。

文本生成

将原型投入生产时,一项挑战是为应用运行成本制定预算。OpenAI 采用按用量付费的定价模式,按每 1,000 个 Token(约相当于 750 个单词)计价。要估算成本,您需要预测 Token 用量,并考虑流量水平、用户与应用交互的频率,以及需要处理的数据量等因素。

思考如何降低成本时,一个实用的分析框架是将成本视为由 Token 数量和每个 Token 的成本共同决定。 按照这一框架,您可以从两个方面着手降低成本。首先,您可以在部分任务中改用更小的模型,降低每个 Token 的成本。另一种方式是减少所需的 Token 数量,例如使用更短的提示、微调模型,或缓存常见的用户查询,避免重复处理。

您可以试用我们的交互式 Token 化工具来帮助估算成本。API 和 Playground 也会在响应中返回 Token 数量。在使用我们能力最强的模型实现预期功能后,您可以尝试其他模型,看看能否以更低的延迟和成本获得相同的结果。详情请参阅我们的 Token 用量帮助文章

MLOps 策略

将原型投入生产时,您可以考虑制定 MLOps 策略。MLOps(机器学习运维)是指管理机器学习模型端到端生命周期的过程,也涵盖您可能使用我们的 API 进行微调的任何模型。制定 MLOps 策略时,请考虑以下方面:

  • 数据和模型管理:管理用于训练或微调模型的数据,并跟踪版本和变更。
  • 模型监控:持续跟踪模型的性能,检测任何潜在问题或性能下降。
  • 模型重新训练:确保模型能适应数据变化或不断演变的需求,并根据需要重新训练或微调模型。
  • 模型部署:自动将模型及相关产物部署到生产环境。

充分考虑应用的这些方面,有助于确保您的模型长期满足需求并保持良好性能。

安全与合规

将原型投入生产环境时,您需要评估并满足可能适用于您应用的各项安全与合规要求。这包括检查您处理的数据、了解我们的 API 如何处理数据,以及确定您必须遵守的法规。我们的安全实践信任与合规门户提供了最全面、最新的文档。您也可以参阅我们的隐私政策使用条款

您需要考虑的一些常见方面包括数据存储、数据传输和数据保留。您可能还需要采取数据隐私保护措施,例如在可行的情况下进行加密或匿名化处理。此外,您应遵循安全编码的最佳实践,例如清理输入和妥善处理错误。

安全最佳实践

使用我们的 API 构建应用时,请参考我们的安全最佳实践,确保您的应用安全并取得成功。这些建议强调了全面测试产品、主动解决潜在问题以及减少滥用机会的重要性。

业务考量

当 AI 项目从原型走向生产环境时,您需要考虑如何利用 AI 打造出色的产品,以及这与您的核心业务有何关联。我们当然无法解答所有问题,但您可以先观看我们在开发者日与部分客户深入探讨这一话题的演讲: