快速开始

完成一次调用,核对费用与调用记录。

用一个云 API Key 调用 deepseek-flash,读取实付费用,再找到同一次调用的记录。示例会产生少量费用。

1. 准备 Key 与终端

在控制台 → API Keys点击「创建 Key」,填写名称并创建,将 Key 安全注入当前终端的 PRAXIS_API_KEY 环境变量。不要写入代码或日志。已有 Key 可直接使用。

准备 Python 3.10+ 和 uv,在 macOS / Linux 终端执行:

test -n "${PRAXIS_API_KEY:-}"

期望:退出码 0;退出码 1 表示变量未设置,先设置再继续。示例默认使用 https://api.deepraxis.ai;切换环境时,将 PRAXIS_API_BASE 设为对应 API 域名,不带末尾斜杠或 API 路径。

2. 发出请求并读取费用

保存为 quickstart.py,在该文件所在目录执行 uv run -q --no-project --with openai --with anthropic --with google-genai python quickstart.py。

import json
import os
from pathlib import Path
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["PRAXIS_API_KEY"],
    base_url=os.environ.get("PRAXIS_API_BASE", "https://api.deepraxis.ai") + "/openai/v1",
    timeout=90.0,
    max_retries=0,
)
raw = client.chat.completions.with_raw_response.create(
    model="deepseek-flash",
    messages=[{"role": "user", "content": "Reply with exactly: Hello Praxis."}],
    max_tokens=256,
)
reply = raw.parse()
usage = reply.usage.model_dump()
request_id = raw.headers.get("x-request-id")
generation_id = raw.headers.get("x-praxis-generation-id")
assert raw.status_code == 200 and reply.choices[0].message.content
assert request_id and generation_id
assert isinstance(usage.get("cost"), (int, float)) and usage["cost"] >= 0
print(reply.choices[0].message.content)
print("usage:", usage)
print("X-Request-Id:", request_id)
print("X-Praxis-Generation-Id:", generation_id)
Path("quickstart-result.json").write_text(json.dumps({
    "request_id": request_id, "generation_id": generation_id, "cost": usage["cost"],
}))

期望:退出码 0,输出非空回答(通常为 Hello Praxis.)、usage 和两个 ID,并生成 quickstart-result.json。该文件只保存本次调用的 ID 与费用,不含 Key。

usage 包含输入和输出 token 数;usage.cost 是本次实付美元金额,不是每百万 token 的单价。不要把缺失费用当成零。字段定义见 Chat Completions API。

3. 找到这次调用

打开控制台 → 模型 → 调用日志。在「按 X-Request-Id / Generation ID 查找」输入框粘贴上一步的 X-Request-Id,按 Enter。此路径与控件名核对于 2026-10-13 的 Console。

期望:出现模型为 deepseek-flash 的本次调用,可查看状态、用量与费用。记录可能延迟几秒;使用与 Key 相同的账号及环境,并确保时间范围包含刚才的调用。

不使用浏览器时,可用下面的等价硬验证。保存为 verify-generation.py,在同一目录执行 uv run -q --no-project --with openai --with anthropic --with google-genai python verify-generation.py。

import json
import os
import time
from decimal import Decimal
from pathlib import Path
import httpx

saved = json.loads(Path("quickstart-result.json").read_text())
base = os.environ.get("PRAXIS_API_BASE", "https://api.deepraxis.ai")
with httpx.Client(timeout=60.0) as client:
    for attempt in range(10):
        response = client.get(
            base + "/model/v1/generation",
            params={"id": saved["generation_id"]},
            headers={"Authorization": "Bearer " + os.environ["PRAXIS_API_KEY"]},
        )
        if response.status_code != 404:
            break
        time.sleep(3)
    response.raise_for_status()
    record = response.json()
    assert record["id"] == saved["generation_id"]
    assert record["model"] == "deepseek-flash"
    assert abs(Decimal(str(record["cost"])) - Decimal(str(saved["cost"]))) <= Decimal("0.0000005")
    print("Verified generation:", record["id"])
    print("cost:", record["cost"])
    print("X-Request-Id:", response.headers.get("x-request-id"))

期望:退出码 0,输出 Verified generation 和按美元六位小数记录的费用;脚本允许相应舍入差异。查询使用 X-Praxis-Generation-Id,不是 X-Request-Id 或响应正文的 id;详见生成记录 API。

失败分支

  • 404 查询记录:记录尚未可查时,脚本每 3 秒重试,最多 10 次;仍失败则保留两个 ID,检查 Key、环境及生成 ID 是否来自同一次调用,再查询。
  • Model "gpt-4o" does not exist.:模型 ID 不自动映射;使用本页的 deepseek-flash 或目录中的 ID。

接下来可使用流式响应或工具调用。

API 参考 → · Cookbook →

导出

本页内容