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,直接把“大模型平民化”从口号变成事实:
维度 | GPT-OSS-20B | GPT-OSS-120B | 备注 |
---|---|---|---|
参数量 | 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_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 秒压力测试
并发 | 模型 | 首 token 延迟 | 成功率 | 成本 (1K in/out) |
---|---|---|---|---|
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大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- 使用Python进行API调用:面向开发人员的分步指南
- Go工程化(五) API 设计下: 基于 protobuf 自动生成 gin 代码
- Python调用股票API获取实时数据
- API在量子计算中的作用
- API请求 – 什么是API请求?
- 给初学者的RESTful API 安全设计指南!
- 如何在 Facebook Developers 上设置 WhatsApp Cloud API
- 支付网关API如何支持小型企业?
- Python调用免费翻译API实现Excel文件批量翻译
- 为开源项目 go-gin-api 增加 WebSocket 模块
- AI编程的风险,如何毁掉你的 API?
- 使用预约调度API的运输管理