#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_found或model_access_denied时,先重新调用GET /v1/models。 - 返回
rate_limit_exceeded时,按响应头或客户控制台展示的限额降速。 - 返回
insufficient_quota或credit_limit_exceeded时,检查余额、授信或付款状态。 - 反馈问题时复制请求 ID,不要复制完整 API Key。