你是不是也想过:我不想一直对着网页聊天框打字,能不能让我的小程序直接「调用 AI」?答案就是「大模型 API」。它相当于把 AI 能力装进一个网址接口,你的 Python 程序发个请求,AI 就把回答传回来。本教程从零开始,照着做,十几分钟就能跑通第一个会调用 AI 的脚本。
先搞懂:网页聊天 和 API 调用 有什么区别?
网页聊天是「人看界面、手动打字」;API 调用是「程序发请求、自动拿结果」。一旦你能用代码调 AI,就能把它塞进任何地方:自动写日报、批量处理文件、做机器人、接自己的网站……API 是把 AI 从「玩具」变成「零件」的关键一步。
| 方式 | 谁在操作 | 适合场景 |
|---|---|---|
| 网页聊天 | 人 | 临时问问题、随手聊 |
| API 调用 | 程序 | 自动化、批量、嵌入产品 |
Step 1:申请一个 API Key(以 DeepSeek 为例)
国内模型注册简单、有免费额度,新手首选。这里用 DeepSeek 演示,通义千问 / OpenAI 步骤几乎一样。
1. 打开平台.deepseek.com(或百度云百炼、platform.openai.com)
2. 注册登录,进入「API Keys / 接口密钥」
3. 点「创建密钥」,复制那串 sk-xxxxxxxx
4. 首次使用建议充值 10 元(DeepSeek 很便宜,练手完全够)
API Key 就是家门钥匙:谁拿到都能用你的账户花钱。务必只存在自己电脑的环境变量里,不要截图发群、不要写进会公开分享的代码。
Step 2:装好 Python 环境
DeepSeek 的接口「兼容 OpenAI 格式」,所以你不用装专用 SDK,直接用 OpenAI 的官方库即可,换个地址就能用。
# 确认 Python 版本(需要 3.9 及以上)
python --version
# 安装 OpenAI 官方 SDK
pip install openai
Step 3:三行代码跑通第一次对话
新建文件 hello_ai.py,把下面代码粘进去。注意把 Key 换成你自己的,更稳妥的做法是用环境变量(见提示)。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("DEEPSEEK_API_KEY"), # 或直写 "sk-你的key"
base_url="https://api.deepseek.com", # DeepSeek 的兼容地址
)
resp = client.chat.completions.create(
model="deepseek-chat", # 稳定版对话模型
messages=[{"role": "user", "content": "用一句话解释什么是 RAG"}],
)
print(resp.choices[0].message.content)
export DEEPSEEK_API_KEY=sk-你的key(Windows 用 set)。能打印出回答,说明鉴权与网络都通了。Step 4:让回复「打字机」式流式输出
默认是一次返回整段。想体验「流式」,把 stream 设为 True,再循环把片段拼出来:
stream = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "给我讲个关于数据库的比喻"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content or ""
print(delta, end="", flush=True)
Step 5:做一个带「记忆」的命令行小助手
多轮对话的秘诀是:把历史消息攒在一个列表里,每轮都一起发给模型。下面是个能一直聊下去的迷你助手:
messages = [{"role": "system", "content": "你是一个耐心的编程助手"}]
while True:
q = input("\n你: ")
if q.lower() in ("exit", "quit"):
break
messages.append({"role": "user", "content": q})
r = client.chat.completions.create(model="deepseek-chat", messages=messages)
a = r.choices[0].message.content
print("AI:", a)
messages.append({"role": "assistant", "content": a}) # 把回答也存进历史
历史越长越费钱也越慢:真实项目里要给历史「瘦身」(只保留最近 N 轮,或把早期内容总结压缩),别无限累加。
Step 6:顺手换成其它模型
同一个 SDK,换 base_url + model 就能换大脑。常见可选项:
# 通义千问(阿里)
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
model="qwen-plus"
# OpenAI
base_url="https://api.openai.com/v1"
model="gpt-4o-mini"
# DeepSeek 新版(如 deepseek-v4-flash 等,以官方文档为准)
model="deepseek-v4-flash"
常见问题速查
| 现象 | 大概率原因 & 解决 |
|---|---|
| 报错 401 / authentication | Key 填错、过期,或环境变量没生效 |
| 报错 404 / model not found | model 名称写错,对照官方文档核对 |
| 一直连不上 | 网络/代理问题;确认能访问 api.deepseek.com |
| 回答很贵/很慢 | 历史太长,或用了高价模型,按需精简 |