mcpField
R
response-compliance

response-compliance

github.com/lobehubテスト・品質83.6k151 回インストール今日更新
リポジトリ

response-compliance について

response-complianceは、公式OpenResponses準拠テストを実行し、ローカルまたはリモートのResponse APIエンドポイントを検証するツールです。応答動作やスキーマを確認する開発者向けです。

主な機能

  1. 01公式準拠テストスイートの実行
  2. 02ストリーミングと非ストリーミング応答のテスト
  3. 03機能別のテスト選択
  4. 04エンドポイントと認証の設定

活用シーン

  1. 01Response API実装の検証
  2. 02SSEストリーミングイベントの確認
  3. 03ツール呼び出しと画像入力のテスト
  4. 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-responseSSE ストリーミングのライフサイクルとイベントLOBE-5859
system-promptsystem ロールのメッセージ処理LOBE-5858
tool-calling関数ツールの定義と呼び出し出力LOBE-5860
image-inputマルチモーダルな画像 URL コンテンツ—
multi-turn入力アイテムによる会話履歴LOBE-5861

環境変数

変数デフォルト説明
APP_URLhttp://localhost:3010サーバーのベース URL(/api/v1 を自動的に追加)
API_KEY—API キー(--api-key フラグの代わりに使用)

仕組み

スクリプト(packages/openapi/scripts/compliance-test.sh)は、公式の openresponses/openresponses リポジトリを scripts/openresponses-compliance/(gitignore 対象)にクローンし、その CLI テストランナーを実行します。初回実行時にクローンされ、以降の実行ではアップストリームから更新されます。

失敗時のデバッグ

  1. -v を付けて実行し、リクエストとレスポンスのペイロード全体を確認します
  2. よくある失敗パターン:
    • 「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

コメント