Skip to main content
OpenAI ChatGPT 是一款非常强大的 AI 对话系统,只要输入提示词,就能在短短几秒内生成流畅自然的回复。ChatGPT 以其出色的语言理解和生成能力在业界独树一帜,如今,ChatGPT 早已在各个行业和领域广泛应用,其影响力愈发显著。无论是日常对话、创意写作,还是专业咨询、代码编程,ChatGPT 都能提供令人惊叹的智能协助,极大地提高了人类的工作效率和创造力。 本文档主要介绍 OpenAI Chat Completion API 操作的使用流程,利用它我们可以轻松使用官方 OpenAI ChatGPT 的对话功能。

申请流程

要使用 OpenAI Chat Completion API,首先到 Ace Data Cloud 控制台 获取您的 API Token,留作备用。 如果你尚未登录或注册,会自动跳转到登录页面邀请你注册和登录,完成后会自动返回当前页面。 一个 API Token 即可调用平台所有服务,无需为每个服务单独申请。 首次申请会赠送免费额度,可免费体验;额度不足时可在 控制台 充值通用余额。
📘 完整文档:OpenAI Chat Completion API →

基本使用

接下来就可以在界面上填写对应的内容,如图所示:

在第一次使用该接口时,我们至少需要填写三个内容,一个是 authorization,直接在下拉列表里面选择即可。另一个参数是 modelmodel 就是我们选择使用 OpenAI ChatGPT 官网模型类别,这里我们主要有 20 种模型,详情可以看我们提供的模型。最后一个参数是messagesmessages是我们输入的提问词数组,它是一个数组,表示可以同时上传多个提问词,每个提问词包含了 rolecontent,其中 role 表示提问者的角色,我们提供了三种身份,分别为 userassistantsystem 。另一个 content 就是我们提问的具体内容。 同时您可以注意到右侧有对应的调用代码生成,您可以复制代码直接运行,也可以直接点击「Try」按钮进行测试。 常用可选参数:
  • max_tokens:限制单次回复的最大 token 数。
  • temperature:生成随机性,0-2 之间,值越大越发散。
  • n:一次生成多少条候选回复。
  • response_format:返回格式设置。

调用之后,我们发现返回结果如下:
返回结果一共有多个字段,介绍如下:
  • id,生成此次对话任务的 ID,用于唯一标识此次对话任务。
  • model ,选择的 OpenAI ChatGPT 官网模型。
  • choices,ChatGPT 针对提问词给于的回答信息。
  • usage :针对本次问答对 token 的统计信息。
其中 choices 是包含了 ChatGPT 的回答信息,它里面的 choices 是 ChatGPT,可以发现如图所示。

可以看到,choices 里面的 content 字段包含了 ChatGPT 回复的具体内容。

流式响应

该接口也支持流式响应,这对网页对接十分有用,可以让网页实现逐字显示效果。 如果想流式返回响应,可以更改请求头里面的 stream 参数,修改为 true 修改如图所示,不过调用代码需要有对应的更改才能支持流式响应。

stream 修改为 true 之后,API 将逐行返回对应的 JSON 数据,在代码层面我们需要做相应的修改来获得逐行的结果。 Python 样例调用代码:
输出效果如下:
可以看到,响应里面有许多 datadata 里面的 choices 即为最新的回答内容,与上文介绍的内容一致。choices 是新增的回答内容,您可以根据结果来对接到您的系统中。同时流式响应的结束是根据 data 的内容来判断的,如果内容为 [DONE],则表示流式响应回答已经全部结束。返回的 data 结果一共有多个字段,介绍如下:
  • id,生成此次对话任务的 ID,用于唯一标识此次对话任务。
  • model ,选择的 OpenAI ChatGPT 官网模型。
  • choices,ChatGPT 针对提问词给于的回答信息。
JavaScript 也是支持的,比如 Node.js 的流式调用代码如下:
Java 样例代码:
其他语言可以另外自行改写,原理都是一样的。

多轮对话

如果您想要对接多轮对话功能,需要对 messages 字段上传多个提问词,多个提问词的具体示例如下图所示:

Python 样例调用代码:
通过上传多个提问词,就可以轻松实现多轮对话,可以得到如下回答:
可以看到,choices 包含的信息与基本使用的内容是一致的,这个包含了 ChatGPT 针对多个对话进行回复的具体内容,这样就可以根据多个对话内容来回答对应的问题了。

对接 OpenAI-Python

OpenAI Chat Completion API 与官方 OpenAI 接口保持兼容,可直接使用官方 SDK OpenAI-Python 对接,本文将简要介绍使用方式。
  1. 首先需要搭建本地 Python 环境,此过程可谷歌搜索一下。
  2. 下载安装开发环境,比如安装 VSCode 编辑器。
  3. 配置 OpenAI 环境变量。
  • 在项目文件夹里,创建一个名为 .env 的文件,并保存
  • .env 文件内容:
sk-xxx 使用自己的 key 替换。OPENAI_BASE_URL 是访问 OpenAI 的代理接口。
  1. 安装项目依赖的包
Mac OS 中命令为:
  1. 创建示例源代码文件
假设我们创建了一个示例代码 index.py ,具体内容如下:

联网模型

gpt-3.5-browsing 和 gpt-4-browsing 模型与其它模型不同,它可以根据提问词来进行联网搜索,并且将联网搜索的结果进行适当的调整返回给你,本文将通过一个具体示例来演示联网功能,接下来就可以在 OpenAI Chat Completion API 界面上填写对应的内容,如图所示:

同时您可以注意到右侧有对应的调用代码生成,您可以复制代码直接运行,也可以直接点击「Try」按钮进行测试。

调用之后,我们发现返回结果如下:
可以看到,choices 里面的回答信息是根据联网查询后得到的,并且也给出了相关的链接,choices 里面的回答信息是要通过 markdown 语法进行渲染,这样才能获得最佳的体验,最后这也体现出我们模型的联网功能的强大优势。

视觉模型

gpt-4o 是 OpenAI 开发的多模态大型语言模型,它在 GPT-4 的基础上增加了视觉理解能力。这个模型可以同时处理文本和图像输入,实现了跨模态的理解和生成。 使用 gpt-4o 模型的文本处理是与上文的基本使用内容一致的,下面将简要介绍一下如果使用模型的图像处理能力。 使用 gpt-4o 模型的图像处理能力主要是通过在原有的 content 内容基础上添加一个 type 字段,通过该字段可以知道上传的是文本还是图片,从而使用 gpt-4o 模型的图像处理能力,下面主要讲述采用 Curl 和 Python 俩种方式来调用该功能。
  • Curl 脚本方式
  • Python 脚本方式
然后可以得到下面的结果,结果里面的字段信息是与上文一致的,具体的如下:
可以看到回答的内容是基于图片进行回答的,因此通过上述俩种方式可以轻松使用 gpt-4-vision 模型的文本和图像处理能力。 除了,gpt-4o,还有一个更低成本的模型,叫做 gpt-4o-mini。gpt-4o-mini 是 OpenAI 开发的最新一代大型语言模型,它不仅响应速度快,同时价格也更便宜,也支持多模态。vision 功能的使用可参考上文 gpt-4o 模型的使用的内容。

GPT-4o 绘图模型

根据参考图进行生图

下面是根据一个图片生成自定义风格的图片的示例,首先让我们看一下我们输入的图片,如下图所示: 可以看到参考图是一个真人的图片,我们可以让它变化一种风格,比如让它变成动漫风格的图像,具体的请求样例:
样例结果:
其中 choices 里面的 message.content 就是生成的完整对话结果,图片以 Markdown 格式包含在其中(图片链接为临时地址,请及时下载保存)。可以看出生成的图片确实是动漫风格的,具体的如下图所示:

纯文字生图

我们可以通过一个提示词让它生成图片,并且以对话式的结果返回给我们,下面我们以创建一张未来城市日落的图片为示例,下面具体的示例:
样例结果:
可以看到结果是符合提示词的,具体的如下所示:

多图生一图

我们还可以使用使用多张参考图来生成一张图,比如使用一张帅哥和咖啡图,利用这俩张图可以生成一张帅哥喝咖啡的图,下面是具体的参考图:

下面我们以生成男生举着咖啡,并且马上要喝的样子为示例,下面具体的示例:
样例结果:
可以看到,生成的结果确实是结合了俩张图来生成的,下面是具体的结果:

错误处理

在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:
  • 400 token_mismatched:Bad request, possibly due to missing or invalid parameters.
  • 400 api_not_implemented:Bad request, possibly due to missing or invalid parameters.
  • 401 invalid_token:Unauthorized, invalid or missing authorization token.
  • 429 too_many_requests:Too many requests, you have exceeded the rate limit.
  • 500 api_error:Internal server error, something went wrong on the server.

错误响应示例

结论

通过本文档,您已经了解了如何使用 OpenAI Chat Completion API 轻松实现官方 OpenAI ChatGPT 的对话功能。希望本文档能帮助您更好地对接和使用该 API。如有任何问题,请随时联系我们的技术支持团队。