不懂代码也能调用 ChatGPT API,只需要三步

ChatGPT API 是什么
ChatGPT 已经成为了很多人日常工作的一部分,帮你写周报,做翻译,查资料。但是,有很多事情是网页版的 ChatGPT 做不到的。比如,我想要做一个关于 Apifox 的知识的问答机器人,能在企业微信里访问。这个时候,我就需要用到 ChatGPT API 了。

ChatGPT API 是一种由 OpenAI 提供的 API,它可以用最简单的方式把 ChatGPT 的聊天能力接入到各种应用程序或服务中。
这个 API 具体提供了哪些能力呢?
就是下面这些:
- 自然语言语音识别(Natural Language Speech Recognition):基于不同音频的大型数据集训练结果,支持多种国家语言的识别、方言及语调,为用户提供专业的海外内容语音转文字和翻译服务。
- 多模态图像生成(Multimodal Image Generation):通过自然语言描述生成高分辨率、逼真的图像,支持对场景、样式、组成等多种属性进行控制,可生成照片、插图、动漫等各类图像。
- 智能代码生成(Intelligent Code Generation):快速生成与需求描述匹配的代码段落,覆盖各类编程语言及多个级别,辅助开发者提升效率。支持代码风格迁移及完善不全代码。
- 内容过滤与审查(Content Filtering & Moderation):基于海量样本训练的模型可以对文本、图像及视频内容进行审查,识别并过滤不当内容,支持多语言及定制化敏感词库。
- 大模型微调(Model Fine-tuning):通过继续训练、增量学习等方式,对已存在的大模型进行微调,使其更好地适配业务场景及个性化需求。
- 文本嵌入(Text Embedding):将输入文本映射为固定长度的词向量,便于后续文本相似度计算、聚类等分析,为 NLP 任务提供基础输入表示。
具体的中文版 API 文档,你可以在这个网址中找到:https://openai.apifox.cn/

如何调用 ChatGPT API
很多人觉得调用 API 是个很麻烦的事情,需要写代码,需要研究数据结构。
但有了上面这个用 Apifox 生成的 API 文档,你会发现,原来根本不用写代码就能调用 ChatGPT API。
总共需要三步。
1. 获取 ChatGPT API Key
所有的 API 调用方法都离不开一个专门的 API Key,因此我们需要向 ChatGPT 申请专属的 API Key。受限于 ChatGPT 的注册要求,需要进行以下准备:
- 海外手机号用来接收 ChatGPT 发出的验证码,你可以在搜索引擎上输入
sms activate
来获取一个海外手机号码。 - 魔(KE)法(XUE)披(SHANG)风(WANG)地区选择为美国。
访问 ChatGPT 开发者平台并点击 Sign up 按钮进行注册。(链接:https://platform.openai.com/)
按照页面提示依次输入邮箱和密码,然后在页面中填写在上文中所获取到的海外手机号码,接收验证码后即可完成注册。进入控制台后,点击左侧菜单栏的 API keys 选项,然后点 Create new secret key 按钮。

填写名称后即可获取到一串加密字符~这就是我们接下来需要用来调试的 API Keys。如果你觉得上述流程太麻烦了,那么不妨直接在搜索引擎中搜索“chatgpt api keys 购买”等关键词,在第三方平台中获取由其它开发者提供的 API Keys(注意信息甄别)。
2. 填写 API Key
搞定 API key 之后,我们就可以直接在 API 在线文档中进行调试了。
ChatGPT 提供了很多种 API,无论你要使用哪一种,首先都需要输入你的 API key。
在上面那个 API 文档(https://openai.apifox.cn/)中,点击 “调试” 按钮。

点击“去设置变量值”,把你的 API Key 填进去。

这里填写的 API Key 只会保存在本地,不用担心泄露,可以放心使用。
接下来,我们就可以愉快地调用 ChatGPT API 了!
3. 调用 API
我们以图像生成 API 来作为一个例子。
找到“创建图像”的 API,点击“调试”就可以看到右侧 Body 区域有 prompt 和 size 这两个字段。你可以用英文描述一个你希望生成的场景,写在 prompt 里面。size 就是生成图片的分辨率。
我们直接以示例数据的“A colorful sunset over the mountains”来做个实验,分辨率 1024x1024。
点击“发送”。

在右侧下半边的“返回响应”区域,就可以看到 ChatGPT 生成的图像 URL 啦!
你可以在返回 Body 中的 content
中看到这个图片 URL。

点击图片 URL 你就可以欣赏到这两幅图,还不错吧?


调试 SSE API
当你跟 ChatGPT 聊天的时候,你会注意到对话是一个字一个字输出的。这是因为 ChatGPT API 聊天对话接口采用了 SSE(Server-Sent Events,服务器推送事件)方式返回响应。采用这种方式的好处在于可以实时显示问题的答案,当用户看到 GPT 正在说话也就更有耐心的等下去。
这种 API 不像普通的 API 一样是单次的请求和返回,而是一个连续的时间线。这时候就需要使用 Apifox 客户端来调试了。(下载 Apifox:https://apifox.com/)
安装完成后,你可以在 Apifox 客户端的左侧栏中找到 API Hub,点击进入 OpenAI 项目。

然后点击“克隆项目”按钮,将项目添加至自己的团队中。

打开“生成聊天消息的自动完成”接口,然后在请求 Body 中的 content 字段内填入你的需求,比如“请为我写一个能够接入 ChatGPT 对话功能的 Python 代码”。

点击“发送”按钮后即可建立连接,你可以在“时间线”内看到通过多条事件所依次返回的响应内容,并且可以清晰地看到事件间的时间间隔。若你正在开发一个兼容 SSE 的 API,那么便可以通过“时间线”功能抓取时间切片信息,优化 API 的服务性能。

如果你想要查看 ChatGPT 具体都回答了些什么内容,那么可以在后置操作中添加以下自定义脚本来拼接响应:
// 获取响应的文本
const text = pm.response.text()
// 将文本分割成行
var lines = text.split('\n');
// 创建一个空数组来存储 "answer" 参数
var contents = [];
// 遍历每一行
for (var i = 0; i < lines.length; i++) {
const line = lines[i];
// 跳过不以 data 开头的行
if (!line.startsWith('data:')) {
continue;
}
// 尝试解析 JSON 数据
try {
var data = JSON.parse(line.substring(5).trim()); // 去掉前面的 "data: "
// 获取 "content" 参数,并将其添加到数组中
contents.push(data.choices[0].delta.content);
} catch (e) {
// 如果当前行不是有效的 JSON 数据,就忽略它
}
}
// 使用 join() 方法拼接 "answer" 参数
var result = contents.join('');
// 将结果显示在 body 的“可视化”标签页
pm.visualizer.set(result);
// 打印结果到控制台
console.log(result);

请求 ChatGPT API 后就可以在控制台中查看响应的拼接结果。

你还可以在调用“聊天” API 时撰写需求来实现以下这些场景:
- 起草一份邮件或者其他文字内容
- 写 Python 代码解决自动化问题
- 回答关于一组文档的问题
- 给你的软件提供一个自然语言对话的接口
- 辅导各种学科
- 语言翻译
- 假扮成游戏中或其他内容的角色
把 ChatGPT 嵌入到你自己的应用
由 Apifox 生成的 API 文档内还预置了数十种主流开发语言的示例代码,开发者可以非常方便的将 API 代码集成至自己熟悉的开发环境中。

以 Python Flask 应用为例,你可以很轻松地将 API 调试命令融入至项目代码中:
from flask import Flask, render_template, request
import http.client
import json
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/send', methods=['POST'])
def send():
conn = http.client.HTTPSConnection("api.openai.com")
payload = json.dumps({
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "Hello!"
}
],
"stream": True
})
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY',
'User-Agent': 'Apifox/1.0.0 (https://apifox.com)',
'Content-Type': 'application/json'
}
conn.request("POST", "/v1/chat/completions", payload, headers)
res = conn.getresponse()
data = res.read()
return data.decode("utf-8")
if __name__ == '__main__':
app.run(port=5001)
使用 Apifox 生成强大的 API 文档
以上这个强大的 API 文档,不需要写任何代码就可以调用 ChatGPT API,还可以自动生成代码。
这个 API 文档是使用 Apifox 的“在线分享”功能生成的。只要有 Swagger Json,任何 API 都可以被一键包装成这样的方便调用的 API 文档。
Apifox 是更先进的 API 设计/开发/测试工具。
Apifox = Postman + Swagger + Mock + JMeter
一个工具解决 API 开发、调试、管理的一切问题。
更多关于 ChatGPT 的实践内容可以前往 Apifox 官网查看哦!
