如何使用编程方式调用 OpenAI ChatGPT API 接口

本文详细介绍了如何通过编程调用 OpenAI 的 ChatGPT API 接口,帮助开发者快速搭建对话系统,实现邮件起草、代码编写、问答咨询、自然语言界面等多种功能。核心关键词包括 OpenAIChatGPTAPI调用编程代理模型开发环境

前言

近年来,ChatGPT 以其强大的对话能力和多种应用场景受到广泛关注。借助 ChatGPT 提供的一系列 API 接口,您可以实现:

  • 起草电子邮件或其他书面文档

  • 编写代码

  • 回答文档相关问题

  • 构建会话代理

  • 为软件提供自然语言界面

  • 充当各领域的导师

  • 语言翻译

  • 模拟视频游戏中的角色

👉 野卡 | 一分钟注册,轻松订阅海外线上服务

准备工作

在开始调用 ChatGPT API 之前,请确保完成以下准备:

  • 注册 OpenAI 账号请先注册一个 OpenAI 账号,了解如何注册并试用 ChatGPT。

  • 搭建 Python 开发环境确保安装 Python (版本 >= 3.7.1)。

获取开发 KEY

  1. 登录 OpenAI 平台。

  2. 点击 “Create new secret key”,输入任意 KEY 名称后生成。

  3. 复制生成的 Secret Key。请注意,这个 Key 只会显示一次,如果未保存,需要重新生成。

开发过程

安装 OpenAI 库

使用 pip 命令安装 openai 库:

bash pip install openai

编写示例脚本

创建一个新的脚本文件 helloai.py,编写如下代码:

python import os import openai

填入你的 OpenAI API Key

openai.api_key = "OPENAI_API_KEY"

如在受限网络环境中使用,可设置代理(支持 http 代理和 socks 代理)

openai.proxy = "http://127.0.0.1:1080"

调用 gpt-3.5-turbo 模型,发送对话请求

completion = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "user", "content": "Hello!"} ] )

输出生成的消息

print(completion.choices[0].message)

输出完整响应内容

print(completion)

运行脚本命令:

bash python ./helloai.py

运行后将返回类似如下的输出:

plaintext Hello there, how may I assist you today? { "id": "chatcmpl-123", "object": "chat.completion", "created": 1677652288, "choices": [{ "index": 0, "message": { "role": "assistant", "content": "\n\nHello there, how may I assist you today?" }, "finish_reason": "stop" }], "usage": { "prompt_tokens": 9, "completion_tokens": 12, "total_tokens": 21 } }

代理问题

由于 OpenAI 服务器在部分区域可能存在网络连接限制,直接调用时可能遇到连接错误。常见错误提示如下:

plaintext raise error.APIConnectionError( openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url:/v1/chat/completions (Caused by NewConnectionError(...))

解决方案有两种:

  1. 使用全局科学上网工具。

  2. 配置 HTTP 或 SOCKS 代理,例如:

    python openai.proxy = "http://127.0.0.1:1080"

模型参数说明

调用 API 时,可以通过 model 参数指定使用的对话生成模型。目前可用模型包括:

  • gpt-4 系列

  • gpt-3.5-turbo 系列

其中,gpt-3.5-turbo 是功能强大且专为聊天优化的模型,适用于大多数应用场景。选择合适的模型有助于提升响应效率和准确性。

messages 参数解析

messages 参数用于传递当前对话的上下文信息。常用的角色包括:

  • system:系统消息,用于为对话提供初始说明,包括助手简介、人格特质、遵循规则等。

  • user:用户的提问或输入信息。

  • assistant:ChatGPT 返回的回答,用于多轮对话时传递上下文。

在多轮对话中,请将之前的对话记录(包括系统消息、用户提问和助手回答)一并传递,确保模型基于完整上下文生成准确回复。

Token 概念

OpenAI 的计费依据是对话和生成内容的 Token 数量。Token 是文本经过词法分析后的基本单元,合理控制 max_tokens 参数有助于防止消耗过快。您可以使用 OpenAI 官方工具查询 Token 数量。

完整示例

下面是一个命令行交互式输入的示例程序,启动后可以输入问题并获取实时回复。

通过以上示例,您可以轻松调用 OpenAI ChatGPT API 接口,构建多种自然语言交互应用。无论是邮件起草、代码编写还是构建对话系统,都能为您的开发提供强大支持。

👉 野卡 | 一分钟注册,轻松订阅海外线上服务