プロバイダーをインストールして設定する
Vercel AI SDK は OpenAI 互換プロバイダーを使用できます。CometAPI のベース URL は一度だけ設定し、API キーはサーバー側の環境変数に保持します。
import { createOpenAI } from '@ai-sdk/openai';
export const cometapi = createOpenAI({
apiKey: process.env.COMETAPI_KEY,
baseURL: 'https://api.cometapi.com/v1',
});ストリーミングチャットルートを作成する
モデルはサーバー側で allowlist から選択します。これにより、マルチモデルの柔軟性を維持しながら、クライアントが想定外の高コストなモデルを選ぶのを防げます。
import { streamText } from 'ai';
import { cometapi } from '@/lib/cometapi';
const allowedModels = {
fast: 'your-fast-model-id',
quality: 'your-quality-model-id',
};
export async function POST(request: Request) {
const { messages, route = 'fast' } = await request.json();
const modelId = allowedModels[route as keyof typeof allowedModels];
const result = streamText({
model: cometapi(modelId),
messages,
});
return result.toDataStreamResponse();
}ワークロードごとにモデルを切り替える
会話の往復には高速なルートを使い、複雑な分析、長いコード変更、重要度の高いレビューには品質重視のルートを使います。後からコストと品質を比較できるよう、ルーティングロジックは観測可能に保ちます。
- 自動分類を試す前に、明示的な製品モードでルーティングします。
- 選択したルート、モデル ID、トークン、レイテンシ、リクエスト結果を記録します。
- アカウント単位およびリクエスト単位の支出上限を適用します。
本番環境向けチェックリスト
リリース前に、スキーマ検証、タイムアウト処理、一時的な失敗に対するリトライ、互換性のあるフォールバックルートを追加します。ブラウザーコードで上流 API キーを公開してはいけません。
