> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jinba.io/llms.txt
> Use this file to discover all available pages before exploring further.

# チェッカーツール

> 品質保証のためのデータ検証・チェックツール

## 概要

チェッカーツールは包括的なデータ検証と品質保証機能を提供します。これらのツールはデータの整合性、ビジネスルールへの準拠、ワークフローでの自動品質管理を確保するのに役立ちます。

## 主な機能

### CHECKER\_CHECK\_BY\_JSON

* JSON定義ルールでのテキスト検証
* 柔軟なルール設定
* 理由付きの詳細な検証結果
* 複数の検証基準対応

### CHECKLIST

* CSVルールを使用したファイルベース検証
* バッチ検証機能
* 構造化された検証レポート
* 外部ルールセットとの統合

### JINBA\_MODULES\_CHECKER\_V2

* JSONルールファイルを使用した高度な検証
* 強化されたルール処理
* パフォーマンスと精度の向上
* 追加機能を含むバージョン2

## 認証

チェッカーツールに認証は必要ありません。

## 例: ドキュメント検証

```yaml theme={null}
- id: validate_document
  name: validate_document
  tool: CHECKER_CHECK_BY_JSON
  input:
    - name: text
      value: "{{steps.extract_document.result.content}}"
    - name: task_name
      value: "契約コンプライアンスチェック"
    - name: description
      value: "契約文書の法的要件に対する検証"
    - name: rules
      value: |
        [
          {
            "rule": "署名セクションが必要",
            "pattern": "署名|サイン|執行者",
            "required": true
          },
          {
            "rule": "終了条項を含む必要",
            "pattern": "終了|契約終了|期限切れ",
            "required": true
          },
          {
            "rule": "支払い条件を明記すべき",
            "pattern": "支払い|請求|請求書|期限",
            "required": false
          }
        ]
```

## 例: データ品質検証

```yaml theme={null}
- id: extract_data
  name: extract_data
  tool: EXCEL_GET_ROWS
  input:
    - name: file_url
      value: "{{steps.input_file.result.file_url}}"
    - name: range
      value: "A1:E100"

- id: validate_data_quality
  name: validate_data_quality
  tool: CHECKER_CHECK_BY_JSON
  input:
    - name: text
      value: "{{steps.extract_data.result.content | join('\n')}}"
    - name: task_name
      value: "顧客データ検証"
    - name: rules
      value: |
        [
          {
            "rule": "メール形式検証",
            "pattern": "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}",
            "required": true
          },
          {
            "rule": "電話番号形式",
            "pattern": "\\+?[1-9]\\d{1,14}",
            "required": true
          },
          {
            "rule": "完全な住所情報",
            "pattern": "丁目|番地|通り|街|市|区",
            "required": false
          }
        ]

- id: process_validation_results
  name: process_validation_results
  tool: PYTHON_SANDBOX_RUN
  input:
    - name: code
      value: |
        import json
        
        validation_results = {{steps.validate_data_quality.result.results}}
        
        # 検証ステータスをカウント
        accepted = sum(1 for r in validation_results if r['status'] == 'accepted')
        rejected = sum(1 for r in validation_results if r['status'] == 'rejected')
        pending = sum(1 for r in validation_results if r['status'] == 'pending')
        
        print(f"検証サマリー:")
        print(f"✅ 承認: {accepted}")
        print(f"❌ 拒否: {rejected}")
        print(f"⏳ 保留: {pending}")
        
        # 拒否された項目を理由とともにリスト
        if rejected > 0:
            print("\n拒否された項目:")
            for result in validation_results:
                if result['status'] == 'rejected':
                    print(f"- {result['rule']}: {result['reason']}")
```

## 例: 高度なファイル検証

```yaml theme={null}
- id: upload_rules_file
  name: upload_rules_file
  tool: INPUT_FILE
  input:
    - name: description
      value: "検証ルールCSVファイルをアップロード"

- id: validate_with_checklist
  name: validate_with_checklist
  tool: CHECKLIST
  input:
    - name: file_url
      value: "{{steps.input_data.result.file_url}}"
    - name: rules_file
      value: "{{steps.upload_rules_file.result.file_url}}"
    - name: task_name
      value: "バッチデータ検証"

- id: advanced_validation
  name: advanced_validation
  tool: JINBA_MODULES_CHECKER_V2
  input:
    - name: target_file
      value: "{{steps.input_data.result.file_url}}"
    - name: task
      value: "高度なデータ検証"
    - name: description
      value: "強化されたチェッカーv2を使用した包括的な検証"
    - name: rules
      value: |
        [
          {
            "rule": "メールアドレス形式の検証",
            "pattern": "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}",
            "required": true,
            "uniqueId": "email_check"
          },
          {
            "rule": "年齢範囲の検証",
            "pattern": "^(1[8-9]|[2-9][0-9]|1[01][0-9]|120)$",
            "required": true,
            "uniqueId": "age_check"
          },
          {
            "rule": "国コードの検証",
            "pattern": "(US|UK|CA|AU|JP)",
            "required": true,
            "uniqueId": "country_check"
          }
        ]
    - name: additionalDataSchema
      value: |
        {
          "extractedData": {
            "type": "object",
            "properties": {
              "email": {"type": "string"},
              "age": {"type": "number"},
              "country": {"type": "string"}
            }
          }
        }
```

## 検証ルールタイプ

### パターンベースルール

* **正規表現パターン**: 複雑な検証のための正規表現を使用
* **テキストマッチング**: シンプルなテキストの存在または不在チェック
* **フォーマット検証**: メール、電話、URL、日付フォーマット

### 構造ルール

* **必須フィールド**: 必須データの存在確保
* **データタイプ**: 数値、日付、ブールデータの検証
* **範囲検証**: 最小/最大値、長さ制約

### ビジネスルール

* **カスタムロジック**: 複雑なビジネスルール検証
* **クロスフィールド検証**: 複数フィールドに依存するルール
* **条件付きルール**: 特定条件下で適用されるルール

## 検証結果

各検証は構造化された結果を返します：

```json theme={null}
{
  "rule": "メール形式検証",
  "status": "accepted|rejected|pending",
  "range": "該当する場合の文字範囲",
  "reason": "検証結果の詳細説明"
}
```

## 使用例

* **データ品質保証**: インポートデータの品質検証
* **コンプライアンスチェック**: 規制要件への文書適合確認
* **フォーム検証**: ユーザー提出フォーム・申請書の検証
* **コンテンツモデレーション**: コミュニティガイドラインに対するコンテンツチェック
* **ビジネスルール実行**: データがビジネス基準を満たすことの確認
* **インポート検証**: システムインポート前のデータ検証
* **文書審査**: 自動化された文書コンプライアンスチェック
