fix start recognition external file
This commit is contained in:
@@ -23,12 +23,13 @@ router = APIRouter(
|
||||
@router.post("/upload")
|
||||
async def upload_external_audio(
|
||||
file: UploadFile = FastAPIFile(...),
|
||||
callback_url: str = Form(..., description="URL для отправки результата распознавания (FileAudioAPI вызовет GigaAM и затем отправит результат на этот URL)"),
|
||||
callback_url: str = Form(None, description="URL для отправки результата распознавания (опционально). Если передан — FileAudioAPI вызовет GigaAM и затем отправит результат на этот URL."),
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
"""
|
||||
Загрузка внешнего аудиофайла. Файл сохраняется в общей папке, после чего
|
||||
автоматически отправляется на распознавание в GigaAM. Результат придёт на callback_url.
|
||||
Загрузка внешнего аудиофайла. Файл сохраняется в общей папке.
|
||||
Если передан callback_url — автоматически отправляется на распознавание в GigaAM,
|
||||
а результат придёт на callback_url.
|
||||
"""
|
||||
|
||||
# Проверка расширения файла
|
||||
@@ -78,8 +79,9 @@ async def upload_external_audio(
|
||||
detail=f"Error creating database record: {str(e)}"
|
||||
)
|
||||
|
||||
# Запрос на распознавание в GigaAM (файл уже в общей папке по имени safe_name)
|
||||
task_id, recognition_error = send_to_recognition(filename=safe_name, callback_url=callback_url.strip())
|
||||
# Всегда запускаем распознавание в GigaAM; callback_url передаём только если передан
|
||||
cb = callback_url.strip() if (callback_url and callback_url.strip()) else None
|
||||
task_id, recognition_error = send_to_recognition(filename=safe_name, callback_url=cb)
|
||||
|
||||
# Ответ: запись аудио + данные по постановке в очередь распознавания
|
||||
result = {
|
||||
@@ -97,7 +99,7 @@ async def upload_external_audio(
|
||||
result["recognition_error"] = recognition_error
|
||||
return result
|
||||
|
||||
def send_to_recognition(filename: str, callback_url: str) -> tuple:
|
||||
def send_to_recognition(filename: str, callback_url: str | None = None) -> tuple:
|
||||
"""
|
||||
Отправка аудиофайла на распознавание в GigaAM.
|
||||
Файл должен уже лежать в общей папке под именем filename.
|
||||
@@ -107,9 +109,12 @@ def send_to_recognition(filename: str, callback_url: str) -> tuple:
|
||||
"""
|
||||
try:
|
||||
gigaam_url = f"{GIGAAM_API_URL.rstrip('/')}/api/call/external/process"
|
||||
payload = {"filename": filename}
|
||||
if callback_url:
|
||||
payload["callback_url"] = callback_url
|
||||
resp = requests.post(
|
||||
gigaam_url,
|
||||
json={"filename": filename, "callback_url": callback_url},
|
||||
json=payload,
|
||||
timeout=15,
|
||||
)
|
||||
if resp.status_code == 202:
|
||||
|
||||
Reference in New Issue
Block a user