OpenAI OSS Python 快速上手指南:GPT-OSS-120B 与 GPT-OSS-20B 接入实战
作者:article01 · 2025-08-18 · 阅读时间:6分钟
GPT-OSS Python API 密钥
GPT-OSS Python Docker
GPT-OSS Python FastAPI
GPT-OSS Python SDK
GPT-OSS Python 云端调用
OpenAI OSS Python
文章目录
一句话总结:十分钟、一杯奶茶的功夫,让 120B 参数巨兽与 20B 轻量快刀同时在你电脑上咆哮,Python 代码不超过 30 行。
🌌 为什么必须现在上车 OpenAI OSS?
2025 年 8 月 6 日,OpenAI 重返开源战场,一次性甩出 Apache 2.0 许可的 GPT-OSS-120B 与 GPT-OSS-20B,直接把“大模型平民化”从口号变成事实:
| — | ||||||||
|---|---|---|---|---|---|---|---|---|
| 参数量 | 21 B | 117 B | MoE,仅 3.6-5.1 B 活跃 | |||||
| 上下文 | 128 K | 128 K | 全开源最长之一 | |||||
| 本地显存 | 16 GB | 80 GB | RTX 4090 vs H100 | |||||
| 云端价格 | $0.05 / 1K in | $0.10 / 1K in | 比 GPT-4.1 便宜 5-10× | |||||
| 许可证 | Apache 2.0 | Apache 2.0 | 可商用、可微调 |
一句话:“闭源模型给答案,开源模型给自由。”
官方主页:openai.com/gpt-oss
🧭 全流程鸟瞰图

1️⃣ 30 秒搞定账号与密钥
| — | ||||||||
|---|---|---|---|---|---|---|---|---|
| Novita AI | 免翻墙、支付宝、120B 云端直调 | novita.ai | 1 万 token | |||||
| OpenRouter | 多模型路由、统一账单 | openrouter.ai | 1 美元 | |||||
| Ollama | 本地 16 GB 起、零延迟 | ollama.ai | ∞ |
以下示例以 Novita AI 为主,代码同样适用于 OpenRouter 与 Ollama,仅需替换 base_url 与 [api](https://www.explinks.com/wiki/api/)_key。
2️⃣ 60 秒拉起 20B 轻量版
2.1 Ollama 一键启动
curl -fsSL https://ollama.ai/install.sh | sh
ollama pull gpt-oss:20b
ollama serve &
2.2 Python 第一次调用
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama"# 本地无校验
)resp = client.chat.completions.create(
model="gpt-oss:20b",
messages=[{"role": "user", "content": "用三句话解释量子纠缠"}],
max_tokens=128,
temperature=0.1
)print(resp.choices[0].message.content)
输出:
量子纠缠是粒子间一种超越时空的关联;
改变一个粒子,另一个瞬时改变;
它是量子计算、量子通信的核心资源。
3️⃣ 60 秒拉起 120B 巨兽版
3.1 Novita AI 云端直调
from openai import OpenAI
client = OpenAI(
base_url="https://api.novita.ai/v3/openai",
api_key="sk-nov-你的key"
)resp = client.chat.completions.create(
model="openai/gpt-oss-120b",
messages=[{"role": "user", "content": "设计一个支持百万并发的 IM 系统"}],
max_tokens=2048,
temperature=0.3
)print(resp.choices[0].message.content)
输出包含完整的链式思维,可直接 Ctrl+C / Ctrl+V 进 PPT。
4️⃣ 60 秒流式打字机
stream = client.chat.completions.create(
model="gpt-oss:20b",
messages=[{"role": "user", "content": "写一首关于夏天的俳句"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
5️⃣ 60 秒函数调用
5.1 定义工具
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "查询城市天气",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"}
},
"required": ["city"]
}
}
}]
5.2 调用流程
resp = client.chat.completions.create(
model="gpt-oss-20b",
messages=[{"role": "user", "content": "北京天气如何?"}],
tools=tools,
tool_choice="auto"
)
tool_call = resp.choices[0].message.tool_calls[0]
if tool_call.function.name == "get_weather":
city = json.loads(tool_call.function.arguments)["city"]
result = get_weather(city)# 本地函数
6️⃣ 60 秒部署 FastAPI
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()class Prompt(BaseModel):
text: str@app.post("/chat")
def chat(p: Prompt):
resp = client.chat.completions.create(
model="openai/gpt-oss-20b",
messages=[{"role": "user", "content": p.text}],
max_tokens=512
)
return {"answer": resp.choices[0].message.content}
uvicorn main:app --reload
7️⃣ 60 秒压力测试
| — | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 20B 本地 | 0.8 s | 100 % | $0 | ||||||
| 10 | 20B 本地 | 1.1 s | 100 % | $0 | ||||||
| 100 | 120B 云端 | 2.3 s | 99.8 % | $0.10 / $0.50 |
测试环境:MacBook Pro M2 Max 32 GB vs 云 H100。
8️⃣ 本地微调(可选)
pip install transformers datasets peft
python -m gpt_oss.finetune gpt-oss-20b my_dataset.jsonl
9️⃣ 一键复制仓库
git clone https://github.com/yourname/gpt-oss-python-demo.git
cd gpt-oss-python-demo
pip install -r requirements.txt
python main.py
仓库包含:
-
20B / 120B 双模式
-
FastAPI 完整项目
-
Dockerfile & docker-compose
-
Prometheus Grafana 监控
-
🎉 写在最后
从 20B 的轻量利刃,到 120B 的推理巨兽,再到 Apache 2.0 的自由之翼,OpenAI OSS 让“大模型”第一次不再是巨头的专利,而是你我键盘下的日常工具。
下一次,当老板问你“这个功能 AI 能不能做”时,你可以微笑着回答:
“给我 30 秒,Python 搞定。”
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密