feat: 配置写死与 baked 模块,Alembic 建表,百度仅 BAIDU_*

- 新增 app/baked/algorithm|pipeline,非部署参数不再走 env;Settings 保留 DB/HTTP/RTSP/海康/百度/MinIO/Demo
- 移除 init_db_schema 与 reload 配置;main 仅 check_database;start*.sh 在 uvicorn 前执行 alembic upgrade head
- 依赖 psycopg[binary] 供 Alembic 同步 URL;alembic/env 注释与预发清单更新
- 撕段门控消费管线、各视频/语音/归档调用改为 baked
- 百度环境变量仅 BAIDU_APP_ID、BAIDU_API_KEY、BAIDU_SECRET_KEY 与 BAIDU_* 超时/ASR;人脸脚本与 baidu_speech 文案同步
- 全量单测与 .env.example 更新;.gitignore 忽略 refs/(本地权重/视频不入库)

Made-with: Cursor
This commit is contained in:
Kevin
2026-04-24 15:33:22 +08:00
parent b651364877
commit 8a4bad99d3
47 changed files with 1333 additions and 648 deletions

View File

@@ -7,6 +7,7 @@ from fastapi.responses import JSONResponse
from loguru import logger
from sqlalchemy.exc import SQLAlchemyError
from app.baked import pipeline as bp
from app.config import settings
from app.database import check_database
from app.dependencies import get_surgery_pipeline
@@ -173,8 +174,8 @@ async def start_surgery(
await _call_recording_with_retries(
_start,
max_attempts=settings.surgery_recording_max_attempts,
delay_seconds=settings.surgery_recording_retry_delay_seconds,
max_attempts=bp.SURGERY_RECORDING_MAX_ATTEMPTS,
delay_seconds=bp.SURGERY_RECORDING_RETRY_DELAY_SECONDS,
log_prefix=f"Start surgery {payload.surgery_id}",
)
except SurgeryPipelineError as exc:
@@ -216,8 +217,8 @@ async def end_surgery(
await _call_recording_with_retries(
_stop,
max_attempts=settings.surgery_recording_max_attempts,
delay_seconds=settings.surgery_recording_retry_delay_seconds,
max_attempts=bp.SURGERY_RECORDING_MAX_ATTEMPTS,
delay_seconds=bp.SURGERY_RECORDING_RETRY_DELAY_SECONDS,
log_prefix=f"End surgery {payload.surgery_id}",
)
except SurgeryPipelineError as exc:
@@ -310,7 +311,7 @@ async def get_surgery_result(
description=(
"返回当前 FIFO 队首的一条低置信度识别;"
"响应内 `prompt_audio_mp3_base64` 为与 `prompt_text` 一致的 MP3Base64客户端可直接解码播放。"
"无待确认项时返回 404合成失败或未配置语音服务时返回 422/503见错误码)。"
"无待确认项时返回 404提示文本为空为 422未配置百度或 TTS 失败为 503不返回空音频兜底)。"
"医生确认后请使用 `POST .../resolve` 上传 WAV。"
),
)