V3 post step 2 refinement: add temperature & top-p settings to config (and .env), add prompt fields back to job table so that the prompt settings get frozen at runtime for all sources being processed.

This commit is contained in:
Jim Lancaster
2026-08-08 18:21:44 -05:00
parent 4dac9349c1
commit 4bf6c9e2f3
12 changed files with 123 additions and 122 deletions
+25 -9
View File
@@ -73,10 +73,13 @@ class TestPipelineSuccessFlow:
image_path,
*,
prompt_name="transcribe_document.md",
prompt_text=None,
temperature=None,
top_p=None,
settings=None,
provider=None,
) -> TranscriptionResult:
_ = (image_path, prompt_name, settings, provider)
_ = (image_path, prompt_name, prompt_text, temperature, top_p, settings, provider)
return TranscriptionResult(
text="Pipeline transcript",
provider="openrouter",
@@ -102,10 +105,10 @@ class TestPipelineSuccessFlow:
assert job is not None
assert job.status == JobStatus.TRANSCRIBED
assert any(job_source.raw_transcription == "Pipeline transcript" for job_source in job.job_sources)
assert any(job_source.prompt_name == "transcribe_document.md" for job_source in job.job_sources)
assert any(job_source.user_prompt is not None for job_source in job.job_sources)
assert any(job_source.temperature == 0.2 for job_source in job.job_sources)
assert any(job_source.top_p == 0.85 for job_source in job.job_sources)
assert job.prompt_name == "transcribe_document.md"
assert job.user_prompt is not None
assert job.temperature == 0.2
assert job.top_p == 0.85
assert any(job_source.ai_metadata == {"finish_reason": "stop", "usage": {"total_tokens": 42}} for job_source in job.job_sources)
assert any(
job_source.raw_api_response == {"id": "resp_123", "choices": [{"message": {"content": "Pipeline transcript"}}]}
@@ -142,11 +145,14 @@ class TestPipelineSuccessFlow:
image_path,
*,
prompt_name="transcribe_document.md",
prompt_text=None,
temperature=None,
top_p=None,
settings=None,
provider=None,
) -> TranscriptionResult:
page_name = Path(image_path).name
_ = (prompt_name, settings, provider)
_ = (prompt_name, prompt_text, temperature, top_p, settings, provider)
return TranscriptionResult(
text=f"Transcript for {page_name}",
provider="openrouter",
@@ -171,6 +177,7 @@ class TestPipelineSuccessFlow:
assert all(job_source.status == JobSourceStatus.TRANSCRIBED for job_source in job.job_sources)
assert all(job_source.raw_transcription for job_source in job.job_sources)
assert all(job_source.source is not None and job_source.source.raw_transcription for job_source in job.job_sources)
assert job.prompt_name == "transcribe_document.md"
@pytest.mark.asyncio
async def test_worker_marks_partial_success_when_some_sources_fail(
@@ -202,12 +209,15 @@ class TestPipelineSuccessFlow:
image_path,
*,
prompt_name="transcribe_document.md",
prompt_text=None,
temperature=None,
top_p=None,
settings=None,
provider=None,
) -> TranscriptionResult:
nonlocal call_count
call_count += 1
_ = (prompt_name, settings, provider)
_ = (image_path, prompt_name, prompt_text, temperature, top_p, settings, provider)
if call_count == 2:
raise RuntimeError("simulated page failure")
return TranscriptionResult(
@@ -279,11 +289,14 @@ class TestPipelineSuccessFlow:
image_path,
*,
prompt_name="transcribe_document.md",
prompt_text=None,
temperature=None,
top_p=None,
settings=None,
provider=None,
) -> TranscriptionResult:
nonlocal call_count
_ = (image_path, prompt_name, settings, provider)
_ = (image_path, prompt_name, prompt_text, temperature, top_p, settings, provider)
call_count += 1
return TranscriptionResult(
text="new transcript",
@@ -332,10 +345,13 @@ class TestPipelineFailureFlow:
image_path,
*,
prompt_name="transcribe_document.md",
prompt_text=None,
temperature=None,
top_p=None,
settings=None,
provider=None,
) -> TranscriptionResult:
_ = (image_path, prompt_name, settings, provider)
_ = (image_path, prompt_name, prompt_text, temperature, top_p, settings, provider)
raise RuntimeError("pipeline provider failure")
monkeypatch.setattr(