eurouter-integration について
EUrouter をアプリに組み込む開発者向けスキルです。OpenAI 互換 API の利用方法に加え、EU データ所在地や GDPR 関連のルーティング設定を扱います。
主な機能
- 01OpenAI 互換 API への移行
- 02EU データ所在地とプロバイダー制御
- 03モデルとプロバイダーのフォールバック
- 04再利用可能なルーティングルール
- 05モデル検索と API の案内
活用シーン
- 01アプリを OpenAI API から移行
- 02EU のプロバイダーや地域にリクエストを限定
- 03再利用するルーティング設定の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ eurouter/ eurouter-skill --skill eurouter-integrationインストール後、Claude Code で/eurouter-integrationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/code-examples-curl.mdcode-examples-node.mdcode-examples-python.mdendpoints.mdprovider-preferences.mdrouting-rules.md詳細
EUrouter 統合ガイド
アプリケーションに EUrouter を統合する開発者を支援します。EUrouter は、GDPR への準拠が必要な EU のお客様向けに構築された、OpenAI API のドロップイン代替製品です。https://api.eurouter.ai の単一の OpenAI 互換 API を通じて、10 のプロバイダーに AI リクエストをルーティングします。
対応プロバイダー: OpenAI、Anthropic、Mistral、Scaleway(FR)、GreenPT、Microsoft Foundry、Nebius、IONOS(DE)、OVHcloud(FR)、AWS Bedrock。
開発者を支援する際は、必要な内容に応じて、このスキルフォルダー内の references/ ディレクトリから関連するリファレンスファイルを必ず読み込んでください。すべてのリファレンスを一度に読み込まないでください。
認証
EUrouter では、eur_<publicId>.<secret> 形式の API キーを使用します。
次のいずれかのヘッダーでキーを送信します。
Authorization: Bearer eur_...x-api-key: eur_...
組織スコープのリクエストでは、x-org-id: <uuid> を追加します。
キーは POST /api/v1/keys で作成します。完全なキーが表示されるのは作成時の一度のみで、後から取得することはできません。
OpenAI からのドロップイン移行
EUrouter はドロップイン代替製品として設計されています。変更が必要なのは次の 2 点だけです。
Python(openai SDK):
from openai import OpenAI
# Before (OpenAI direct)
# client = OpenAI(api_key="sk-...")
# After (EUrouter) — change base_url and api_key
client = OpenAI(
base_url="https://api.eurouter.ai/api/v1",
api_key="eur_YOUR_KEY_HERE"
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}]
)
Node.js(openai SDK):
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.eurouter.ai/api/v1",
apiKey: "eur_YOUR_KEY_HERE",
});
const response = await client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "Hello!" }],
});
重要: 既存の OpenAI モデル名はすべてそのまま使用できます(例:gpt-4o、claude-3-5-sonnet、mistral-large-3)。移行時にモデル名を変更する必要はありません。
主なエンドポイント
すべてのエンドポイントには /api がプレフィックスとして付きます。ベース URL:https://api.eurouter.ai
| エンドポイント | メソッド | 認証 | 説明 |
|---|---|---|---|
/api/v1/chat/completions | POST | 必要 | チャット補完(ストリーミング、ツール、ビジョン、オーディオ、推論) |
/api/v1/completions | POST | 必要 | レガシーのテキスト補完 |
/api/v1/embeddings | POST | 必要 | テキスト埋め込み |
/api/v1/responses | POST | 必要 | OpenAI Responses API 互換 |
/api/v1/models | GET | 不要 | モデルカタログの一覧表示/フィルタリング |
/api/v1/providers | GET | 不要 | 利用可能なプロバイダーの一覧表示 |
/api/v1/credits | GET | 必要 | クレジット残高の確認(EUR) |
/api/v1/keys | CRUD | 必要 | API キーの管理 |
/api/v1/routing-rules | CRUD | 必要 | 名前付きルーティング設定の管理 |
/health | GET | 不要 | ヘルスチェック |
すべてのエンドポイントスキーマについては、references/endpoints.md を読み込んでください。
EU/GDPR 準拠
これは EUrouter の大きな差別化要素です。準拠を強制するには、生成リクエストに provider オブジェクトを追加します。
{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "Hello"}],
"provider": {
"data_residency": "eu",
"eu_owned": true,
"data_collection": "deny",
"max_retention_days": 0
}
}
| フィールド | 型 | 説明 |
|---|---|---|
data_residency | string | リージョンコード("eu"、"de"、"fr" など)。そのリージョン内のエンドポイントのみ |
eu_owned | boolean | EU に本社を置くプロバイダー(Scaleway、IONOS、OVHcloud、GreenPT、Mistral)のみ |
data_collection | "allow" | "deny" | "deny" にすると、データをトレーニングに使用するプロバイダーが除外されます |
max_retention_days | number | データ保持期間の上限。0 はデータを一切保持しないプロバイダーのみを意味します |
すぐに使えるコンプライアンスプロファイル:
// Strict GDPR: EU owned, no training data, zero retention, EU hosted
{ "eu_owned": true, "data_collection": "deny", "max_retention_days": 0, "data_residency": "eu" }
// EU hosted, cheapest price
{ "data_residency": "eu", "sort": "price" }
// Specific EU providers only
{ "only": ["scaleway", "ionos", "ovhcloud"] }
プロバイダーの優先設定フィールドの詳細については、references/provider-preferences.md を読み込んでください。
モデルのフォールバック
models 配列を渡すと、複数のモデルを順番に試すことができます。最初のモデルに対応するすべてのプロバイダーで失敗した場合、EUrouter は次のモデルを試します。
{
"models": ["claude-3-5-sonnet", "gpt-4o", "mistral-large-3"],
"messages": [{"role": "user", "content": "Hello"}],
"provider": { "data_residency": "eu" }
}
注: 埋め込みではモデルのフォールバックはサポートされていません(モデルによってベクトルの次元が異なるためです)。埋め込みで利用できるのは、プロバイダーのフォールバック(同じモデルで異なるプロバイダーのエンドポイントを使用)のみです。
ルーティングルール
再利用可能なルーティング設定を作成すると、各リクエストでプロバイダーの優先設定を繰り返し指定する必要がなくなります。
// Create a rule once:
// POST /api/v1/routing-rules
{
"name": "gdpr-strict",
"provider": {
"eu_owned": true,
"data_collection": "deny",
"max_retention_days": 0,
"data_residency": "eu"
}
}
// Then reference it by name:
{
"model": "gpt-4o",
"rule_name": "gdpr-strict",
"messages": [{"role": "user", "content": "Hello"}]
}
rule_id を使って UUID で参照することもできます。リクエストごとの provider 優先設定はルールとマージされ、リクエストレベルの値が優先されます。
ドライランテスト: POST /api/v1/routing-rules/dry-run を使用すると、実際のリクエストを送信せずに、ルーティング設定の条件を満たすプロバイダーを確認できます。
ルーティングルール API の詳細については、references/routing-rules.md を読み込んでください。
モデルの検索
GET /api/v1/models
GET /api/v1/models?provider=scaleway
GET /api/v1/models?supported_parameters=tools,vision
GET /api/v1/models?category=embedding
価格はモデルの pricing オブジェクト内で文字列として返され、currency フィールドに通貨が指定されます。クレジットの通貨は EUR です。
レスポンスヘッダー
すべての生成エンドポイントは、ルーティングの透明性を確保するためのヘッダーを返します。
| ヘッダー | 説明 |
|---|---|
x-provider-id | 内部プロバイダー UUID |
x-provider-slug | プロバイダー名(例:openai、scaleway) |
x-routing-strategy | ルーティングに使用された戦略 |
x-model-used | 実際に使用されたモデルのスラッグ |
x-model-variant | 該当する場合のバリアント接尾辞(:free、:nitro) |
x-fallback-count | プロバイダーのフォールバック回数(0 より大きい場合のみ存在) |
x-model-fallback-count | モデルのフォールバック回数(0 より大きい場合のみ存在) |
ストリーミング
SSE ストリーミングを有効にするには、"stream": true を設定します。形式は OpenAI 互換です。
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"delta":{"content":"Hello"},"index":0,"finish_reason":null}]}
data: [DONE]
最終チャンクに使用状況の統計情報を含めるには、"stream_options": { "include_usage": true } を追加します。
エラー形式
すべてのエラーは次の形式に従います。
{
"error": {
"code": "NOT_FOUND",
"message": "Model not found"
},
"requestId": "uuid"
}
主なエラーコード:UNAUTHORIZED(401)、FORBIDDEN(403)、NOT_FOUND(404)、BAD_REQUEST(400)、INSUFFICIENT_QUOTA(402)、SERVICE_UNAVAILABLE(503)。
リファレンスファイル
開発者の具体的なニーズに応じて、次のファイルを読み込んでください。
| ニーズ | ファイル |
|---|---|
| エンドポイントの完全なリクエスト/レスポンススキーマ | references/endpoints.md |
| プロバイダーのルーティング設定フィールド一覧 | references/provider-preferences.md |
| ルーティングルールの CRUD とドライラン API | references/routing-rules.md |
| Python のコード例(openai SDK) | references/code-examples-python.md |
| Node.js/TypeScript のコード例 | references/code-examples-node.md |
| curl の例 | references/code-examples-curl.md |