由于定价和限制会随时间变化,本文仅供撰写当前时间参考。
1. 核心术语解析
在深入了解 OpenAI 和 Azure OpenAI API 之前,先掌握以下几个关键术语:
- RPM(requests per minute):每分钟请求次数
- RPD(requests per day):每天请求次数
- TPM(tokens per minute):每分钟 Token 数
- TPD(tokens per day):每天 Token 数
在 OpenAI 的 Tokenizer 上,可以根据文本查询对应的 Token 数。此外,text-embedding-ada-002
与 gpt-3.5
、gpt-4
的词表均为 cl100k_base
。如果仅需进行向量化操作,使用价格更低的 text-embedding-ada-002
是一个不错的选择。
2. OpenAI API 详解
OpenAI 会根据用户的消费情况动态调整配额。当消费超过 $5 后,配额会显著增加。以下是部分模型的定价和限流信息:
| 模型 | 输入成本(每 1k Token) | 输出成本(每 1k Token) | RPM | RPD | TPM |
|————————–|————————|————————|——|——|——|
| gpt-3.5-turbo-1106 | $0.0010 | $0.0020 | 3500 | 10000 | 60K |
| gpt-3.5-turbo-instruct | $0.0015 | $0.0020 | 3500 | 10000 | 60K |
| gpt-4 | $0.03 | $0.06 | 500 | 10000 | 10K |
| gpt-4-32k | $0.06 | $0.12 | 500 | 10000 | 10K |
更多定价和限流信息可参考 OpenAI 官方文档 和 限流指南。
3. Azure OpenAI API 详解
Azure OpenAI API 的价格和限制因区域而异。以 East US 2 为例,以下是部分模型的定价和限流信息:
| 模型 | 上下文长度 | 输入成本(每 1k Token) | 输出成本(每 1k Token) | TPM |
|————————–|————|————————|————————|——|
| GPT-3.5-Turbo | 4K | $0.0015 | $0.002 | 300K |
| GPT-3.5-Turbo | 16K | $0.003 | $0.004 | 300K |
| GPT-4 | 8K | $0.03 | $0.06 | 40K |
| GPT-4 | 32K | $0.06 | $0.12 | 80K |
更多限流信息可参考 Azure OpenAI 官方文档。
4. 调用 Azure OpenAI API 时可能遇到的问题
4.1 404 Resource Not Found
如果请求设置的 API 版本不正确,可能会返回 404 Resource Not Found 错误。目前可用的 API 版本包括:
- 2022-12-01
- 2023-03-15-preview
- 2023-05-15
- 2023-06-01-preview
- 2023-07-01-preview
- 2023-08-01-preview
- 2023-09-01-preview
4.2 Unsupported data type
Azure OpenAI API 的标准接口格式如下:
https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/completions?api-version={api-version}
如果使用了以下格式,URL 中多了一个 chat
,这种格式是不支持的,会返回 Unsupported data type 错误:
https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}
5. 被限制时如何优化
5.1 应用侧优化
- 在应用程序中增加重试逻辑
- 避免请求过于集中,将请求分散到多个时间段
5.2 部署侧优化
- 在 Azure 上部署多个模型
- 注册多个 OpenAI 账号
- 使用代理池,将请求分散到一批 API Key 上
6. 总结与建议
从账号获取角度来看,OpenAI 在国内有许多卖账号和代注册的服务,提供免费额度,超出部分需要国外信用卡消费;而 Azure OpenAI API 是按照消费使用国外信用卡后付费,开通 GPT-4 还需要单独申请。
从价格上看,OpenAI API 比 Azure OpenAI API 稍便宜。批量购买的 OpenAI 账户价格通常在 2 元以内,提供 $5 的三个月的使用额度,而 Azure 是按量计费的,这可能导致数十倍的价格差异。
从请求限制上看,免费的 OpenAI API 比 Azure OpenAI API 限制更多,必须构建 API 代理池才能发挥其优势。难点在于如何构建一个稳定的代理池,同时 OpenAI 会禁止单个 IP 使用过多的 SK。Azure OpenAI API 的配额限制较为宽松,还可以通过部署多个相同模型来提高配额。
从网络访问角度看,OpenAI 需要国际网络出口,这需要借助国外代理,可能存在一定的法律风险;而 Azure OpenAI 在国内可以直接访问,无需代理。
总体而言,生产环境建议使用 Azure OpenAI API,开发测试可以使用 OpenAI API。如果对实时性要求不高、允许反复尝试,且对成本极其敏感的场景,可以考虑使用 OpenAI API 构建代理池。