Dama03's picture
first push of the AI
411a994
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()
@router.post("/analyze-image", response_model=AnalyzeImageResponse)
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}