API开发01:API基础与认证 - 打开AI服务的大门

API开发01:API基础与认证 - 打开AI服务的大门

📖 系列导航


一个真实的场景

你刚刚注册了 ChatGPT,觉得 AI 很神奇。然后你看到有人说”可以通过 API 调用 GPT”,你兴冲冲地打开文档,却看到一堆术语:

“发送 HTTP POST 请求到 https://api.openai.com/v1/chat/completions,在 Header 中添加 Authorization: Bearer YOUR_API_KEY…”

HTTP 是什么?POST 是什么?Header 又是什么?

别慌,这篇文章就是为你准备的。我们会用最通俗的语言、最直观的图解,帮你理解这些概念。


一、什么是 API?

1.1 API 的本质

API(Application Programming Interface,应用程序编程接口),本质上就是程序之间的”对话规则”

用一个类比理解:

API餐厅类比

你去餐厅点餐:
├─ 你 = 客户端(你的代码)
├─ 服务员 = API(接口)
├─ 厨房 = 服务器(AI 模型)
└─ 菜单 = API 文档

你的流程:
1. 看菜单 → 查文档
2. 告诉服务员"我要一份宫保鸡丁" → 发送请求
3. 服务员把订单送到厨房 → API 转发请求
4. 厨房做好菜 → 服务器处理
5. 服务员端菜给你 → 返回响应

API 就是一套”点餐规则”

  • 你能点什么菜(能调用哪些功能)
  • 怎么点(请求格式是什么)
  • 菜怎么上(响应格式是什么)

1.2 为什么 AI 服务需要 API?

如果每次用 AI 都要打开网页,会非常低效。通过 API:

# 不用打开浏览器,一行代码调用 AI
response = client.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": "你好"}]
)
print(response.choices[0].message.content)

API 让 AI 成为代码的一部分,可以:

  • ✅ 自动化工作流(批量处理文档)
  • ✅ 集成到你的应用(聊天机器人、写作助手)
  • ✅ 24小时无人值守运行
  • ✅ 精确控制参数(temperature、max_tokens)

1.3 AI API 能做什么?

功能说明应用场景
对话聊天与 AI 多轮对话客服机器人、写作助手
文本生成生成文章、代码、翻译内容创作、代码补全
图像理解分析图片内容图片标注、OCR、审核
图像生成根据描述生成图片设计辅助、创意生成
语音转文字音频转录会议记录、字幕生成
Embedding文本向量化语义搜索、RAG

二、HTTP 基础:互联网的”送餐系统”

2.1 什么是 HTTP?

HTTP(HyperText Transfer Protocol,超文本传输协议),是互联网上最常用的通信协议。

简单理解:HTTP = 送餐系统

HTTP请求响应流程

一个完整的 HTTP 交互包含:

┌─────────┐                      ┌─────────┐
│ 客户端  │  ──── 请求 ────→     │ 服务器  │
│(你的代码)│                      │(AI API) │
│         │  ←─── 响应 ────      │         │
└─────────┘                      └─────────┘
  • 请求(Request):你发送的消息
  • 响应(Response):服务器返回的结果
  • URL(地址):你要访问的”餐厅位置”

2.2 HTTP 请求的四个要素

一个完整的 HTTP 请求包含四个部分:

HTTP请求结构

┌────────────────────────────────────────────────────────────┐
│  1. 请求行(Request Line)                                  │
│     POST /v1/chat/completions HTTP/1.1                     │
├────────────────────────────────────────────────────────────┤
│  2. 请求头(Headers)                                       │
│     Content-Type: application/json                         │
│     Authorization: Bearer sk-xxx                           │
├────────────────────────────────────────────────────────────┤
│  3. 空行(Empty Line)                                      │
│                                                             │
├────────────────────────────────────────────────────────────┤
│  4. 请求体(Body)                                          │
│     {                                                       │
│       "model": "gpt-4",                                     │
│       "messages": [{"role": "user", "content": "你好"}]    │
│     }                                                       │
└────────────────────────────────────────────────────────────┘

要素详解

要素说明示例
请求行方法 + 路径 + 协议版本POST /v1/chat/completions HTTP/1.1
请求头元数据信息Content-Type: application/json
空行分隔头部和正文(必须有空行)
请求体实际数据JSON 格式的参数

2.3 常见的 HTTP 方法

HTTP方法对比

方法用途AI API 场景是否有Body
GET获取数据查询模型列表、账户余额
POST创建数据发送对话请求、生成内容
PUT更新数据修改配置(较少用)
DELETE删除数据删除文件(较少用)
PATCH部分更新更新部分配置(较少用)

AI API 主要用 GET 和 POST

  • GET:查询信息(不消耗资源,免费)
  • POST:调用模型(消耗 Token,收费)

2.4 HTTP 状态码

状态码告诉你请求是否成功:

HTTP状态码分类

状态码类型含义AI API 常见情况
200成功OK请求正常处理 ✅
201成功Created资源创建成功
400客户端错误Bad Request参数格式不对
401客户端错误UnauthorizedAPI Key 无效或过期
403客户端错误Forbidden无权限访问
404客户端错误Not Found路径错误
429客户端错误Too Many Requests超过速率限制
500服务器错误Internal Server ErrorAI 服务端故障
502服务器错误Bad Gateway网关错误
503服务器错误Service Unavailable服务不可用

状态码快速判断

2xx → 成功,继续处理 ✅
4xx → 你的问题,检查请求 🔍
5xx → 服务器问题,稍后重试 ⏳

三、请求实战:如何正确”点餐”

3.1 一个完整的 API 调用

以 OpenAI Chat Completions API 为例:

# 用 curl 命令发送请求
curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxx..." \
  -d '{
    "model": "gpt-4",
    "messages": [{"role": "user", "content": "你好"}]
  }'

拆解这个请求

① URL:请求地址

https://api.openai.com/v1/chat/completions
│         │                 │    │
│         │                 │    └─ 功能端点
│         │                 └────── API 版本
│         └──────────────────────── 域名
└────────────────────────────────── 协议(必须 HTTPS)

② Method:请求方法

# 默认是 POST(-X POST 可省略)
curl -X POST ...

③ Headers:请求头

-H "Content-Type: application/json"    # 告诉服务器:我发的是 JSON
-H "Authorization: Bearer sk-xxx..."   # 身份验证:这是我的 API Key

④ Body:请求体

{
  "model": "gpt-4",                    # 用哪个模型
  "messages": [                        # 对话内容
    {"role": "user", "content": "你好"}
  ]
}

3.2 响应结构解析

成功调用后,API 会返回 JSON 格式的响应:

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1677858242,
  "model": "gpt-4",
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "你好!有什么我可以帮助你的吗?"
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 15,
    "total_tokens": 25
  }
}

响应字段说明

字段说明
id请求唯一标识
choices[0].message.contentAI 的回复内容 ⭐
choices[0].finish_reason结束原因(stop/length)
usage.prompt_tokens输入消耗的 Token
usage.completion_tokens输出消耗的 Token
usage.total_tokens总消耗 Token

四、API Key:你的”会员卡”

4.1 什么是 API Key?

API Key = 你的会员卡号

API Key作用

API Key 的作用:

1. 身份识别:你是谁
2. 权限控制:你能用什么功能
3. 用量统计:你用了多少资源
4. 计费依据:你该付多少钱

API Key 格式示例

OpenAI:    sk-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DeepSeek:  sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ChatGLM:   xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxx
阿里云:    sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

4.2 API Key 的获取流程

以 OpenAI 为例:

步骤1:访问 https://platform.openai.com
步骤2:注册/登录账号
步骤3:验证手机号(需要国外号码)
步骤4:进入 Dashboard → API Keys
步骤5:点击 "Create new secret key"
步骤6:输入 Key 名称(如 "my-first-key")
步骤7:⚠️ 立即复制保存(只显示一次!)
步骤8:充值或绑定付款方式

常见问题

问题解决方案
手机验证失败使用 SMS-Activate、5Sim 等接码平台
无法访问网站使用 VPN 或代理
充值失败使用国外信用卡或虚拟卡
Key 找不到了删除重建一个,旧 Key 作废

4.3 API Key 安全最佳实践

❌ 错误做法

# 错误1:直接写在代码里
api_key = "sk-xxxxxxxxxxxxxxxx"

# 错误2:提交到 Git
git add config.py  # 里面包含 API Key
git push           # Key 泄露到远程仓库!

# 错误3:分享给别人
# "我把 Key 发你,你帮我测试一下" ← 危险!

# 错误4:Key 写在日志里
print(f"Using API Key: {api_key}")  # 日志会记录 Key

✅ 正确做法

方法1:环境变量(最推荐)

# 在终端临时设置(关闭终端后失效)
export OPENAI_API_KEY="sk-xxx"

# 永久设置(写入配置文件)
# macOS/Linux: ~/.zshrc 或 ~/.bashrc
echo 'export OPENAI_API_KEY="sk-xxx"' >> ~/.zshrc
source ~/.zshrc

# Windows: 系统环境变量设置
# 或在 PowerShell 中:
$env:OPENAI_API_KEY="sk-xxx"
# Python 中读取环境变量
import os
api_key = os.environ.get("OPENAI_API_KEY")

if not api_key:
    raise ValueError("请设置 OPENAI_API_KEY 环境变量")

# OpenAI SDK 会自动读取 OPENAI_API_KEY
from openai import OpenAI
client = OpenAI()  # 无需传 api_key

方法2:.env 文件(推荐团队项目)

# 创建 .env 文件
echo "OPENAI_API_KEY=sk-xxx" > .env
echo "DEEPSEEK_API_KEY=sk-xxx" >> .env

# ⚠️ 添加到 .gitignore
echo ".env" >> .gitignore
# 使用 python-dotenv
from dotenv import load_dotenv
import os

load_dotenv()  # 加载 .env 文件
api_key = os.environ.get("OPENAI_API_KEY")

方法3:配置文件(企业级)

# config.py(加入 .gitignore)
import os

class Config:
    OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")
    DEEPSEEK_API_KEY = os.environ.get("DEEPSEEK_API_KEY")
    
    # 也可以从加密配置中心读取
    # OPENAI_API_KEY = get_from_vault("openai/api_key")

4.4 Key 泄露后的处理

万一 Key 泄露了:

1. 立即删除泄露的 Key
   └─ OpenAI Dashboard → API Keys → 点击删除

2. 生成新的 Key
   └─ 点击 "Create new secret key"

3. 更新所有使用该 Key 的地方
   └─ 更新环境变量、配置文件等

4. 检查账单
   └─ Dashboard → Usage → 查看异常消耗

5. 联系客服(如有异常扣费)
   └─ 发送邮件到 support@openai.com

五、认证方式:如何证明”我是我”

5.1 常见的认证方式对比

API认证方式对比

方式安全性实现难度使用场景
API Key in Header⭐⭐⭐简单OpenAI、DeepSeek
Bearer Token⭐⭐⭐⭐简单大多数现代 API
API Key in URL⭐⭐最简单部分老旧 API(不推荐)
签名认证⭐⭐⭐⭐⭐复杂AWS、阿里云
OAuth2⭐⭐⭐⭐⭐最复杂第三方授权登录

5.2 Bearer Token 认证详解

Bearer Token 是最常用的认证方式

# Header 格式
Authorization: Bearer <your-api-key>

# curl 示例
curl -H "Authorization: Bearer sk-xxx" https://api.example.com/v1/chat

为什么叫 “Bearer”?

  • Bearer = 持有者
  • 意思是:“Whoever holds this token can access”(谁持有这个令牌就能访问)
  • 所以 Token 必须保密,谁拿到谁就能用!

5.3 不同 API 的认证格式

# OpenAI / DeepSeek / 大多数 API
headers = {
    "Authorization": "Bearer sk-xxx",
    "Content-Type": "application/json"
}

# 阿里云(需要签名)
headers = {
    "Authorization": f"acs {access_key_id}:{signature}",
    "Content-Type": "application/json",
    "Date": "Thu, 18 Apr 2026 08:00:00 GMT"
}

# 部分老旧 API(Key 在 URL 中)
url = f"https://api.example.com/v1/chat?api_key={api_key}"
# ⚠️ 不推荐,URL 会被记录在日志中

六、调试工具:你的”后厨监控”

6.1 Postman:图形化调试神器

Postman 是最流行的 API 调试工具。

Postman界面示意

优点

  • ✅ 图形化界面,无需写代码
  • ✅ 保存请求历史
  • ✅ 自动生成代码片段
  • ✅ 团队协作共享
  • ✅ 环境变量管理

基本使用

1. 下载安装:https://www.postman.com/downloads/

2. 创建新请求
   └─ New → HTTP Request

3. 填写信息
   ├─ Method: POST
   ├─ URL: https://api.openai.com/v1/chat/completions
   ├─ Headers:
   │   ├─ Content-Type: application/json
   │   └─ Authorization: Bearer sk-xxx
   └─ Body: {"model": "gpt-4", "messages": [...]}

4. 点击 Send

5. 查看响应
   └─ Response → Body / Headers / Status

6.2 curl:命令行调试利器

curl 是终端中的 HTTP 客户端。

优点

  • ✅ 系统自带,无需安装
  • ✅ 可编写脚本自动化
  • ✅ 适合服务器环境
  • ✅ 便于分享(命令可直接复制)

常用参数

# 基本请求
curl https://api.example.com

# 指定方法
curl -X POST https://api.example.com

# 添加 Header
curl -H "Content-Type: application/json" https://api.example.com

# 添加请求体
curl -d '{"key": "value"}' https://api.example.com

# 显示详细信息(调试用)
curl -v https://api.example.com

# 只显示响应头
curl -I https://api.example.com

# 保存响应到文件
curl -o response.json https://api.example.com

# 跟随重定向
curl -L https://api.example.com

# 设置超时(秒)
curl --max-time 30 https://api.example.com

# 完整示例:调用 OpenAI API
curl https://api.openai.com/v1/chat/completions \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxx" \
  -d '{"model":"gpt-4","messages":[{"role":"user","content":"你好"}]}' \
  -v

6.3 Python requests 库

import requests

# GET 请求
response = requests.get(
    "https://api.openai.com/v1/models",
    headers={"Authorization": "Bearer sk-xxx"}
)
print(response.json())

# POST 请求
response = requests.post(
    "https://api.openai.com/v1/chat/completions",
    headers={
        "Content-Type": "application/json",
        "Authorization": "Bearer sk-xxx"
    },
    json={
        "model": "gpt-4",
        "messages": [{"role": "user", "content": "你好"}]
    }
)

# 查看响应
print(f"状态码: {response.status_code}")
print(f"响应体: {response.json()}")
print(f"响应头: {response.headers}")

# 错误处理
if response.status_code == 200:
    data = response.json()
    print(data["choices"][0]["message"]["content"])
elif response.status_code == 401:
    print("API Key 无效")
elif response.status_code == 429:
    print("请求过多,请稍后重试")
else:
    print(f"错误: {response.status_code}")

6.4 工具对比

需求推荐工具
学习 API 调用Postman
快速测试单个请求curl
写脚本自动化Python requests
生产环境集成OpenAI Python SDK
团队协作共享Postman Workspace
服务器环境调试curl

七、错误处理:当”点餐”出问题时

7.1 常见错误类型

import requests
from openai import OpenAI, AuthenticationError, RateLimitError, APIError

client = OpenAI()

try:
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": "你好"}]
    )
except AuthenticationError as e:
    # 401: API Key 无效或过期
    print(f"认证失败: {e}")
    print("请检查 API Key 是否正确")
    
except RateLimitError as e:
    # 429: 请求过多
    print(f"触发限流: {e}")
    print("请稍后重试或升级套餐")
    
except APIError as e:
    # 500: 服务器错误
    print(f"服务器错误: {e}")
    print("AI 服务暂时不可用,请稍后重试")
    
except requests.exceptions.Timeout:
    # 请求超时
    print("请求超时,请检查网络连接")
    
except requests.exceptions.ConnectionError:
    # 连接失败
    print("网络连接失败,请检查网络设置")
    
except Exception as e:
    # 其他未知错误
    print(f"未知错误: {type(e).__name__}: {e}")

7.2 重试策略

遇到临时性错误(如 429、500)时,应该自动重试:

import time
from openai import RateLimitError, APIError

def call_with_retry(client, messages, max_retries=3, base_delay=1):
    """带重试的 API 调用"""
    for attempt in range(max_retries):
        try:
            return client.chat.completions.create(
                model="gpt-4",
                messages=messages
            )
        except RateLimitError:
            if attempt < max_retries - 1:
                # 指数退避:1s, 2s, 4s
                wait_time = base_delay * (2 ** attempt)
                print(f"触发限流,{wait_time}秒后重试... (尝试 {attempt + 1}/{max_retries})")
                time.sleep(wait_time)
            else:
                raise  # 达到最大重试次数,抛出异常
        except APIError as e:
            if attempt < max_retries - 1:
                wait_time = base_delay * (2 ** attempt)
                print(f"服务器错误,{wait_time}秒后重试...")
                time.sleep(wait_time)
            else:
                raise

# 使用
try:
    response = call_with_retry(client, [{"role": "user", "content": "你好"}])
    print(response.choices[0].message.content)
except Exception as e:
    print(f"重试失败: {e}")

7.3 错误监控与日志

import logging
from datetime import datetime

# 配置日志
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s',
    filename='api_calls.log'
)
logger = logging.getLogger(__name__)

def call_with_logging(client, messages):
    """带日志的 API 调用"""
    start_time = time.time()
    
    try:
        response = client.chat.completions.create(
            model="gpt-4",
            messages=messages
        )
        
        # 记录成功调用
        duration = time.time() - start_time
        logger.info(
            f"API 调用成功 | "
            f"模型: gpt-4 | "
            f"耗时: {duration:.2f}s | "
            f"Token: {response.usage.total_tokens}"
        )
        
        return response
        
    except Exception as e:
        # 记录失败调用
        duration = time.time() - start_time
        logger.error(
            f"API 调用失败 | "
            f"错误: {type(e).__name__} | "
            f"耗时: {duration:.2f}s | "
            f"消息: {str(e)[:100]}"
        )
        raise

八、实战演练:你的第一个 API 调用

8.1 环境准备

# 1. 安装 Python(如未安装)
# macOS: brew install python
# Windows: 从 python.org 下载安装

# 2. 创建项目目录
mkdir my-first-api-project
cd my-first-api-project

# 3. 创建虚拟环境
python -m venv venv
source venv/bin/activate  # macOS/Linux
# venv\Scripts\activate  # Windows

# 4. 安装依赖
pip install openai python-dotenv requests

8.2 创建第一个程序

步骤1:创建 .env 文件

# .env
OPENAI_API_KEY=sk-your-actual-key-here

步骤2:创建 main.py

# main.py
import os
from dotenv import load_dotenv
from openai import OpenAI

# 加载环境变量
load_dotenv()

# 初始化客户端
client = OpenAI()

def chat(message: str) -> str:
    """发送消息并获取回复"""
    try:
        response = client.chat.completions.create(
            model="gpt-4o-mini",  # 使用便宜的模型
            messages=[{"role": "user", "content": message}]
        )
        return response.choices[0].message.content
    except Exception as e:
        return f"错误: {e}"

# 主程序
if __name__ == "__main__":
    print("🤖 AI 聊天机器人(输入 'quit' 退出)")
    print("-" * 40)
    
    while True:
        user_input = input("你: ").strip()
        
        if user_input.lower() == 'quit':
            print("再见!")
            break
        
        if not user_input:
            continue
        
        print("AI: ", end="")
        response = chat(user_input)
        print(response)

步骤3:运行程序

python main.py

# 输出示例:
# 🤖 AI 聊天机器人(输入 'quit' 退出)
# ----------------------------------------
# 你: 你好
# AI: 你好!很高兴见到你。有什么我可以帮助你的吗?
# 你: 今天天气怎么样?
# AI: 抱歉,我无法获取实时天气信息...
# 你: quit
# 再见!

8.3 进阶:多轮对话

# chat_history.py
from openai import OpenAI

client = OpenAI()

class ChatSession:
    """带历史记录的聊天会话"""
    
    def __init__(self, system_prompt="你是一个友好的助手"):
        self.messages = [
            {"role": "system", "content": system_prompt}
        ]
    
    def chat(self, user_input: str) -> str:
        """发送消息并保持历史"""
        # 添加用户消息
        self.messages.append({
            "role": "user",
            "content": user_input
        })
        
        # 调用 API
        response = client.chat.completions.create(
            model="gpt-4o-mini",
            messages=self.messages
        )
        
        # 获取 AI 回复
        assistant_message = response.choices[0].message.content
        
        # 添加到历史
        self.messages.append({
            "role": "assistant",
            "content": assistant_message
        })
        
        return assistant_message
    
    def clear_history(self):
        """清空历史(保留 system prompt)"""
        self.messages = [self.messages[0]]
    
    def get_history(self):
        """获取对话历史"""
        return self.messages.copy()

# 使用
session = ChatSession("你是一个专业的Python老师")
print(session.chat("什么是装饰器?"))
print(session.chat("给我举个例子"))  # AI 会记住上下文
print(session.chat("有什么注意事项?"))

九、常见问题 FAQ

Q1: API Key 和 ChatGPT 账号密码一样吗?

不一样

  • ChatGPT 账号:登录网页版用
  • API Key:程序调用用

ChatGPT Plus 订阅和 API 是分开计费的,订阅了 Plus 不代表 API 有免费额度。

Q2: 为什么我的 API 调用报 401 错误?

可能的原因:

  1. API Key 拼写错误(复制时多了空格)
  2. API Key 过期或被删除
  3. 环境变量没设置对
  4. 账户余额不足(新账户需要充值)

Q3: 请求太多会怎么样?

会触发 429 错误(Too Many Requests)。解决方案:

  1. 实现重试机制(指数退避)
  2. 降低请求频率
  3. 升级套餐(提高限额)

Q4: API 调用有延迟怎么办?

正常情况下 OpenAI API 响应时间是 1-10 秒:

  • 简单问题:1-3 秒
  • 复杂推理:5-15 秒
  • 长文本生成:可能更长

如果超时,可以:

  1. 设置更长的 timeout(默认 10 分钟)
  2. 使用流式输出(stream=True)
  3. 换一个区域(如果网络不好)

Q5: 如何知道我花了多少钱?

# 查看最近 30 天用量
response = client.usage.list(
    start_date="2026-03-18",
    end_date="2026-04-18"
)

for day in response.data:
    print(f"{day.date}: {day.total_tokens} tokens, ${day.total_cost}")

或者在 Dashboard → Usage 查看可视化图表。


本篇要点总结

概念核心要点
API程序之间的”对话规则”,像餐厅点餐系统
HTTP互联网通信协议,GET 获取,POST 发送
请求结构URL + Method + Headers + Body
状态码2xx 成功,4xx 你的问题,5xx 服务器问题
API Key你的会员卡,必须保密!用环境变量存储
认证方式Bearer Token 是行业标准
调试工具Postman(图形)、curl(命令行)、requests(Python)
错误处理捕获异常 + 重试策略 + 日志记录

实战练习

练习1:用 curl 调用 OpenAI API

# 将 YOUR_API_KEY 替换为你的实际 Key
curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "user", "content": "用一句话介绍Python"}]
  }'

练习2:用 Python 实现简单聊天

from openai import OpenAI
client = OpenAI()

while True:
    msg = input("你: ")
    if msg == "quit":
        break
    
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": msg}]
    )
    print("AI:", response.choices[0].message.content)

练习3:计算调用成本

# 1000 字输入 + 500 字输出,用 gpt-4o-mini
# 成本是多少?

input_tokens = 1000
output_tokens = 500
model = "gpt-4o-mini"  # $0.15/$0.6 per 1M tokens

cost = (1000 * 0.15 + 500 * 0.6) / 1_000_000
print(f"成本: ${cost:.6f}")  # 约 $0.00045

下篇预告

下一篇文章《OpenAI API快速入门》,我们将深入:

  • 如何注册 OpenAI 账号并获取 API Key
  • Chat Completions API 的详细参数
  • temperature、max_tokens 等参数的调优技巧
  • Python SDK 的完整用法
  • 多轮对话的实现

本系列文章

  1. ✅ 本篇:API基础与认证
  2. 📝 下一篇:OpenAI API快速入门
  3. DeepSeek API实战
  4. ChatGLM/智谱API
  5. 流式输出与错误处理
  6. 成本优化与配额管理
  7. 多模型切换与负载均衡
  8. 实战项目 - AI聊天机器人

参考资料

💬 评论区

返回文章列表