2026年接入 ChatGPT API:从调用示例到项目落地指南
ChatGPT API接口调用教程|2026最新版
随着大模型应用的快速普及,越来越多的企业、开发者和个人开始把 ChatGPT 接入到自己的产品中,例如智能客服、知识库问答、AI 写作助手、代码生成工具、数据分析助手、Agent 自动化流程等。相比直接使用网页版 ChatGPT,调用 ChatGPT API 可以让开发者更加灵活地控制输入、输出、上下文、系统角色、工具调用、流式响应以及业务逻辑,从而构建真正可落地的 AI 应用。
本文将以“2026 最新版”的开发思路,系统讲解 ChatGPT API 的调用方式、核心参数、接口示例、流式输出、上下文管理、错误处理、安全实践以及实际项目中的落地建议。无论你是刚接触 API 的新手,还是正在准备将 AI 能力接入业务系统的开发者,都可以按照本文步骤快速上手。
说明:不同时间 OpenAI 官方 API 的模型名称、参数和价格可能会调整,实际开发时请以官方文档和控制台显示为准。本文重点讲解通用调用思路和工程实践。
一、ChatGPT API 是什么?
ChatGPT API 是一种通过 HTTP 请求调用大语言模型能力的接口。开发者可以将用户输入发送给模型,模型根据上下文生成回复,再由开发者把回复展示到网站、App、企业系统或其他业务场景中。
简单来说,网页版 ChatGPT 是“人直接和模型对话”,而 ChatGPT API 是“你的程序和模型对话”。
通过 API,你可以实现:
- 智能聊天机器人;
- 企业知识库问答;
- AI 文案生成;
- AI 客服系统;
- 代码解释与生成;
- 数据分析助手;
- 自动摘要与翻译;
- 邮件、报告、合同等文本生成;
- 多轮对话 Agent;
- 与数据库、搜索引擎、业务系统结合的智能应用。
API 的优势在于可编程、可集成、可自动化。你可以根据业务需求定义提示词、控制输出格式、设置温度参数、接入外部工具、保存用户上下文,并与自己的权限系统、计费系统、日志系统对接。
二、调用 ChatGPT API 前的准备工作
在正式编写代码前,需要完成以下准备。
1. 注册并登录开发者平台
首先需要拥有 OpenAI 或相关兼容平台的开发者账号。登录开发者控制台后,可以创建 API Key。API Key 是接口调用的身份凭证,类似于密码,必须妥善保管。
2. 创建 API Key
在控制台中找到 API Keys 或密钥管理页面,创建新的密钥。创建后请立即复制保存,因为部分平台只会显示一次完整密钥。
API Key 通常类似下面这种格式:
sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
注意:不要把 API Key 写死到前端代码中,也不要上传到 GitHub、Gitee 等公开代码仓库。一旦泄露,别人可以使用你的额度并产生费用。
3. 准备开发环境
本文将分别使用 curl、Node.js 和 Python 演示接口调用。你可以根据自己的技术栈选择一种方式。
建议准备:
- Node.js 18 或更高版本;
- Python 3.9 或更高版本;
- 一个可以发送 HTTP 请求的工具,例如 Postman、Apifox 或 curl;
- 可访问 API 服务的网络环境;
- 环境变量管理工具,例如
.env文件。
三、ChatGPT API 的基本调用流程
一次典型的 ChatGPT API 调用,大致包含以下步骤:
- 用户在你的应用中输入问题;
- 后端服务接收用户输入;
- 后端将用户输入、系统提示词和历史上下文发送给 ChatGPT API;
- API 返回模型生成的回答;
- 后端对结果进行处理,例如过滤、格式化、记录日志;
- 前端展示回答给用户。
整个流程中,最重要的是请求体中的 messages。它通常由多条消息组成,每条消息包含角色和内容。
常见角色包括:
| 角色 | 说明 |
|---|---|
| system | 系统指令,用于设定模型身份、回答风格和规则 |
| user | 用户输入的问题或任务 |
| assistant | 模型之前的回答,通常用于多轮对话上下文 |
例如:
[
{
"role": "system",
"content": "你是一个专业、严谨的中文技术助手。"
},
{
"role": "user",
"content": "请解释什么是 ChatGPT API。"
}
]
四、使用 curl 调用 ChatGPT API
如果你想最快验证接口是否可用,可以使用 curl。
下面是一个基础示例:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4.1-mini",
"messages": [
{
"role": "system",
"content": "你是一个专业的中文技术助手,回答要清晰、准确。"
},
{
"role": "user",
"content": "请用三句话介绍 ChatGPT API 的作用。"
}
],
"temperature": 0.7
}'
如果调用成功,接口会返回一段 JSON 数据。你需要重点关注模型生成的内容,通常位于类似下面的位置:
{
"choices": [
{
"message": {
"role": "assistant",
"content": "ChatGPT API 可以让开发者在自己的应用中调用大语言模型能力..."
}
}
]
}
在实际项目中,你通常只需要取出:
choices[0].message.content
然后展示给用户即可。
五、使用 Node.js 调用 ChatGPT API
Node.js 是 Web 项目中非常常见的后端技术,适合与 Express、NestJS、Next.js 等框架结合。
1. 安装依赖
如果使用官方 SDK,可以先安装:
npm install openai
2. 设置环境变量
在项目根目录创建 .env 文件:
OPENAI_API_KEY=你的API密钥
注意不要把 .env 提交到代码仓库,可以在 .gitignore 中加入:
.env
3. 基础调用示例
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
async function main() {
const completion = await client.chat.completions.create({
model: "gpt-4.1-mini",
messages: [
{
role: "system",
content: "你是一个专业的中文技术助手,回答要结构清晰。",
},
{
role: "user",
content: "请写一段关于 API 调用安全性的说明。",
},
],
temperature: 0.6,
});
console.log(completion.choices[0].message.content);
}
main();
运行:
node index.js
如果配置正确,你会在终端看到模型返回的中文回答。
六、在 Express 中封装聊天接口
实际开发中,一般不会让前端直接请求 OpenAI API,而是由自己的后端服务进行转发。这样可以隐藏 API Key,并且便于做权限控制、日志记录、限流和计费。
下面是一个简单的 Express 示例。
1. 安装依赖
npm install express openai dotenv
2. 示例代码
import express from "express";
import dotenv from "dotenv";
import OpenAI from "openai";
dotenv.config();
const app = express();
app.use(express.json());
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
app.post("/api/chat", async (req, res) => {
try {
const { message } = req.body;
if (!message || typeof message !== "string") {
return res.status(400).json({
error: "message 参数不能为空",
});
}
const completion = await client.chat.completions.create({
model: "gpt-4.1-mini",
messages: [
{
role: "system",
content: "你是一个专业的中文 AI 助手,请用简洁准确的方式回答问题。",
},
{
role: "user",
content: message,
},
],
temperature: 0.7,
});
res.json({
answer: completion.choices[0].message.content,
});
} catch (error) {
console.error("Chat API Error:", error);
res.status(500).json({
error: "服务器内部错误,请稍后重试",
});
}
});
app.listen(3000, () => {
console.log("Server is running at http://localhost:3000");
});
前端只需要请求你自己的接口:
const response = await fetch("/api/chat", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
message: "请介绍一下什么是大语言模型。",
}),
});
const data = await response.json();
console.log(data.answer);
这种架构更安全,也更适合生产环境。
七、使用 Python 调用 ChatGPT API
Python 适合做脚本自动化、数据处理、AI 应用原型和后端服务。
1. 安装依赖
pip install openai
2. 基础示例
from openai import OpenAI
import os
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY")
)
response = client.chat.completions.create(
model="gpt-4.1-mini",
messages=[
{
"role": "system",
"content": "你是一个专业的中文技术助手。"
},
{
"role": "user",
"content": "请解释 API Key 为什么不能暴露在前端。"
}
],
temperature=0.6
)
print(response.choices[0].message.content)
运行前设置环境变量:
export OPENAI_API_KEY="你的API密钥"
python main.py
在 Windows PowerShell 中可以使用:
$env:OPENAI_API_KEY="你的API密钥"
python main.py
八、核心参数详解
调用 ChatGPT API 时,除了 model 和 messages,还可以使用一些常见参数控制输出效果。
1. model
model 用于指定调用哪个模型。不同模型在能力、速度、价格、上下文长度等方面可能不同。一般来说:
- 大模型:推理能力更强,适合复杂任务;
- 小模型:速度更快,成本更低,适合简单问答和高并发场景;
- 多模态模型:可能支持文本、图片、音频等输入输出;
- 嵌入模型:适合向量检索和知识库场景。
生产环境中建议根据业务需求选择模型,而不是盲目选择最贵或最大的模型。
2. messages
messages 是对话内容数组,是最核心的参数。
示例:
[
{
"role": "system",
"content": "你是一个电商客服助手,只回答和订单、物流、售后相关的问题。"
},
{
"role": "user",
"content": "我的订单为什么还没发货?"
}
]
system 消息可以设定模型边界。例如你可以要求模型:
- 使用中文回答;
- 保持语气友好;
- 输出 JSON 格式;
- 不回答与业务无关的问题;
- 遇到不确定信息时提示用户联系人工客服。
3. temperature
temperature 用于控制输出的随机性。值越高,回答越发散;值越低,回答越稳定。
常见设置建议:
| 场景 | 推荐值 |
|---|---|
| 客服问答 | 0.2 - 0.5 |
| 技术解释 | 0.3 - 0.7 |
| 创意写作 | 0.7 - 1.0 |
| JSON 结构化输出 | 0 - 0.3 |
如果你希望模型每次回答更一致,可以降低 temperature。
4. max_tokens
max_tokens 用于限制模型最多输出多少 token。合理设置可以控制成本和响应长度。
例如:
{
"max_tokens": 800
}
如果是短问答,可以设置较小;如果是长文章生成,则需要设置更大。
5. stream
stream 用于开启流式输出。开启后,模型会边生成边返回,用户体验类似网页版 ChatGPT 的“打字效果”。
流式输出非常适合聊天场景,因为它可以显著降低用户感知等待时间。
九、流式输出示例
在真实产品中,如果用户需要等待 10 秒才能看到完整回答,体验会比较差。流式输出可以让用户在模型生成过程中逐步看到内容。
下面是 Node.js 中的简单流式示例:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
async function streamChat() {
const stream = await client.chat.completions.create({
model: "gpt-4.1-mini",
messages: [
{
role: "user",
content: "请用通俗语言解释什么是流式输出。",
},
],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content || "";
process.stdout.write(content);
}
}
streamChat();
如果要在 Web 项目中实现流式输出,可以使用:
- Server-Sent Events,简称 SSE;
- WebSocket;
- Fetch ReadableStream;
- Node.js Stream。
其中 SSE 实现简单,适合大多数聊天应用。
十、多轮对话上下文管理
ChatGPT API 本身不会自动记住你应用中某个用户的历史对话。也就是说,每一次 API 请求都是相对独立的。如果你希望模型理解上下文,就需要在请求时把历史消息一起传过去。
示例:
[
{
"role": "system",
"content": "你是一个旅游顾问。"
},
{
"role": "user",
"content": "我想去云南旅游。"
},
{
"role": "assistant",
"content": "云南很适合旅行,你更喜欢自然风光还是人文古城?"
},
{
"role": "user",
"content": "我喜欢自然风光,预算5000元。"
}
]
这样模型就能理解“我”指的是之前想去云南旅游的用户,并根据预算继续回答。
但是需要注意,上下文越长,消耗的 token 越多,成本也越高。因此实际项目中要做上下文压缩。
常见策略包括:
- 只保留最近 N 轮对话;
- 对较早的对话做摘要;
- 将关键信息结构化保存,例如用户偏好、预算、城市;
- 对无关闲聊进行丢弃;
- 对知识库内容使用检索增强生成,而不是全部塞进上下文。
例如,你可以在数据库中保存:
{
"user_id": "10001",
"preferences": {
"destination": "云南",
"budget": "5000元",
"interest": "自然风光"
}
}
然后在每次请求时把这些关键信息放入 system 或 user 消息中。
十一、如何让模型输出 JSON 格式
很多业务系统需要模型返回结构化数据,例如分类结果、表单字段、商品属性、工单标签等。这时可以在提示词中明确要求返回 JSON。
示例:
const completion = await client.chat.completions.create({
model: "gpt-4.1-mini",
messages: [
{
role: "system",
content: "你是一个信息抽取助手。请只返回合法 JSON,不要输出任何解释文字。",
},
{
role: "user",
content: "从这句话中提取姓名、城市和职业:张伟目前在上海做前端工程师。",
},
],
temperature: 0,
});
期望输出:
{
"name": "张伟",
"city": "上海",
"job": "前端工程师"
}
为了提高稳定性,建议:
- temperature 设置为 0 或较低;
- 明确字段名称和字段类型;
- 要求只返回 JSON;
- 在后端对返回内容进行 JSON.parse 校验;
- 校验失败时自动重试一次;
- 对关键业务结果进行人工审核或规则校验。
十二、知识库问答的实现思路
很多企业希望 ChatGPT 能回答公司内部文档、产品手册、售后政策、合同条款等内容。这类场景通常不能简单地把所有文档一次性放进 prompt,因为文档太长、成本太高,而且效果不稳定。
更推荐使用 RAG,也就是检索增强生成。
基本流程如下:
- 将企业文档切分成多个小段;
- 使用 embedding 模型将每个文档片段转换成向量;
- 存入向量数据库,例如 Milvus、Pinecone、Weaviate、pgvector、Elasticsearch 等;
- 用户提问时,也将问题转换成向量;
- 从向量数据库中检索最相关的文档片段;
- 将检索结果和用户问题一起发给 ChatGPT;
- 要求模型基于资料回答,不能编造。
提示词示例:
你是企业知识库问答助手。请严格根据给定资料回答用户问题。
如果资料中没有答案,请回答“根据现有资料无法确认”,不要编造。
资料:
{{retrieved_documents}}
用户问题:
{{question}}
这种方式比直接让模型凭记忆回答更可靠,也更适合企业内部知识管理。
十三、常见错误与解决方法
1. 401 Unauthorized
通常表示 API Key 错误、缺失或无权限。
解决方法:
- 检查
Authorization请求头; - 确认格式是
Bearer API_KEY; - 检查环境变量是否生效;
- 确认密钥没有被删除或禁用。
2. 429 Too Many Requests
表示请求过于频繁或达到速率限制。
解决方法:
- 增加重试和退避机制;
- 降低并发;
- 使用队列削峰;
- 检查账户额度;
- 根据业务等级申请更高限额。
3. 400 Bad Request
通常是请求参数错误。
常见原因:
- model 名称错误;
- messages 格式不正确;
- content 为空;
- JSON 格式错误;
- 参数类型不符合要求。
4. 500 或 503
可能是服务端临时异常或网络问题。
解决方法:
- 设置自动重试;
- 记录请求 ID 和错误日志;
- 给用户友好的提示;
- 不要无限重试,避免造成雪崩。
十四、生产环境最佳实践
如果你要把 ChatGPT API 接入正式业务,建议关注以下几点。
1. 不要在前端暴露 API Key
API Key 必须放在后端服务器。前端只能请求你自己的后端接口。如果密钥暴露,可能造成额度被盗刷和数据泄露。
2. 增加用户鉴权
不要让任何人都可以无限调用你的 AI 接口。你可以基于登录态、会员等级、套餐额度、IP、设备指纹等方式进行限制。
3. 做限流和防刷
AI API 调用通常有成本,因此必须限制频率。例如:
- 每个用户每分钟最多 10 次;
- 游客每天最多 5 次;
- 单个 IP 每小时最多 100 次;
- 超出后返回友好提示。
4. 记录日志但避免保存敏感数据
日志对排查问题很重要,但不要随意保存用户隐私信息、密码、身份证号、银行卡号等敏感内容。必要时应做脱敏处理。
5. 设置超时时间
模型响应可能因网络或任务复杂度变慢,因此后端请求应设置超时时间。例如 30 秒或 60 秒。超时后提示用户稍后再试。
6. 控制成本
成本控制是 AI 应用能否长期运行的关键。建议:
- 为不同任务选择不同模型;
- 限制最大输出长度;
- 压缩上下文;
- 缓存常见问题答案;
- 对高频请求做去重;
- 使用流式输出改善体验;
- 对异常请求进行拦截。
7. 增加内容安全策略
如果你的产品面向公众用户,需要防止模型生成违法违规、攻击性、隐私泄露或不适合展示的内容。可以结合内容审核、关键词规则、人工复核和模型安全提示词来降低风险。
十五、一个完整的提示词模板
下面是一个适合企业客服机器人的 system prompt 示例:
你是某电商平台的智能客服助手,请遵守以下规则:
1. 使用简体中文回答;
2. 语气礼貌、专业、简洁;
3. 只回答与订单、物流、售后、退款、发票、商品咨询相关的问题;
4. 如果用户的问题超出业务范围,请礼貌说明无法处理;
5. 如果资料中没有明确答案,不要编造,请建议用户联系人工客服;
6. 如果涉及订单号、手机号、地址等敏感信息,提醒用户注意隐私;
7. 回答中不要承诺无法保证的结果;
8. 输出结构尽量清晰,可使用列表。
好的提示词并不是越长越好,而是要边界清晰、规则明确、与业务目标一致。
十六、从 Demo 到正式项目的架构建议
一个成熟的 ChatGPT API 应用,通常不仅仅是一段接口调用代码,而是一个完整系统。
推荐架构如下:
前端页面
↓
业务后端 API
↓
鉴权 / 限流 / 参数校验
↓
上下文管理 / 用户画像 / 知识库检索
↓
ChatGPT API
↓
结果校验 / 内容安全 / 日志记录
↓
返回前端展示
如果是企业知识库场景,还需要增加:
文档上传
↓
文本解析
↓
文档切分
↓
向量化
↓
向量数据库
↓
问题检索
↓
模型生成答案
不要把所有逻辑都塞进 prompt。Prompt 很重要,但系统工程同样重要。真正稳定的 AI 应用,往往依赖模型能力、检索系统、规则系统、业务数据库和人工审核共同完成。
十七、总结
ChatGPT API 为开发者提供了强大的大语言模型能力,可以快速接入到网站、App、企业系统和自动化流程中。调用 API 的基本步骤并不复杂:创建 API Key,选择模型,构造 messages,发送请求,解析返回结果。但要想做出稳定、可靠、低成本、可上线的 AI 产品,还需要关注上下文管理、流式输出、错误处理、安全防护、限流策略、成本控制和内容合规。
对于新手来说,可以先从 curl 或 Python 示例开始,确认接口能够正常调用;随后再封装到 Node.js、Java、Go 或 Python 后端服务中;最后结合数据库、知识库、用户系统和日志系统逐步完善。
如果你正在开发自己的 AI 应用,建议按照以下路线实践:
- 先实现最小可用 Demo;
- 再封装后端接口,隐藏 API Key;
- 增加流式输出,提高用户体验;
- 保存并压缩多轮上下文;
- 根据业务需求接入知识库;
- 做好限流、鉴权、日志和错误处理;
- 持续优化提示词和模型选择;
- 监控成本与效果,逐步迭代。
掌握 ChatGPT API 调用并不只是学会一段代码,更重要的是理解如何把大模型能力融入真实业务流程。只要架构设计合理、提示词清晰、数据管理规范,你就可以基于 ChatGPT API 构建出高质量的智能应用。