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
+6 -1
View File
@@ -56,6 +56,8 @@ async def test_create_job_for_document_sorts_uploads_and_creates_links(async_ses
assert created_job is not None
assert created_job.provider == "openrouter"
assert created_job.model == "test-model"
assert created_job.prompt_name == "transcribe_document.md"
assert created_job.user_prompt is not None
sources = (
await async_session.exec(
@@ -78,7 +80,6 @@ async def test_create_job_for_document_sorts_uploads_and_creates_links(async_ses
job_sources = (await async_session.exec(select(JobSource).where(JobSource.job_id == result.job_id))).all()
assert len(job_sources) == 2
assert set(result.source_ids) == {job_source.source_id for job_source in job_sources}
assert {job_source.prompt_name for job_source in job_sources} == {None}
@pytest.mark.asyncio
@@ -110,6 +111,10 @@ async def test_create_upload_job_stores_source_under_document_id_directory(async
assert source.file_hash == "2c8648d103e3dd7ad87660da0f126a1443b6d21ac1bd3ec000c5e24e2373a90c"
assert source.file_size_bytes == len(b"image-bytes")
created_job = await async_session.get(Job, result.job_id)
assert created_job is not None
assert created_job.prompt_name == "transcribe_document.md"
def test_store_person_portrait_stores_file_under_person_id_directory(tmp_path):
settings = Settings(openrouter_api_key="test-key", upload_dir=tmp_path)
-2
View File
@@ -255,12 +255,10 @@ async def test_update_job_source_transcription_persists_provider_json_payloads(d
raw_api_response=raw_payload,
provider="openrouter",
model="test-model",
prompt_name="transcribe_document.md",
)
stored_rows = await transcriptions.list_job_sources(job_id=job.id)
assert len(stored_rows) == 1
assert stored_rows[0].raw_transcription == "provider transcript"
assert stored_rows[0].prompt_name == "transcribe_document.md"
assert stored_rows[0].ai_metadata == metadata
assert stored_rows[0].raw_api_response == raw_payload
+11 -2
View File
@@ -65,8 +65,17 @@ class TestWorkflowReliability:
loaded = await services.jobs.read_job(job_id=job.id, session=session)
async def _never_returns(image_path, *, prompt_name="transcribe_document.md", settings=None, provider=None):
_ = (image_path, prompt_name, settings, provider)
async def _never_returns(
image_path,
*,
prompt_name="transcribe_document.md",
prompt_text=None,
temperature=None,
top_p=None,
settings=None,
provider=None,
):
_ = (image_path, prompt_name, prompt_text, temperature, top_p, settings, provider)
raise TimeoutError("simulated provider timeout")
monkeypatch.setattr("transcription.services.workflows.transcribe_document_image", _never_returns)