Record glossary provenance without transcript mutation

This commit is contained in:
2026-09-12 11:40:57 +02:00
parent 9177a2660b
commit 92247ef43e
7 changed files with 160 additions and 0 deletions
+4
View File
@@ -56,6 +56,7 @@ class MvpMeetingConfig:
threads: str | int = "auto"
model: str = DEFAULT_MODEL
ollama_endpoint: str = DEFAULT_ENDPOINT
glossary_aliases: Mapping[str, str] | None = None
protocol_num_thread: int | None = None
protocol_num_ctx: int = DEFAULT_NUM_CTX
protocol_safe_input_token_budget: int = DEFAULT_SAFE_INPUT_TOKEN_BUDGET
@@ -78,6 +79,7 @@ def regenerate_mvp_protocol(
meeting_context: ContextInput,
model: str = DEFAULT_MODEL,
ollama_endpoint: str = DEFAULT_ENDPOINT,
glossary_aliases: Mapping[str, str] | None = None,
protocol_num_thread: int | None = None,
protocol_num_ctx: int = DEFAULT_NUM_CTX,
protocol_safe_input_token_budget: int = DEFAULT_SAFE_INPUT_TOKEN_BUDGET,
@@ -119,6 +121,7 @@ def regenerate_mvp_protocol(
endpoint=ollama_endpoint,
num_ctx=protocol_num_ctx,
num_thread=protocol_num_thread,
glossary_aliases=glossary_aliases,
safe_input_token_budget=protocol_safe_input_token_budget,
)
protocol_path = _persist_protocol(run_dir, result)
@@ -438,6 +441,7 @@ def run_mvp_meeting(
endpoint=config.ollama_endpoint,
num_ctx=config.protocol_num_ctx,
num_thread=config.protocol_num_thread,
glossary_aliases=config.glossary_aliases,
safe_input_token_budget=config.protocol_safe_input_token_budget,
)
stage_runtimes["protocol"] = round(time.perf_counter() - stage_started, 3)
@@ -3,6 +3,7 @@
from __future__ import annotations
import json
from collections.abc import Mapping
from dataclasses import dataclass
from pathlib import Path
from typing import Any, Callable
@@ -174,6 +175,7 @@ def generate_direct_protocol(
safe_input_token_budget: int = DEFAULT_SAFE_INPUT_TOKEN_BUDGET,
model_check: Callable[[str, str, int], dict[str, Any]] = require_model,
generation_call: Callable[..., OllamaGeneration] = generate_once,
glossary_aliases: Mapping[str, str] | None = None,
) -> DirectProtocolResult:
transcript = _load_transcript_document(transcript_path)
context: MeetingContext | None = (
@@ -238,6 +240,8 @@ def generate_direct_protocol(
else None
),
"speaker_mapping_count": len(context.speaker_mappings) if context else 0,
"glossary_aliases_configured": dict(sorted((glossary_aliases or {}).items())),
"glossary_replacements": [],
}
return DirectProtocolResult(
protocol_text=generation.text,