第 1 课
拿密钥并发出第一次文本对话
拿到 API 密钥,用 OpenAI Python SDK 或 cURL 调用 step-5-preview,并读出 choices[0].message.content。
学习位置仅保存在当前浏览器,有效期 180 天。
图文讲义
拿密钥并发出第一次文本对话
本课按 StepFun 官方 Quickstart 与 Step 5 Preview 模型文档整理,目标是:拿到 API 密钥,用 OpenAI Python SDK 或 cURL 成功调用
step-5-preview,并读出choices[0].message.content。
主要来源:Quickstart · Step 5 Preview · Pricing · 产品页
你将得到什么
- 正确的模型 ID:
step-5-preview - 可复制的 Python(OpenAI SDK)与 cURL 文本对话示例
- 成功响应里该看哪个字段(
choices[0].message.content) - 当前官方标价对照(按 token 计费)
课前准备
- 准备一台能跑 Python 3 或
curl的电脑。 - 注册并登录 StepFun Open Platform,在 Interface Keys 页面创建并复制 API Key。
下文一律用占位符YOUR_STEP_API_KEY(官方文档同款),不要把真密钥写进仓库或截图外传。 - 可选:先设环境变量,后面示例更干净:
export STEPFUN_API_KEY="YOUR_STEP_API_KEY"
官方说明:YOUR_STEP_API_KEY 是占位符;STEP_API_KEY / STEPFUN_API_KEY 是示例里的变量名。同一段示例里变量名保持一致即可。
一、先认识 Step 5 Preview(对照结果)
官方模型页与产品页要点(2026-10 核验):
| 项 | 值 |
|---|---|
| Model ID | step-5-preview |
| 定位 | 旗舰 Agent / 软件工程与专业知识工作(金融偏强) |
| 架构(产品页) | 稀疏 MoE:总参 600B,每 token 激活约 27B |
| 上下文窗口 | 1M tokens |
| 输入 | 文本、图片、视频 |
| 输出 | 文本(最大输出 64k tokens) |
| 开源权重计划 | 产品页写明:计划于 2026-10-15 开放权重 |
定价(官方 Pricing,单位:每 1M tokens):
| 计费项 | 价格 |
|---|---|
| 输入(cache miss) | $1.00 |
| 输入(cache hit) | $0.10 |
| 输出 | $2.70 |
说明:对 step-5-preview,cache-miss 输入价已包含把新内容写入缓存;输出 token 含推理过程与最终答案。以 Pricing and Rate Limits 为准。
API 接入要点:
| 项 | 值 |
|---|---|
| Base URL | https://api.stepfun.ai/v1 |
| 协议风格 | OpenAI 兼容 Chat Completions |
| Python SDK | openai(base_url 指向上面) |
二、安装依赖
官方 Quickstart 要求使用 OpenAI SDK(openai>=1.0)。
macOS / Linux:
python3 -m pip install --upgrade "openai>=1.0"
Windows:
py -m pip install --upgrade "openai>=1.0"
对照结果: 终端无报错;可执行 python3 -c "import openai; print(openai.__version__)",应打印 1.x 或更高版本号。
三、动手:Python 文本对话
下面整段可直接复制。把 YOUR_STEP_API_KEY 换成你的密钥(或改用环境变量读取)。模型 ID 已固定为官方表中的 step-5-preview。
from openai import OpenAI
client = OpenAI(
api_key="YOUR_STEP_API_KEY",
base_url="https://api.stepfun.ai/v1",
)
response = client.chat.completions.create(
model="step-5-preview",
messages=[
{"role": "user", "content": "Hello, please introduce yourself in one sentence."}
],
)
print(response.choices[0].message.content)
若你已 export STEPFUN_API_KEY=...,可把 api_key= 改成:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["STEPFUN_API_KEY"],
base_url="https://api.stepfun.ai/v1",
)
对照结果(成功时你会看到):
- 进程正常退出(无
AuthenticationError/NotFoundError) - 终端打印一行(或几行)助手回复文本,例如自我介绍
- 在调试器或
print(response)里可见:response.choices[0].message.role == "assistant",正文在response.choices[0].message.content
官方非流式响应形状示意(字段名与 Quickstart「Read the response」一致):
{
"model": "step-5-preview",
"choices": [
{
"message": {
"role": "assistant",
"content": "The model's response"
},
"finish_reason": "stop"
}
]
}
完整响应还会带 request ID、token usage 等字段;细节见官方 Chat Completions API 参考。失败时根据返回错误信息查错误码文档。
四、动手:同一请求的 cURL 版
不装 SDK 也可以先冒烟:
curl https://api.stepfun.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_STEP_API_KEY" \
-d '{
"model": "step-5-preview",
"messages": [
{
"role": "user",
"content": "Hello, please introduce yourself in one sentence."
}
]
}'
若用了环境变量:
curl https://api.stepfun.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $STEPFUN_API_KEY" \
-d '{
"model": "step-5-preview",
"messages": [
{
"role": "user",
"content": "Hello, please introduce yourself in one sentence."
}
]
}'
对照结果:
- HTTP 200
- JSON 中
model为step-5-preview(或平台返回的等价标识) - 助手正文在
choices[0].message.content choices[0].finish_reason常见为"stop"
可用 jq 快速抽正文(可选):
# 把上一节 curl 的输出接到管道
# ... | jq -r '.choices[0].message.content'
五、本课自检清单
发请求前过一遍:
- 密钥来自 Open Platform「Interface Keys」,示例里仍是占位符或环境变量,没有硬编码进公开仓库
-
base_url是https://api.stepfun.ai/v1(不要漏/v1) -
model已是step-5-preview(不是别的 flash 型号) - 读结果用的是
choices[0].message.content,不是 Anthropic Messages 那套content[].text - 计费预期按官方表:输入 cache-miss $1.00 / cache-hit $0.10 / 输出 $2.70(每 1M tokens)
下一课预告
下一课继续:用同一模型发 image_url 与 video_url 多模态请求,并核对格式与大小限制。
