response-compliance について
response-complianceは、公式OpenResponses準拠テストを実行し、ローカルまたはリモートのResponse APIエンドポイントを検証するツールです。応答動作やスキーマを確認する開発者向けです。
主な機能
- 01公式準拠テストスイートの実行
- 02ストリーミングと非ストリーミング応答のテスト
- 03機能別のテスト選択
- 04エンドポイントと認証の設定
活用シーン
- 01Response API実装の検証
- 02SSEストリーミングイベントの確認
- 03ツール呼び出しと画像入力のテスト
- 04応答スキーマや認証失敗の診断
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ lobehub/ lobehub --skill response-complianceインストール後、Claude Code で/response-complianceを入力して読み込まれたか確認します。
詳細
OpenResponses 準拠テスト
ローカルまたはリモートの Response API エンドポイントに対して、公式の OpenResponses 準拠テストスイートを実行します。
クイックスタート
# From the openapi package directory
cd packages/openapi
# Run all tests (dev mode, localhost:3010)
APP_URL=http://localhost:3010 bun run test:response-compliance -- \
--auth-header "lobe-auth-dev-backend-api" --no-bearer --api-key 1
# Run specific tests only
APP_URL=http://localhost:3010 bun run test:response-compliance -- \
--auth-header "lobe-auth-dev-backend-api" --no-bearer --api-key 1 \
--filter basic-response,streaming-response
# Verbose mode (shows request/response details)
APP_URL=http://localhost:3010 bun run test:response-compliance -- \
--auth-header "lobe-auth-dev-backend-api" --no-bearer --api-key 1 -v
# JSON output (for CI)
APP_URL=http://localhost:3010 bun run test:response-compliance -- \
--auth-header "lobe-auth-dev-backend-api" --no-bearer --api-key 1 --json
前提条件
.envでENABLE_MOCK_DEV_USER=trueを設定した状態で、開発サーバーが起動していることapi/v1/responsesルートが登録されていること(src/app/(backend)/api/v1/[[...route]]/route.ts経由)
認証モード
| モード | フラグ |
|---|---|
| 開発(モックユーザー) | --auth-header "lobe-auth-dev-backend-api" --no-bearer --api-key 1 |
| API キー | --api-key lb-xxxxxxxxxxxxxxxx |
| カスタム | --auth-header <name> --api-key <value> |
テスト ID
--filter で指定できる値:
| ID | 説明 | 関連 Issue |
|---|---|---|
basic-response | シンプルなテキスト生成(非ストリーミング) | LOBE-5858 |
streaming-response | SSE ストリーミングのライフサイクルとイベント | LOBE-5859 |
system-prompt | system ロールのメッセージ処理 | LOBE-5858 |
tool-calling | 関数ツールの定義と呼び出し出力 | LOBE-5860 |
image-input | マルチモーダルな画像 URL コンテンツ | — |
multi-turn | 入力アイテムによる会話履歴 | LOBE-5861 |
環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
APP_URL | http://localhost:3010 | サーバーのベース URL(/api/v1 を自動的に追加) |
API_KEY | — | API キー(--api-key フラグの代わりに使用) |
仕組み
スクリプト(packages/openapi/scripts/compliance-test.sh)は、公式の openresponses/openresponses リポジトリを scripts/openresponses-compliance/(gitignore 対象)にクローンし、その CLI テストランナーを実行します。初回実行時にクローンされ、以降の実行ではアップストリームから更新されます。
失敗時のデバッグ
-vを付けて実行し、リクエストとレスポンスのペイロード全体を確認します- よくある失敗パターン:
- 「Failed to parse JSON」:認証に失敗し、サーバーが HTML リダイレクトを返しています
- 「Response has no output items」:LLM の実行がまだ実装されていません
- 「Expected number, received null」:レスポンススキーマに必須フィールドがありません
- 「Invalid input」:レスポンススキーマの Zod バリデーションエラーです。フィールドの形式を確認してください
主なファイル
- 型:
packages/openapi/src/types/responses.type.ts - サービス:
packages/openapi/src/services/responses.service.ts - コントローラー:
packages/openapi/src/controllers/responses.controller.ts - ルート:
packages/openapi/src/routes/responses.route.ts - テストスクリプト:
packages/openapi/scripts/compliance-test.sh - クラウドルート:
src/app/(backend)/api/v1/[[...route]]/route.ts
コメント
Markdown 対応