候補を見つける
公開カタログから新規・変更・未評価の候補を優先。費用上限内に収まる候補を日次で比較します。
モデル名を追いかける手間を減らすために。teai Autoは、新しい候補を比較し、条件を満たした用途から少しずつ選択先を更新します。
2026-09-21 · teai Engineering確認中 / Loading
| モデル | 正答 / 実行 / 予定 | p95 | 費用推計 |
|---|
ここには公開APIの状態を表示します。APIの表示だけでは定期ジョブや実際のモデル応答の成功を保証しません。
これまでのAutoは、主力・軽量といった固定の選択先を中心に動いていました。今回追加するのは、候補の発見から比較、段階導入、復帰までを繰り返す仕組みです。新しさだけで切り替えず、品質条件を満たしたうえで費用または待ち時間の改善を確認します。
公開カタログから新規・変更・未評価の候補を優先。費用上限内に収まる候補を日次で比較します。
日本語・英語の合成課題で現行と候補を交互に実行。選抜12件・別の値を使う検証12件の全件正答と、費用・速度の条件を求めます。
適用割合は10%→50%→100%。次の段階へ進む前に追加比較し、条件未達なら復帰。7日以内に再評価されない設定も期限切れになります。
初期の更新対象は、JSONだけで回答する情報抽出・明示された事務規則の適用・基本的な計算です。Jevが対象用途だと高い確信で判定した、300〜4,000文字の単発テキストに限定します。会話履歴・システム指示・ツール・画像がある場合や、分類できない場合は従来のAuto経路を使います。
運営側の追加評価予算は月3,000円。呼び出す前に費用枠を永続保存し、通信が途切れた場合も予約を取り消さず、同じ呼び出しを再実行しません。1日300円まで、UTC月単位で管理します。通常のお客様のAPI利用料金とは別の運営予算です。
採用・段階拡大・復帰の履歴はこのページに反映されます。Xの自動告知は公開状態を確認したあと、承認済みの定型で送信。投稿の成否が不明な場合は再送せず、確認待ちにします。変更がなければ告知しません。
読み込み中 / Loading
Jevの契約や専用SDKは不要です。teaiの通常のチャットAPIに、モデル名 teai/auto を指定します。既存のOpenAI互換アプリでも、接続先・APIキー・モデル名の3点を設定できます。
teaiに登録し、ダッシュボードでAPIキーを発行します。生成に使える残高も確認してください。キーは手元の環境変数に保存し、共有するコードやブラウザの公開JavaScriptには書き込みません。
Register with teai, issue an API key in the dashboard, and check your available balance. Store the key in a local environment variable, not shared source code or public browser JavaScript.
export TEAI_API_KEY="te_your_api_key"
| 設定項目 | 値 |
|---|---|
| Base URL | https://teai.io/v1 |
| API key | TEAI_API_KEY |
| Model | teai/auto |
次は、架空の受付案内から確定した予約情報を取り出す例です。本文は1つのuserメッセージにまとめ、出力をJSONだけに指定しています。実行すると通常のAPI利用料が発生します。
curl --fail-with-body --max-time 120 \
-D auto-headers.txt \
https://teai.io/v1/chat/completions \
-H "Authorization: Bearer $TEAI_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"model": "teai/auto",
"messages": [{
"role": "user",
"content": "Extract the confirmed reservation from this fictional reception notice. Return ONLY a JSON object with exactly these keys: id, date, time, people, venue. Copy the supplied values; do not infer unstated information. The old booking has been cancelled and must not be returned. Old booking: R42, 2026-10-01, 09:00, 2 people. Confirmed booking: R42, 2026-10-03, 14:30, 3 people, venue Pine Room. Do not add explanations, markdown or extra fields."
}],
"temperature": 0,
"max_tokens": 1024,
"stream": false
}
JSON
期待する回答内容(成功を保証するものではありません):
{"id":"R42","date":"2026-10-03","time":"14:30","people":3,"venue":"Pine Room"}
python3 -m pip install openai
import json
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["TEAI_API_KEY"],
base_url="https://teai.io/v1",
max_retries=0,
timeout=120.0,
)
prompt = (
"Extract the confirmed reservation from this fictional reception notice. "
"Return ONLY a JSON object with exactly these keys: id, date, time, people, venue. "
"Copy the supplied values; do not infer unstated information. "
"The old booking has been cancelled and must not be returned. "
"Old booking: R42, 2026-10-01, 09:00, 2 people. "
"Confirmed booking: R42, 2026-10-03, 14:30, 3 people, venue Pine Room. "
"Do not add explanations, markdown or extra fields."
)
raw = client.chat.completions.with_raw_response.create(
model="teai/auto",
messages=[{"role": "user", "content": prompt}],
temperature=0,
max_tokens=1024,
stream=False,
)
response = raw.parse()
print("Selected model:", response.model)
print("Route reason:", raw.headers.get("x-teai-auto-reason", "unavailable"))
print("Usage:", response.usage)
choice = response.choices[0]
if choice.finish_reason != "stop":
raise RuntimeError(f"Incomplete answer: {choice.finish_reason}")
data = json.loads(choice.message.content or "")
required = {"id", "date", "time", "people", "venue"}
if not isinstance(data, dict) or set(data) != required:
raise ValueError("Unexpected fields")
if type(data["people"]) is not int or data["people"] < 1:
raise ValueError("Invalid people count")
if any(not isinstance(data[k], str) for k in required - {"people"}):
raise ValueError("Invalid field type")
print(json.dumps(data, ensure_ascii=False, indent=2))
まずは表示・下書き・確認画面への受け渡しに使えます。業務データへ反映する前には、JSONの形式だけでなく、元の文書との一致も確認します。
採用候補がまだない場合や、段階導入の対象に入らない場合、Jevの制限・タイムアウト・分類の不確実性がある場合は、更新後のモデルにならないことがあります。最新の評価と採用状況は、このページ上部で確認できます。
| 状態 | 確認すること |
|---|---|
| 401 | 実行環境のAPIキーとAuthorizationヘッダーを確認。無効なキーのまま繰り返さず、必要ならダッシュボードで再発行します。 |
| 402 | エラー本文が残高不足ならダッシュボードで残高を確認。運営の月3,000円評価予算は、お客様の無料利用枠ではありません。 |
| 429 / 5xx | 混雑・上限・一時的障害の可能性があります。エラー本文を確認し、短時間の連打を避けます。成否不明な業務処理を二重に実行しないでください。 |
| JSONとして読めない | JSONのみの指定はモデルへの依頼であり、形式の保証ではありません。finish_reason、JSONの構文、キー・型を確認し、不正な結果は業務処理に渡しません。 |
APIリファレンス → · Jevを使ったAutoの設計 →
上の例は構文・設定とモック応答での処理を確認しています。この具体例の有料API実行結果や、更新先への実際の振り分け成功を示すものではありません。