iG iGetoken

用 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见平台页
Groqhttps://api.groq.com/openai/v1见平台页
OpenRouterhttps://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 条样本估算单条消耗,再乘总量。

下一步

本文只讲方法与口径,不保证任何具体额度长期有效——文中提到的平台请以 资源库平台页 为准,每页都标注了核实日期。

还没开始?从 《领取第一个免费 Key》 读起。担心踩坑,先看 避坑指南。