概要

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

主な機能

CHECKER_CHECK_BY_JSON

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

CHECKLIST

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

JINBA_MODULES_CHECKER_V2

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

認証

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

例: ドキュメント検証

- 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
          }
        ]

例: データ品質検証

- 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']}")

例: 高度なファイル検証

- 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: file_url
      value: "{{steps.input_data.result.file_url}}"
    - name: rules_json
      value: |
        {
          "validation_rules": [
            {
              "field": "email",
              "type": "email",
              "required": true,
              "error_message": "有効なメールアドレスが必要です"
            },
            {
              "field": "age",
              "type": "number",
              "min": 18,
              "max": 120,
              "required": true,
              "error_message": "年齢は18から120の間である必要があります"
            },
            {
              "field": "country",
              "type": "enum",
              "values": ["US", "UK", "CA", "AU", "JP"],
              "required": true,
              "error_message": "国は承認リストから選択する必要があります"
            }
          ]
        }

検証ルールタイプ

パターンベースルール

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

構造ルール

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

ビジネスルール

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

検証結果

各検証は構造化された結果を返します:
{
  "rule": "メール形式検証",
  "status": "accepted|rejected|pending",
  "range": "該当する場合の文字範囲",
  "reason": "検証結果の詳細説明"
}

使用例

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