Spaces:
Sleeping
Sleeping
| from fastapi import APIRouter, Depends, HTTPException | |
| from app.schemas import AnalyzeImageRequest, AnalyzeImageResponse | |
| from app.utils.security import get_current_user | |
| from app.ai_services import analyze_image | |
| router = APIRouter() | |
| def analyze(req: AnalyzeImageRequest, user=Depends(get_current_user)): | |
| result = analyze_image(req.image_url, req.prompt) | |
| return AnalyzeImageResponse(result=result) | |
| async def handle_analyze_image_via_gateway(payload: dict, current_user): | |
| if current_user is None: | |
| raise HTTPException(status_code=401, detail="Authentification requise") | |
| req = AnalyzeImageRequest(**payload) | |
| return analyze(req, user=current_user) # type: ignore | |
| async def handle_analyze_multimodal_via_gateway(payload: dict, current_user): | |
| if current_user is None: | |
| raise HTTPException(status_code=401, detail="Authentification requise") | |
| image_url = payload.get("image_url") | |
| text = payload.get("text") | |
| if not image_url or not text: | |
| raise HTTPException(status_code=400, detail="Champs 'image_url' et 'text' requis") | |
| # Appelle la fonction d'analyse d'image et combine avec le texte | |
| from app.ai_services import analyze_image, chat_completion | |
| image_analysis = analyze_image(image_url, text) | |
| # Combine l'analyse image et texte pour la réponse IA | |
| prompt = f"Analyse l'image médicale suivante et le texte associé.\n\nImage: {image_url}\n\nTexte: {text}\n\nAnalyse IA de l'image: {image_analysis}\n\nDonne une synthèse clinique globale." | |
| reply = chat_completion([{"role": "user", "content": prompt}], None) | |
| return {"result": reply} | |