カスタムメタデータ
AI Gatewayのカスタムメタデータを使用すると、リクエストにユーザーIDやその他の識別子をタグ付けでき、リクエストの追跡と分析が向上します。メタデータの値は文字列、数値、またはブール値であり、ログに表示されるため、データの検索やフィルタリングが容易になります。
- カスタムタグ付け: ユーザーID、チーム名、テストインジケーター、その他の関連情報をリクエストに追加します。
- 強化されたログ記録: メタデータがログに表示され、詳細な検査やトラブルシューティングが可能です。
- 検索とフィルタリング: メタデータを使用して、ログに記録されたリクエストを効率的に検索およびフィルタリングします。
- 文字列
- 数値
- ブール値
cURLを使用してリクエストにカスタムメタデータを含めるには:
curl https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai/chat/completions \ --header 'Authorization: Bearer {api_token}' \ --header 'Content-Type: application/json' \ --header 'cf-aig-metadata: {"team": "AI", "user": 12345, "test":true}' \ --data '{"model": "gpt-4o", "messages": [{"role": "user", "content": "What should I eat for lunch?"}]}'OpenAI SDKを使用してリクエストにカスタムメタデータを含めるには:
import OpenAI from "openai";
export default { async fetch(request, env, ctx) { const openai = new OpenAI({ apiKey: env.OPENAI_API_KEY, baseURL: "https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai", });
try { const chatCompletion = await openai.chat.completions.create( { model: "gpt-4o", messages: [{ role: "user", content: "What should I eat for lunch?" }], max_tokens: 50, }, { headers: { "cf-aig-metadata": JSON.stringify({ user: "JaneDoe", team: 12345, test: true }), }, } );
const response = chatCompletion.choices[0].message; return new Response(JSON.stringify(response)); } catch (e) { console.log(e); return new Response(e); } },};Bindingsを使用してリクエストにカスタムメタデータを含めるには:
export default { async fetch(request, env, ctx) { const aiResp = await env.AI.run( '@cf/mistral/mistral-7b-instruct-v0.1', { prompt: 'What should I eat for lunch?' }, { gateway: { id: 'gateway_id', metadata: { "team": "AI", "user": 12345, "test": true} } } );
return new Response(aiResp); },};