用 Python 三行代码调用免费大模型
更新于 2026-09-15 Python进阶玩法
好消息是:2026 年了,主流大模型平台几乎全部兼容 OpenAI 接口格式。这意味着你只需要学一种写法,就能调用本站收录的所有平台——切换平台只是换个 base_url 的事。
本文只写代码结构与口径,不写死额度——具体额度、有效期限以资源库对应平台页为准(每页都标了核实日期)。
准备工作
pip install openai
以智谱的永久免费模型 glm-4-flash 为例(先去 bigmodel.cn 领一个 API Key)。
核心代码
from openai import OpenAI
import os
client = OpenAI(
api_key=os.environ["ZHIPU_API_KEY"], # Key 用环境变量,别写死在代码里
base_url="https://open.bigmodel.cn/api/paas/v4",
)
resp = client.chat.completions.create(
model="glm-4-flash", # 永久免费模型
messages=[{"role": "user", "content": "用一句话介绍你自己"}],
)
print(resp.choices[0].message.content)
就这么多。base_url + model 一换,同一套代码就能跑在别的平台上:
| 平台 | base_url | 免费模型示例 |
|---|---|---|
| 智谱 | https://open.bigmodel.cn/api/paas/v4 | 见平台页 |
| 硅基流动 | https://api.siliconflow.cn/v1 | 见平台页 |
| Groq | https://api.groq.com/openai/v1 | 见平台页 |
| OpenRouter | https://openrouter.ai/api/v1 | 带 :free 后缀的模型 |
base_url比较稳定,但模型 ID 变化频繁(新模型上线、旧模型下架),所以这里不写死模型名——去平台页复制当前的示例模型,大小写和斜杠都别改。
三个实战建议
1. Key 一律走环境变量。 Windows 用 setx,macOS/Linux 写进 ~/.zshrc。永远不要把 Key 提交到 GitHub——历史提交删了也能被翻出来。
2. 处理限流。 免费层撞到速率限制会返回 429,加个简单的重试:
import time
def ask(client, prompt, retries=3):
for i in range(retries):
try:
return client.chat.completions.create(
model="glm-4-flash",
messages=[{"role": "user", "content": prompt}],
).choices[0].message.content
except Exception as e:
if i == retries - 1:
raise
time.sleep(2 ** i) # 指数退避:2s、4s、8s
这是最简版。生产环境别这么写——「所有异常都重试」会把参数错误也重试三遍,白白浪费配额。完整的分流逻辑(哪些该重试、哪些该直接失败)见《大模型 API 报错排查手册》。
3. 控制成本心算。 免费额度也是钱:多轮对话会把历史消息整体重新计费,跑批量任务前先用 10 条样本估算单条消耗,再乘总量。
下一步
- 想把多个免费平台串起来做故障转移?看 《多模型 Fallback 实战》
- 想让模型回答你自己的文档?看 《RAG 最小实现》
- 接口报错看不懂?看 《大模型 API 报错排查手册》
- 平台怎么挑?看 《2026 免费 API 平台怎么选》
- 具体平台的额度与
base_url→ 资源库
本文只讲方法与口径,不保证任何具体额度长期有效——文中提到的平台请以 资源库平台页 为准,每页都标注了核实日期。
还没开始?从 《领取第一个免费 Key》 读起。担心踩坑,先看 避坑指南。