第 1 课

拿密钥并发出第一次文本对话

拿到 API 密钥,用 OpenAI Python SDK 或 cURL 调用 step-5-preview,并读出 choices[0].message.content。

图文20 分钟

课程目录第 1 / 2 课

学习位置仅保存在当前浏览器,有效期 180 天。

01 / 图文教材

图文讲义

拿密钥并发出第一次文本对话

本课按 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 计费)

课前准备

  1. 准备一台能跑 Python 3 或 curl 的电脑。
  2. 注册并登录 StepFun Open Platform,在 Interface Keys 页面创建并复制 API Key。
    下文一律用占位符 YOUR_STEP_API_KEY(官方文档同款),不要把真密钥写进仓库或截图外传。
  3. 可选:先设环境变量,后面示例更干净:
export STEPFUN_API_KEY="YOUR_STEP_API_KEY"

官方说明:YOUR_STEP_API_KEY 是占位符;STEP_API_KEY / STEPFUN_API_KEY 是示例里的变量名。同一段示例里变量名保持一致即可。

一、先认识 Step 5 Preview(对照结果)

官方模型页与产品页要点(2026-10 核验):

项值
Model IDstep-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 URLhttps://api.stepfun.ai/v1
协议风格OpenAI 兼容 Chat Completions
Python SDKopenai(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 多模态请求,并核对格式与大小限制。