数据库与模型:新增多版迁移(章节证据快照、对话血缘、记忆事实/时间线 lineage 等),把「成稿 ↔ 对话/记忆」的溯源信息落到表结构里。 业务链路:会话与 WS、回忆录/故事流水线、记忆写入与 enrichment 等跟着接上线索与快照;新增章节证据快照与评测侧 EvalTraceService 等模块,方便组评审用的证据包。 内部评测:自动化 run 与手工 memoir 评审共用可追溯证据;rubric/ judge 相关脚本与文档有配套调整。 app-eval-web:Memoir/实验详情里能展开看证据摘要与 evidence_trace(含对话轮次 id);Vite 代理与 development.sh 注入的 API 端口与当前默认内部评测端口一致,避免改端口后页面连错服务。 工程杂项:GitHub Actions / 仓库说明有更新;各适配器与支付/配额/plan 等多处为小改动或跟随主改动的收尾;新增/扩充了?
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
"""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"
|