数据库与模型:新增多版迁移(章节证据快照、对话血缘、记忆事实/时间线 lineage 等),把「成稿 ↔ 对话/记忆」的溯源信息落到表结构里。 业务链路:会话与 WS、回忆录/故事流水线、记忆写入与 enrichment 等跟着接上线索与快照;新增章节证据快照与评测侧 EvalTraceService 等模块,方便组评审用的证据包。 内部评测:自动化 run 与手工 memoir 评审共用可追溯证据;rubric/ judge 相关脚本与文档有配套调整。 app-eval-web:Memoir/实验详情里能展开看证据摘要与 evidence_trace(含对话轮次 id);Vite 代理与 development.sh 注入的 API 端口与当前默认内部评测端口一致,避免改端口后页面连错服务。 工程杂项:GitHub Actions / 仓库说明有更新;各适配器与支付/配额/plan 等多处为小改动或跟随主改动的收尾;新增/扩充了?
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
"""将 memory 检索 bundle 压成可入库的轻量 trace(仅稳定 id,限长)。"""
|
||
|
||
from __future__ import annotations
|
||
|
||
from typing import Any
|
||
|
||
|
||
def _capped_ids(items: list[Any] | None, *, cap: int = 100) -> list[str]:
|
||
out: list[str] = []
|
||
for x in items or []:
|
||
if len(out) >= cap:
|
||
break
|
||
if isinstance(x, dict) and x.get("id"):
|
||
out.append(str(x["id"]))
|
||
return out
|
||
|
||
|
||
def chat_memory_retrieval_trace_from_bundle(
|
||
bundle: dict,
|
||
*,
|
||
top_k: int,
|
||
query_len: int,
|
||
) -> dict:
|
||
"""供 conversation_messages.memory_retrieval_trace_json 使用。"""
|
||
return {
|
||
"schema_version": 1,
|
||
"source": "chat_memory_retrieval",
|
||
"top_k": top_k,
|
||
"query_len": query_len,
|
||
"chunk_ids": _capped_ids(bundle.get("relevant_chunks")),
|
||
"fact_ids": _capped_ids(bundle.get("relevant_facts")),
|
||
"timeline_event_ids": _capped_ids(bundle.get("timeline_hints")),
|
||
"summary_ids": _capped_ids(bundle.get("relevant_summaries")),
|
||
"story_ids": _capped_ids(bundle.get("relevant_stories")),
|
||
}
|