generated from john/python-template
model used being carried thru
This commit is contained in:
@@ -51,10 +51,15 @@ def _ensure_sqlite_compat_columns(connection: Connection) -> None:
|
||||
|
||||
inspector = inspect(connection)
|
||||
table_names = set(inspector.get_table_names())
|
||||
if "job" not in table_names:
|
||||
return
|
||||
|
||||
columns = {column["name"] for column in inspector.get_columns("job")}
|
||||
if "retry_count" not in columns:
|
||||
connection.execute(text("ALTER TABLE job ADD COLUMN retry_count INTEGER NOT NULL DEFAULT 0"))
|
||||
logger.warning("Applied SQLite compatibility schema patch table=job column=retry_count default=0")
|
||||
if "job" in table_names:
|
||||
job_columns = {column["name"] for column in inspector.get_columns("job")}
|
||||
if "retry_count" not in job_columns:
|
||||
connection.execute(text("ALTER TABLE job ADD COLUMN retry_count INTEGER NOT NULL DEFAULT 0"))
|
||||
logger.warning("Applied SQLite compatibility schema patch table=job column=retry_count default=0")
|
||||
|
||||
if "transcript" in table_names:
|
||||
transcript_columns = {column["name"] for column in inspector.get_columns("transcript")}
|
||||
if "model" not in transcript_columns:
|
||||
connection.execute(text("ALTER TABLE transcript ADD COLUMN model VARCHAR NOT NULL DEFAULT 'unknown'"))
|
||||
logger.warning("Applied SQLite compatibility schema patch table=transcript column=model default=unknown")
|
||||
|
||||
@@ -65,6 +65,8 @@ class Transcript(SQLModel, table=True):
|
||||
"""Revision number for this job's transcript history, starting at 0."""
|
||||
provider: str
|
||||
"""Name of the transcription provider used to generate this transcript."""
|
||||
model: str
|
||||
"""Model identifier used to generate this transcript revision."""
|
||||
prompt_name: str
|
||||
"""Name of the prompt used to generate this transcript."""
|
||||
text: str | None = None
|
||||
|
||||
@@ -28,12 +28,14 @@ class TranscriptionResult:
|
||||
prompt_name: str
|
||||
model: str
|
||||
|
||||
def to_transcript(self, job_id: UUID) -> Transcript:
|
||||
def to_transcript(self, job_id: UUID, *, revision: int = 0) -> Transcript:
|
||||
"""Convert a TranscriptionResult to a Transcript model instance."""
|
||||
return Transcript(
|
||||
job_id=job_id,
|
||||
revision=revision,
|
||||
provider=self.provider,
|
||||
prompt_name=self.prompt_name,
|
||||
model=self.model,
|
||||
text=self.text,
|
||||
)
|
||||
|
||||
|
||||
@@ -114,6 +114,7 @@ class TranscriptionService(ServiceBase):
|
||||
job_id=job_id,
|
||||
text=result.text,
|
||||
provider=result.provider,
|
||||
model=result.model,
|
||||
prompt_name=result.prompt_name,
|
||||
session=session,
|
||||
)
|
||||
@@ -125,6 +126,7 @@ class TranscriptionService(ServiceBase):
|
||||
text: str | None,
|
||||
error_detail: str | None = None,
|
||||
provider: str | None = None,
|
||||
model: str | None = None,
|
||||
prompt_name: str = DEFAULT_PROMPT_FILE,
|
||||
session: AsyncSession | None = None,
|
||||
) -> Transcript:
|
||||
@@ -139,6 +141,7 @@ class TranscriptionService(ServiceBase):
|
||||
job_id=job_id,
|
||||
revision=next_revision,
|
||||
provider=provider or self.settings.provider.value,
|
||||
model=model or _resolve_transcript_model(provider=self.provider, settings=self.settings),
|
||||
prompt_name=prompt_name,
|
||||
text=text,
|
||||
error_detail=error_detail,
|
||||
@@ -181,6 +184,17 @@ def _transcript_job_query(job_id: UUID):
|
||||
) # fmt: skip
|
||||
|
||||
|
||||
def _resolve_transcript_model(*, provider: TranscriptionProvider, settings: Settings) -> str:
|
||||
provider_model = getattr(provider, "model", None)
|
||||
if isinstance(provider_model, str) and provider_model.strip():
|
||||
return provider_model
|
||||
|
||||
if settings.provider_model and settings.provider_model.strip():
|
||||
return settings.provider_model
|
||||
|
||||
return "unknown"
|
||||
|
||||
|
||||
async def transcribe_document_image(
|
||||
image_path: str | Path,
|
||||
*,
|
||||
|
||||
@@ -126,6 +126,7 @@ async def _finalize_transcribed(
|
||||
text=result.text,
|
||||
error_detail=None,
|
||||
provider=result.provider,
|
||||
model=result.model,
|
||||
prompt_name=result.prompt_name,
|
||||
session=local_session,
|
||||
)
|
||||
@@ -142,6 +143,7 @@ async def _finalize_transcribed(
|
||||
text=result.text,
|
||||
error_detail=None,
|
||||
provider=result.provider,
|
||||
model=result.model,
|
||||
prompt_name=result.prompt_name,
|
||||
session=session,
|
||||
)
|
||||
|
||||
@@ -19,7 +19,7 @@ def render_transcript_revision_row(
|
||||
"""Render one collapsible row for a single transcript revision."""
|
||||
status_label = "Failed" if transcript.error_detail else "Transcribed"
|
||||
header = f"Revision {transcript.revision} | {status_label}"
|
||||
caption = f"{transcript.provider} | {transcript.prompt_name} | {_format_created_at(transcript.created_at)}"
|
||||
caption = f"{transcript.provider} | {transcript.model} | {_format_created_at(transcript.created_at)}"
|
||||
|
||||
expansion = ui.expansion(text=header, caption=caption, value=initially_expanded, group="group").classes(
|
||||
f"{classes} rounded-borders bg-blue-grey-10"
|
||||
@@ -27,7 +27,7 @@ def render_transcript_revision_row(
|
||||
|
||||
with expansion, ui.column().classes("w-full q-gutter-y-sm q-pa-sm"):
|
||||
_metadata_row(label="Provider", value=transcript.provider)
|
||||
_metadata_row(label="Prompt", value=transcript.prompt_name)
|
||||
_metadata_row(label="Model", value=transcript.model)
|
||||
_metadata_row(label="Created", value=_format_created_at(transcript.created_at))
|
||||
|
||||
if transcript.text:
|
||||
|
||||
Reference in New Issue
Block a user