From adf454d77d8c67fb21d64198b14b711ee750fb3f Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 25 Aug 2026 15:31:33 +0200 Subject: [PATCH] feat: configure 32k context for protocol generation --- .env.example | 2 +- PROJECT_KNOWLEDGE.md | 2 +- README.md | 2 +- src/mka/application/config.py | 4 +++- src/mka/application/meeting_service.py | 4 ++++ tests/test_meeting_service.py | 2 ++ 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.env.example b/.env.example index a6d25af..e89ddad 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ MKA_WHISPER_MODEL=/path/to/ggml-large-v3-turbo.bin MKA_WHISPER_EXECUTABLE=whisper-cli MKA_FFMPEG_EXECUTABLE=ffmpeg -MKA_PROTOCOL_MODEL=qwen3.8:27B +MKA_PROTOCOL_MODEL=qwen3.8:27b MKA_OLLAMA_ENDPOINT=http://127.0.0.1:11434 MKA_DATA_ROOT=data/meetings MKA_WHISPER_THREADS=auto diff --git a/PROJECT_KNOWLEDGE.md b/PROJECT_KNOWLEDGE.md index a1dda6f..1e32d92 100644 --- a/PROJECT_KNOWLEDGE.md +++ b/PROJECT_KNOWLEDGE.md @@ -107,7 +107,7 @@ measurable progress is available. ## Protocol Policy Direct full-transcript protocol generation is the practical MVP direction. -`qwen3.8:27B` has shown strong readability and contextual synthesis; +`qwen3.8:27b` has shown strong readability and contextual synthesis; `qwen3.6:35B-A3B` has shown somewhat more conservative behavior in some areas. Experimental dual-model and diarization-assisted hard-fact extraction has not demonstrated reliably better strict attribution accuracy and is not mandatory. diff --git a/README.md b/README.md index 82d3211..54e1cf4 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ load `.env` files implicitly: export MKA_WHISPER_MODEL=/path/to/ggml-large-v3-turbo.bin export MKA_WHISPER_EXECUTABLE=whisper-cli export MKA_FFMPEG_EXECUTABLE=ffmpeg -export MKA_PROTOCOL_MODEL=qwen3.8:27B +export MKA_PROTOCOL_MODEL=qwen3.8:27b ``` Optional machine-specific settings include: diff --git a/src/mka/application/config.py b/src/mka/application/config.py index 479733f..2e8a094 100644 --- a/src/mka/application/config.py +++ b/src/mka/application/config.py @@ -20,8 +20,10 @@ class AppSettings: whisper_model: Path | None whisper_executable: str = "whisper-cli" ffmpeg_executable: str = "ffmpeg" - protocol_model: str = "qwen3.8:27B" + protocol_model: str = "qwen3.8:27b" ollama_endpoint: str = "http://127.0.0.1:11434" + protocol_num_ctx: int = 32_768 + protocol_safe_input_token_budget: int = 29_000 language: str = "de" threads: str | int = "auto" diarization_mode: str = "auto" diff --git a/src/mka/application/meeting_service.py b/src/mka/application/meeting_service.py index 3fd3d2d..44d69b4 100644 --- a/src/mka/application/meeting_service.py +++ b/src/mka/application/meeting_service.py @@ -195,6 +195,10 @@ class MeetingProcessingService: "threads": self.settings.threads, "model": self.settings.protocol_model, "ollama_endpoint": self.settings.ollama_endpoint, + "protocol_num_ctx": self.settings.protocol_num_ctx, + "protocol_safe_input_token_budget": ( + self.settings.protocol_safe_input_token_budget + ), "diarization": ( self.settings.diarization_mode if options.diarization_enabled else "off" ), diff --git a/tests/test_meeting_service.py b/tests/test_meeting_service.py index 905d835..f1829aa 100644 --- a/tests/test_meeting_service.py +++ b/tests/test_meeting_service.py @@ -216,6 +216,8 @@ def test_process_translates_configuration_and_disables_diarization( assert gateway.config_values is not None assert gateway.config_values["diarization"] == "off" assert gateway.config_values["model"] == "test:model" + assert gateway.config_values["protocol_num_ctx"] == 32_768 + assert gateway.config_values["protocol_safe_input_token_budget"] == 29_000 assert gateway.config_values["whisper_executable"] == "/opt/whisper-cli" assert gateway.config_values["ffmpeg_executable"] == "ffmpeg" assert gateway.config_values["audio_normalization"] is True