很多人学大模型卡在第一步:道理都懂,就是没亲手跑通过一次真实的 API 调用。这篇教程带你从零开始,用最少的步骤完成第一次对话,再逐步加上流式输出和多轮上下文。全程使用 OpenAI 兼容接口(国内外大多数服务都适用),语言为 Python。

前置准备

开始前确认三件事:

  • 一个 Python 3.8+ 环境,命令行输入 python --version 检查
  • 一个大模型服务的 API Key(如 OpenAI、DeepSeek、通义千问、Kimi 等)
  • 能正常访问该服务的网络

整体流程

一次 API 对话的完整链路如下,理解它能帮你看清后面每一步在做什么:

步骤一:获取并保存 API Key

  1. 登录所选服务商的控制台
  2. 找到「API Keys / 密钥管理」页面
  3. 点击「创建」,复制生成的 key(通常以 sk- 开头)
  4. 不要把 key 硬编码进代码或提交到 Git,用环境变量保存:
# Windows CMD
setx OPENAI_API_KEY "sk-你的密钥"

# macOS / Linux
export OPENAI_API_KEY="sk-你的密钥"

设置后需要重开一个终端,环境变量才会生效。

步骤二:安装 SDK

官方 SDK 封装了 HTTP 细节,安装只需一行:

pip install openai

如果调用的是兼容 OpenAI 协议的国产服务(如 DeepSeek),同样用这个库,后面只需改一个 base_url。

步骤三:发起第一次请求

新建文件 chat.py,写入以下代码:

import os
from openai import OpenAI

client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY"),
base_url="https://api.openai.com/v1", # 国产服务改成对应地址
)

resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "你是一个简洁的助手"},
{"role": "user", "content": "用一句话解释什么是大模型"},
],
temperature=0.7,
)

print(resp.choices[0].message.content)

在命令行运行:

python chat.py

预期输出类似:「大模型是用海量文本训练、能理解并生成自然语言的深度神经网络。」

步骤四:读懂响应结构

返回的 resp 是一个 JSON 对象,关键字段:

  • choices[0].message.content:模型回复的正文
  • choices[0].message.role:固定为 assistant
  • usage.prompt_tokens / completion_tokens:本次消耗的 token 数,用于估算费用
  • model:实际使用的模型名

步骤五:开启流式输出

默认要等全部生成完才返回,体验像”卡住”。加上 stream=True 可逐字返回:

stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "写一首关于春天的短诗"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)

步骤六:实现多轮对话

大模型本身是无状态的,多轮对话靠把历史消息一起传进去实现:

messages = [{"role": "system", "content": "你是一个助手"}]

def chat(user_input):
messages.append({"role": "user", "content": user_input})
resp = client.chat.completions.create(model="gpt-4o-mini", messages=messages)
answer = resp.choices[0].message.content
messages.append({"role": "assistant", "content": answer})
return answer

print(chat("我叫小明"))
print(chat("我叫什么名字?")) # 模型能答出"小明"

它的循环逻辑是:

常见问题排查

  • 401 报错:API Key 无效或环境变量没生效,重开终端再试
  • 连接超时:检查 base_url 是否正确、网络能否访问该服务
  • 回复被截断:调大 max_tokens 参数
  • 费用偏高:关注 usage 里的 token 数,长上下文很烧钱

小结

跑通第一次调用的关键就三步:拿到 key、装好 SDK、按 messages 格式发请求。掌握流式输出与多轮对话的拼接方式后,你就具备了接入大模型的全部基础——后续的 RAG、Agent、微调,都建立在这套调用之上。