如何在 Python 中使用 ChatGPT API?2025 年 1 月 5 日 | 阅读 9 分钟 要在 Python 中使用 ChatGPT API,您需要向 API 端点发出 POST 请求。以下是执行此操作的方法:
以下是一个演示如何执行此操作的 Python 脚本示例: Python 示例输入 示例输出 Bonjour, comment vas-tu ? 请注意,您需要将 `YOUR_API_KEY` 替换为您的实际 API 密钥。 另外,请注意,数据中的 `max_tokens` 参数指定了应生成的最大 token 数。您可以根据需要调整此值。 我提供的示例 Python 脚本演示了如何使用 OpenAI ChatGPT API 基于给定的输入提示生成文本。以下是脚本工作原理的分步说明:
以下是关于脚本各个组件及其工作原理的更多信息:
错误处理最好为您的脚本添加错误处理,以防 API 请求失败。您可以检查响应的状态代码来确定请求是否成功。例如,您可以添加一个 `if` 语句来检查响应状态代码是否为 `200`,这表示请求成功。如果状态代码不是 `200`,您可以引发异常或向控制台打印错误消息。 Python 示例输入 示例输出 Comment te sens-tu aujourd'hui ? 处理较长的提示如果您的输入提示非常长,可能会超过模型的最大 token 限制,对于 `davinci-codex` 引擎来说,这个限制是 4096 个 token。在这种情况下,您可能需要截断或以其他方式缩短提示,使其符合 token 限制。 价格请记住,OpenAI API 是一项付费服务,使用 API 的成本取决于 API 处理的 token 数。每个 API 请求都会消耗一定数量的 token,这取决于输入提示中的 token 数和生成文本中的 token 数。请务必查阅 OpenAI 定价文档以获取有关使用 API 成本的更多信息。 模型选择示例脚本使用 `davinci-codex` 引擎,这是一个强大而通用的模型。但是,OpenAI 提供了许多其他模型,您可以根据您的具体需求进行选择。您可以尝试不同的模型,看看哪种模型最适合您的用例。 处理长响应如果生成的文本过长,并且超出了模型的最大 token 限制,您可以截断或以其他方式缩短文本以使其符合限制。您也可以尝试减小 API 请求中的 `max_tokens` 参数来限制生成文本的长度。 温度和 Top P`temperature` 和 `top_p` 参数可用于控制生成文本的随机性。`temperature` 参数控制随机性的程度,值越高,文本越随机,值越低,文本越确定。`top_p` 参数控制采样 token 时要考虑的概率质量的比例,值越高,考虑的 token 越多,值越低,考虑的 token 越少。您可以尝试这些参数的不同值,看看它们如何影响生成的文本。 Python 系统消息您可以在提示中包含系统消息,为模型提供额外的上下文或说明。例如,您可以包含一个指定生成文本所需格式的系统消息,或为模型提供其他说明。系统消息应放在提示的开头,后面跟着用户消息。 Python 对话上下文如果您正在构建一个会话式应用程序,可以在提示中包含会话历史记录,为生成的文本提供上下文。会话历史记录应同时包含用户消息和模型响应,每条消息之间用换行符分隔。这将有助于模型生成更连贯且与上下文相关的响应。 Python 速率限制请记住,OpenAI API 有速率限制,限制您在给定时间段内可以发出的请求数量。速率限制取决于您的订阅计划。如果您超过速率限制,您可能会收到 `429 Too Many Requests` 错误。您可以通过在脚本中添加延迟或重试机制来处理速率限制错误。 请求超时您可以通过向 `requests.post()` 函数添加 `timeout` 参数来为 API 请求指定超时。timeout 参数指定请求在引发超时错误之前等待响应的最大秒数。例如,您可以将超时设置为 10 秒,如下所示: Python 输入和输出编码OpenAI API 期望输入数据为 JSON 格式,输出数据也为 JSON 格式。在将数据发送到 API 时,您应该使用 `requests.post()` 函数的 `json` 参数将数据转换为 JSON 格式。在从 API 接收数据时,您应该使用 `response.json()` 方法解析 JSON 响应。 处理特殊字符如果您的输入提示包含特殊字符,例如引号或换行符,您应该在提示字符串中正确转义它们。例如,您可以使用 `\"` 转义序列在提示字符串中包含双引号字符,并使用 `\n` 转义序列包含换行符。 API 文档OpenAI API 文档是一个宝贵的资源,它提供了有关如何使用 API 的详细信息,包括可用的模型、参数和响应格式。我建议阅读文档以更好地了解 API 的工作原理,并了解任何新功能或更新。 下一主题浮点数的二进制表示 |
我们请求您订阅我们的新闻通讯以获取最新更新。