feat: 回忆录证据血缘与内部评测可追溯,顺带对齐本地评测台与 CI
数据库与模型:新增多版迁移(章节证据快照、对话血缘、记忆事实/时间线 lineage 等),把「成稿 ↔ 对话/记忆」的溯源信息落到表结构里。 业务链路:会话与 WS、回忆录/故事流水线、记忆写入与 enrichment 等跟着接上线索与快照;新增章节证据快照与评测侧 EvalTraceService 等模块,方便组评审用的证据包。 内部评测:自动化 run 与手工 memoir 评审共用可追溯证据;rubric/ judge 相关脚本与文档有配套调整。 app-eval-web:Memoir/实验详情里能展开看证据摘要与 evidence_trace(含对话轮次 id);Vite 代理与 development.sh 注入的 API 端口与当前默认内部评测端口一致,避免改端口后页面连错服务。 工程杂项:GitHub Actions / 仓库说明有更新;各适配器与支付/配额/plan 等多处为小改动或跟随主改动的收尾;新增/扩充了?
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
"""EvalTraceService 在 chapter 快照路径返回 dialogue_lineage。"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from types import SimpleNamespace
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
import pytest
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.features.evaluation.eval_trace_service import EvalTraceService
|
||||
from app.features.memoir.chapter_evidence_snapshot import EVIDENCE_SNAPSHOT_SCHEMA_VERSION
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_build_chapter_bundle_dialogue_lineage_from_snapshot() -> None:
|
||||
msg_ln = {
|
||||
"schema_version": 1,
|
||||
"conversation_id": "cv1",
|
||||
"turns": [
|
||||
{"user_message_id": "um-99", "assistant_message_id": "as-99"},
|
||||
],
|
||||
}
|
||||
snap = SimpleNamespace(
|
||||
user_id="u1",
|
||||
chapter_id="ch1",
|
||||
schema_version=EVIDENCE_SNAPSHOT_SCHEMA_VERSION,
|
||||
segment_ids=["s1"],
|
||||
conversation_ids=["cv1"],
|
||||
memory_chunk_ids=["mk1"],
|
||||
memory_fact_ids=[],
|
||||
timeline_event_ids=[],
|
||||
summary_ids=[],
|
||||
notes=[],
|
||||
message_lineage_json=msg_ln,
|
||||
)
|
||||
chapter = SimpleNamespace(
|
||||
id="ch1",
|
||||
user_id="u1",
|
||||
source_segments=["s1"],
|
||||
current_evidence_snapshot=snap,
|
||||
evidence_bundle_json=None,
|
||||
)
|
||||
db = MagicMock(spec=AsyncSession)
|
||||
svc = EvalTraceService(db)
|
||||
bundle = await svc.build_chapter_bundle("u1", chapter)
|
||||
assert bundle.dialogue_lineage == msg_ln
|
||||
assert bundle.dialogue_lineage["turns"][0]["user_message_id"] == "um-99"
|
||||
Reference in New Issue
Block a user