SDK 示例

AI 摘要

所有示例都使用 {PUBLIC_BASE_URL} 和环境变量 TOKENPOSTIE_API_KEY。正式调用前先执行 GET /v1/models,把返回的模型 id 放入对应请求的 model 字段。

环境变量

export TOKENPOSTIE_BASE_URL="{PUBLIC_BASE_URL}"
export TOKENPOSTIE_API_KEY="tp_your_api_key"
export TOKENPOSTIE_MODEL="model_from_models_api"

模型发现

curl "$TOKENPOSTIE_BASE_URL/v1/models" \
  -H "Authorization: Bearer $TOKENPOSTIE_API_KEY"

Chat Completions

curl

curl -X POST "$TOKENPOSTIE_BASE_URL/v1/chat/completions" \
  -H "Authorization: Bearer $TOKENPOSTIE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "'"$TOKENPOSTIE_MODEL"'",
    "messages": [
      { "role": "user", "content": "请用一句话介绍 TokenPostie" }
    ]
  }'

JavaScript

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.TOKENPOSTIE_API_KEY,
  baseURL: `${process.env.TOKENPOSTIE_BASE_URL}/v1`
});

const response = await client.chat.completions.create({
  model: process.env.TOKENPOSTIE_MODEL,
  messages: [{ role: "user", content: "请用一句话介绍 TokenPostie" }]
});

console.log(response.choices[0]?.message?.content);

Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["TOKENPOSTIE_API_KEY"],
    base_url=f"{os.environ['TOKENPOSTIE_BASE_URL']}/v1",
)

response = client.chat.completions.create(
    model=os.environ["TOKENPOSTIE_MODEL"],
    messages=[{"role": "user", "content": "请用一句话介绍 TokenPostie"}],
)

print(response.choices[0].message.content)

Responses

JavaScript

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.TOKENPOSTIE_API_KEY,
  baseURL: `${process.env.TOKENPOSTIE_BASE_URL}/v1`
});

const response = await client.responses.create({
  model: process.env.TOKENPOSTIE_MODEL,
  input: "请用一句话介绍 TokenPostie",
  store: false
});

console.log(response.output_text);

Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["TOKENPOSTIE_API_KEY"],
    base_url=f"{os.environ['TOKENPOSTIE_BASE_URL']}/v1",
)

response = client.responses.create(
    model=os.environ["TOKENPOSTIE_MODEL"],
    input="请用一句话介绍 TokenPostie",
    store=False,
)

print(response.output_text)

Embeddings

curl -X POST "$TOKENPOSTIE_BASE_URL/v1/embeddings" \
  -H "Authorization: Bearer $TOKENPOSTIE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "'"$TOKENPOSTIE_MODEL"'",
    "input": "TokenPostie embedding smoke test",
    "encoding_format": "float"
  }'

Rerank

curl -X POST "$TOKENPOSTIE_BASE_URL/v1/rerank" \
  -H "Authorization: Bearer $TOKENPOSTIE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "'"$TOKENPOSTIE_MODEL"'",
    "query": "model routing",
    "documents": [
      "TokenPostie routes model calls.",
      "Billing must stay deterministic."
    ],
    "top_n": 1
  }'

Anthropic Messages

curl -X POST "$TOKENPOSTIE_BASE_URL/v1/messages" \
  -H "x-api-key: $TOKENPOSTIE_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "'"$TOKENPOSTIE_MODEL"'",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": [
          { "type": "text", "text": "请用一句话介绍 TokenPostie" }
        ]
      }
    ]
  }'

排障

  • 返回 model_not_foundmodel_access_denied 时,先重新调用 GET /v1/models
  • 返回 rate_limit_exceeded 时,按响应头或客户控制台展示的限额降速。
  • 返回 insufficient_quotacredit_limit_exceeded 时,检查余额、授信或付款状态。
  • 反馈问题时复制请求 ID,不要复制完整 API Key。

相关文档