AI Vision: multi-provider config, model testing, per-client AI preferences
Backend: - Add ai_provider + ai_model columns to APIClient model - New admin_ai router: GET /admin/api/ai/status + POST /admin/api/ai/test - Update ai_vision.py: provider_override + model_override support - Update pipeline: load client AI prefs for image processing - ClientUpdate/ClientResponse schemas include ai_provider/ai_model Frontend: - New AIConfigSection component: provider list, model dropdowns, test button with live results (no page refresh needed) - AI types (ai.types.ts) + API (api/ai.ts) - APIClient types extended with ai_provider/ai_model
This commit is contained in:
@@ -181,9 +181,25 @@ async def process_image_pipeline(
|
||||
try:
|
||||
logger.info("pipeline.step.start", extra={"image_id": image_id, "step": "ai", "step_num": "3/3"})
|
||||
t0 = time.time()
|
||||
|
||||
# Charger les préférences AI du client
|
||||
provider_override = None
|
||||
model_override = None
|
||||
if image.client_id:
|
||||
from app.models.client import APIClient
|
||||
client_result = await db.execute(
|
||||
select(APIClient).where(APIClient.id == image.client_id)
|
||||
)
|
||||
owner = client_result.scalar_one_or_none()
|
||||
if owner:
|
||||
provider_override = owner.ai_provider
|
||||
model_override = owner.ai_model
|
||||
|
||||
ai = await analyze_image(
|
||||
file_path=file_path,
|
||||
ocr_hint=image.ocr_text,
|
||||
provider_override=provider_override,
|
||||
model_override=model_override,
|
||||
)
|
||||
|
||||
image.ai_description = ai.get("description")
|
||||
|
||||
Reference in New Issue
Block a user