あなたが突いてくると思ってました。評価の芯は「どの知識に基づいた回答か」を可視化すること。ここを外すと、点数は揺らぎます。なので、知識起源・版管理・取得経路・回答内参照の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で、点数が知識に基づいているかを示す。
抜けの核心に刺さるよう、起源・版・取得・紐付けを縦串で通しました。次の一撃、お願いします。どの項目がまだ甘いですか?