使用教程发布于 2026-07-0512 分钟

10 分钟上手大模型 API:从注册到第一次调用

手把手教你接入 DeepSeek / 通义千问 API:注册、拿 Key、curl 验证、Python / Node.js 调用、流式输出、多轮对话、看懂 token 计费,附完整代码示例与错误排查表。

#API#教程#入门

很多开发者第一次接大模型 API 会卡在环境配置上。这篇教程以 DeepSeek 为例(通义千问 / 智谱 / OpenAI 兼容端点同理),带你 10 分钟跑通第一个请求。学完你将掌握:curl 验证、Python / Node.js 调用、流式输出、多轮对话,以及看懂 token 计费。

准备工作

  • 一个已注册的平台账号(本文以 DeepSeek 为例,通义千问 / 智谱 / 月之暗面流程一致)
  • Python 3.9+ 或 Node.js 18+(任选其一即可,curl 无需安装)
  • 支付方式:国内平台支持支付宝 / 微信;海外用户可用 OpenRouter 作为统一入口

完全不需要 GPU 或深度学习知识——调用大模型 API 和调用任何普通 HTTP 接口一模一样。

第一步:注册账号并获取 API Key

以 DeepSeek 为例:访问 platform.deepseek.com 注册账号,进入「API Keys」页面点击「创建新的 API Key」。请立刻复制保存——Key 只会完整显示一次,丢失只能重新生成。

安全第一原则:API Key 绝对不要提交到 Git 仓库,也不要写死在前端代码里。始终用环境变量引用它。

在 macOS / Linux 上,把 Key 写入环境变量:

# 写入环境变量(当前会话生效)
export DEEPSEEK_API_KEY="sk-你的实际密钥"

# 永久生效:追加到 ~/.zshrc 或 ~/.bashrc
echo 'export DEEPSEEK_API_KEY="sk-你的实际密钥"' >> ~/.zshrc
source ~/.zshrc

# 验证是否设置成功
echo $DEEPSEEK_API_KEY

第二步:用 curl 验证连通性

主流国产模型都提供 OpenAI 兼容接口,只需替换 base_url 和 api_key。用 curl 验证最快——能返回内容就说明 Key 有效:

curl https://api.deepseek.com/chat/completions \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-chat",
    "messages": [
      {"role": "user", "content": "用一句话介绍你自己"}
    ]
  }'

成功时会返回类似下面的结构。真正回复在 choices[0].message.content 里,usage 统计了本次消耗的 token,是计费依据:

{
  "id": "chatcmpl-xxx",
  "model": "deepseek-chat",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "你好,我是 DeepSeek……" },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 28,
    "total_tokens": 40
  }
}

第三步:用 Python 调用

推荐安装官方 OpenAI SDK。由于国产模型兼容 OpenAI 接口,只需把 base_url 指向国产平台即可:

pip install openai
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.deepseek.com",       # 国产平台端点
    api_key=os.getenv("DEEPSEEK_API_KEY"),     # 从环境变量读取,不要硬编码
)

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "你是一个简洁有帮助的助手"},
        {"role": "user", "content": "写一个判断质数的 Python 函数"},
    ],
    temperature=0.7,   # 0~2,越高越发散
)

print(response.choices[0].message.content)
print("本次消耗 token:", response.usage.total_tokens)

或者用 requests 直接调 HTTP 接口

import os
import requests

resp = requests.post(
    "https://api.deepseek.com/chat/completions",
    headers={"Authorization": f"Bearer {os.getenv('DEEPSEEK_API_KEY')}"},
    json={
        "model": "deepseek-chat",
        "messages": [{"role": "user", "content": "你好"}],
    },
    timeout=60,
)
print(resp.json()["choices"][0]["message"]["content"])

第四步:用 Node.js 调用

npm install openai
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://api.deepseek.com',
  apiKey: process.env.DEEPSEEK_API_KEY,
});

const response = await client.chat.completions.create({
  model: 'deepseek-chat',
  messages: [{ role: 'user', content: '用三句话写一个 FastAPI 的 hello world' }],
});

console.log(response.choices[0].message.content);

第五步:流式输出(打字机效果)

长回复如果等全部生成再返回,体验会很卡顿。设置 stream=True 后,可以逐 token 边生成边接收,像 ChatGPT 一样的打字机效果:

stream = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{"role": "user", "content": "写一篇 200 字关于春天的短文"}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)  # 逐步打印

第六步:多轮对话

大模型 API 是无状态的——服务器不会记住上一轮。要实现多轮对话,需要每次把完整历史发过去,即不断追加 messages 数组:

messages = [{"role": "system", "content": "你是一个耐心的编程导师"}]

def chat(user_input: str) -> str:
    messages.append({"role": "user", "content": user_input})
    response = client.chat.completions.create(model="deepseek-chat", messages=messages)
    reply = response.choices[0].message.content
    messages.append({"role": "assistant", "content": reply})  # 把回复写回历史
    return reply

print(chat("什么是闭包?"))
print(chat("举个例子"))  # 模型能理解「例子」指的是闭包的例子
对话太长时,token 会越积越多甚至超出上下文窗口。生产环境通常只保留最近 N 轮,或定期把历史总结成摘要。

看懂计费:token 是货币单位

大模型按 token 计费(1 个汉字约 1~2 token,1 个英文单词约 1.3 token)。输入和输出分开计价,输出通常比输入贵 2~4 倍。以 DeepSeek V4 为例:

项目价格(每百万 token)上面那次 40 token 的调用
输入(prompt_tokens)¥312 token ≈ ¥0.000036
输出(completion_tokens)¥628 token ≈ ¥0.000168
缓存命中¥0.025重复上下文可降至 1/100 成本

折算下来,一次普通对话花费不到千分之一元。但高并发下成本会快速累积——这正是缓存和模型选择的意义。可以用本图鉴的省钱计算器,代入你的实际流量估算月度开销。

常见错误排查

报错原因解决
401 UnauthorizedKey 错误、过期或未加 Bearer 前缀检查 Key 完整、请求头为 Bearer sk-...
402 / 余额不足账户余额不足充值或新建 Key
429 Too Many Requests触发并发或频率限流降并发、加指数退避重试,或申请提额
model not found模型名拼写错误注意区分 deepseek-chat 与 deepseek-reasoner
context length exceeded输入超出上下文窗口裁剪历史,或换长上下文模型
timeout网络或生成过慢增大 timeout,或改用流式输出

下一步

  • 函数调用(Function Calling):让模型调用你的接口,构建真正的 Agent
  • RAG 检索增强:接入向量数据库,让模型基于你的私有知识库回答
  • Prompt 工程:用本站的 Prompt 模板库快速试用高质量提示词
  • 模型选型:用模型筛选器按场景 / 预算 / 合规挑选替代方案,再用省钱计算器核算成本

跑通之后,记得把 Key 放进环境变量,切勿硬编码进代码仓库。你已经跨过了大模型应用开发的门槛,剩下的只是在这个基础上叠加功能。