Add new on-demand runs
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from fastapi import APIRouter, HTTPException, Query
|
||||
from fastapi import APIRouter, BackgroundTasks, HTTPException, Query
|
||||
from typing import Optional
|
||||
from app.internal import firestore as fstore
|
||||
|
||||
@@ -27,3 +27,27 @@ async def get_call(call_id: str):
|
||||
if not call:
|
||||
raise HTTPException(404, f"Call '{call_id}' not found.")
|
||||
return call
|
||||
|
||||
|
||||
@router.post("/{call_id}/reprocess")
|
||||
async def reprocess_call(call_id: str, background_tasks: BackgroundTasks):
|
||||
"""Re-run the full intelligence pipeline (transcription → extraction → correlation) for a call."""
|
||||
call = await fstore.doc_get("calls", call_id)
|
||||
if not call:
|
||||
raise HTTPException(404, f"Call '{call_id}' not found.")
|
||||
|
||||
from app.routers.upload import _run_intelligence_pipeline, _public_url_to_gcs_uri
|
||||
|
||||
audio_url = call.get("audio_url")
|
||||
gcs_uri = _public_url_to_gcs_uri(audio_url) if audio_url else None
|
||||
|
||||
background_tasks.add_task(
|
||||
_run_intelligence_pipeline,
|
||||
call_id=call_id,
|
||||
node_id=call.get("node_id"),
|
||||
system_id=call.get("system_id"),
|
||||
talkgroup_id=call.get("talkgroup_id"),
|
||||
talkgroup_name=call.get("talkgroup_name"),
|
||||
gcs_uri=gcs_uri,
|
||||
)
|
||||
return {"ok": True, "call_id": call_id}
|
||||
|
||||
Reference in New Issue
Block a user