ベストプラクティス

本番環境の最適化

TokSpan 統合から最小のレイテンシ、最大のスループット、最小のコストを実現します。これらは弊社の本番スタックで実際に使用しているパターンです。

レイテンシの最小化

接続プーリングの使用

HTTP接続を再利用すると、リクエストごとのTLSハンドシェイクオーバーヘッドが排除されます(1回の呼び出しあたり約50~100msの節約)。OpenAI SDKは接続を自動的にプールしますが、本番環境ではプールサイズを調整してください:

python
import httpx
from openai import OpenAI

# Production-grade client with connection pooling
client = OpenAI(
    api_key="sk-your-key",
    base_url="https://api.tokspan.com/v1",
    http_client=httpx.Client(
        limits=httpx.Limits(
            max_keepalive_connections=20,
            max_connections=50,
        ),
        timeout=60.0,  # total timeout
    ),
)

インタラクティブUXのための常時ストリーミング

ユーザー向けの全リクエストで stream: true を設定してください。ストリーミングは完全なレスポンスを5~30秒待つ代わりに、約100msで最初のトークンを配信します。実装については Chat Completions — ストリーミング を参照してください。

エッジルーティング(自動)

TokSpanのDNSは api.tokspan.com を最も近いエッジロケーションに自動解決します。設定は不要です。セルフホスト展開の場合は、5ms未満のネットワークオーバーヘッド を実現するためにアプリケーションと同じリージョンにデプロイしてください。

Prompt Caching の活用

プロンプトキャッシングにより、繰り返しのプロンプトで最初のトークンまでの時間を 最大80% 短縮できます。静的なコンテンツ(システム指示、コンテキスト)をメッセージ配列の先頭に配置してください。詳細は Prompt Caching ガイド を参照してください。

レイテンシチェックリスト

最適化レイテンシへの影響必要な作業
接続プーリングリクエストあたり −50~100ms
ストリーミングを有効化体感: −5~30秒
プロンプトキャッシングキャッシュヒット時に −80%
アプリ近隣でのセルフホスティングネットワークRTT −30~80ms
-fast サフィックスの使用生成時間 −20~50%不要

コストの最小化

スマートなモデル選択

すべてのタスクにGPT-4oやClaude Opusが必要なわけではありません。シンプルなタスクはより安価なモデルにルーティングしましょう:

タスクタイプ推奨モデルGPT-4oとのコスト比較
分類、抽出、タグ付けGPT-4o-mini, Claude Haiku, Gemini Flash10~50倍安価
下書き、要約、翻訳DeepSeek V3, Llama 4, Mistral Large 33~10倍安価
複雑な推論、コード生成GPT-4o, Claude Opus 4.8基準
バッチ / バックグラウンド処理DeepSeek V3 + -cheap サフィックス5~15倍安価

利用上限の設定

ダッシュボードでAPIキーごとの月間予算を設定します。上限に達するとキーは自動的に無効化され、予期しない課金は発生しません。開発用キーには低めの上限を、クライアントと共有するキーにはより厳しい制限を設定してください。キースコーピング を参照してください。

コスト最適化モデルサフィックスの使用

任意のモデル名に -cheap を付加すると、そのモデルの最安値プロバイダーに自動ルーティングされます。重要度の低いバッチジョブでは、コード変更なしで10~30%のコストを節約できます。

コストチェックリスト

最適化コストへの影響必要な作業
シンプルなタスクをミニモデルにルーティング対象タスクで −70~95%
プロンプトキャッシングを有効化キャッシュヒット時に −50~90%
バッチジョブで -cheap サフィックスを使用−10–30%不要
キーごとの月間予算を設定最大利用額にハードキャップ
使用量ダッシュボードを毎週確認異常を早期に検知

スループットの最大化

非同期 + バッチ処理

バルク処理には、非同期クライアントと並行リクエストを使用してください。TokSpanのインフラは水平スケーリングするため、スループットの制限は通常、サーバーではなくレート制限です:

python
import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI(api_key="sk-your-key", base_url="https://api.tokspan.com/v1")

async def process_batch(prompts: list):
    tasks = [
        client.chat.completions.create(
            model="gpt-4o",
            messages=[{"role": "user", "content": p}],
        )
        for p in prompts
    ]
    return await asyncio.gather(*tasks)

並行処理ガイドライン

以下を目安としてください:

  • 従量課金: 最大50件の同時リクエスト(500 RPM制限)
  • エンタープライズ: カスタム同時実行数 — 制限についてはお問い合わせください
  • セルフホスティング: お客様のインフラストラクチャのみに制限

レスポンスヘッダーの x-ratelimit-remaining-requests を監視して余裕を把握してください。定常的に制限の80%以上に達する場合は、引き上げをリクエストしてください。

本番環境の信頼性

指数バックオフによるリトライ

ネットワークの瞬断やプロバイダーの一時的な問題は発生するものです。API呼び出しは常にリトライロジックでラップしてください:

python
import time
import random
from openai import OpenAI, RateLimitError, APIError

def chat_with_retry(client, model, messages, max_retries=3):
    for attempt in range(max_retries):
        try:
            return client.chat.completions.create(model=model, messages=messages)
        except RateLimitError:
            if attempt == max_retries - 1: raise
            # Exponential backoff with jitter
            wait = (2 ** attempt) + random.uniform(0, 1)
            time.sleep(wait)
        except APIError as e:
            if e.status_code < 500 or attempt == max_retries - 1: raise
            wait = (2 ** attempt) + random.uniform(0, 1)
            time.sleep(wait)

自動フェイルオーバーの設定

ダッシュボードでクロスプロバイダーフェイルオーバーチェーン(OpenAI → Anthropic → Google)を設定します。プライマリプロバイダーがダウンした場合、トラフィックは自動的にルーティングされ、リクエスト消失はゼロです。自動フェイルオーバー を参照してください。

APIキー戦略

  • 開発キー: 低予算($10/月)、安価なモデルに制限、IP制限なし
  • ステージングキー: 中程度の予算($50/月)、本番モデルセット、IP制限あり
  • 本番キー: 高めの予算、全モデル、本番サーバーにIP制限

キーは90日ごとにローテーションしてください。複数のプロジェクトを管理する場合は、プロジェクトごとに個別のキーを使用してください。

クイックリファレンス: 本番用モデルサフィックス

サフィックス最適化対象ユースケース
-fast最小レイテンシリアルタイムチャット、インタラクティブアプリ
-cheap最小コストバッチジョブ、開発/テスト、バックグラウンド
-high最高品質複雑な推論、コード生成、分析
-low高速 + 低コストシンプルなクエリ、分類
-thinking推論のデバッグプロンプトエンジニアリング、思考連鎖の可視化