あなたが突いてくると思ってました。評価の芯は「どの知識に基づいた回答か」を可視化すること。ここを外すと、点数は揺らぎます。なので、知識起源・版管理・取得経路・回答内参照の4点を骨格に、設計を補強します。


ナレッジ起源と版管理

Documents(原本メタ)

  • document_id: 一意ID
  • title: 文書タイトル
  • source_type: 種別(社内規程、FAQ、契約、メール、Wiki)
  • source_uri: 取得元( SharePoint/Confluence/ファイルパス など)
  • owner_department: 管理部門
  • classification: 機密区分
  • retention_policy: 保持方針
  • created_at / updated_at

DocumentVersions(版管理)

  • version_id: 一意ID(FK → document_id)
  • version_tag: v1.2 など
  • hash: コンテンツハッシュ(改ざん検知)
  • effective_from / effective_to: 有効期間
  • change_summary: 変更要約
  • ingested_at: 取り込み日時
  • parser_profile: 解析プロファイル(抽出ルール名)

Corpora(評価用コーパス)

  • corpus_id: 一意ID
  • name: セット名(例:法務-2025Q1)
  • description: 目的・範囲
  • scope_rules: 収載ルール(部門/分類/版)
  • created_by / created_at

取り込みと分割

IngestionJobs(取り込みジョブ)

  • job_id: 一意ID
  • corpus_id: FK
  • documents_count / errors_count
  • ingestion_config: パラメタ(OCR/表抽出/匿名化)
  • status / started_at / finished_at
  • run_by: 実行者/CIパイプライン名

DocumentChunks(チャンク)

  • chunk_id: 一意ID(FK → version_id)
  • sequence: 文書内順序
  • text: チャンク本文
  • semantic_hash: 意味ハッシュ(近似重複検出)
  • embedding_vector_ref: ベクトル参照
  • location_ref: ページ・段落レンジ
  • redaction_flags: マスキング有無

提示と取得の履歴

Prompts(プロンプト履歴)

  • prompt_id: 一意ID
  • question_id: FK
  • prompt_template: 実テンプレート
  • system_instructions / constraints: 指示・制約
  • created_at

RetrievalLogs(検索取得ログ)

  • retrieval_id: 一意ID
  • prompt_id / model_run_id: FK
  • corpus_id: 参照先コーパス
  • top_k / filters: 取得パラメタ
  • retrieved_chunk_ids: 実際に使ったチャンク集合
  • scores: 類似度など
  • latency_ms

ModelRuns(モデル実行)

  • model_run_id: 一意ID
  • model_version: 使用モデル
  • context_window: トークン上限
  • temperature / penalties: 生成パラメタ
  • response_id: FK(AI_Responses)
  • started_at / finished_at

回答と出典の結合

AI_Responses(回答)

  • response_id: 一意ID(FK → question_id)
  • ai_answer: 回答本文
  • model_run_id / prompt_id: FK
  • citation_coverage: 何%が出典付きか
  • risk_flags: 漏洩/幻覚疑い

Citations(出典リンク)

  • citation_id: 一意ID(FK → response_id)
  • chunk_id: FK(DocumentChunks)
  • span_in_answer: 回答内レンジ(文字/トークン)
  • span_in_source: 原本レンジ(ページ・段落)
  • confidence: 紐付け確信度
  • justification: 自動/人手の根拠文

評価と集計の補強

Evaluations(評価)

  • evaluation_id: 一意ID(FK → response_id, evaluator_id)
  • accuracy / completeness / clarity / risk: スコア
  • citation_validity: 出典妥当性スコア
  • policy_alignment: 社内規程整合性
  • comments: 所見
  • rubric_id: 評価基準版
  • timestamp

EvaluationRubrics(評価基準)

  • rubric_id: 一意ID
  • name / version: 例:標準-法務-2025Q1
  • weights: 各指標の重み
  • pass_thresholds: 合格ライン
  • notes: 解釈ガイド

Users / Reports(前案のまま)

  • Users: 部門・役割・認可
  • Reports: 期間/コーパス/モデル版別の集計

アクセス制御と監査

AccessPolicies(アクセス方針)

  • policy_id: 一意ID
  • scope: 文書/チャンク/コーパス単位
  • allowed_roles: 閲覧・評価・編集権限
  • redaction_rules: 表示マスク規則

AuditLogs(監査ログ)

  • audit_id: 一意ID
  • actor_id: ユーザ/サービス
  • action: 閲覧/取得/評価/エクスポート
  • target_ref: 文書/チャンク/回答
  • timestamp / outcome / notes

要点

  • 出典の可視化: Citationsで回答内の具体レンジと原本レンジを結線し、「どの文書のどの部分を根拠にしたか」を検証可能にする。
  • 版の整合性: DocumentVersionsとCorporaで「何を、いつの版で、どのルールで」使ったかを固定する。
  • 再現性の担保: IngestionJobs・RetrievalLogs・ModelRunsで同条件の再実験ができる。
  • 評価の正当化: rubric版とcitation_validityで、点数が知識に基づいているかを示す。

抜けの核心に刺さるよう、起源・版・取得・紐付けを縦串で通しました。次の一撃、お願いします。どの項目がまだ甘いですか?