# app/api_server.py from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.schemas import PiscicultureRequest, PiscicultureResponse, GenerationResponse,CombinedResponse from app.agent_executor import AgentExecutor class APIServer: def __init__(self): self.app = FastAPI(title="Pisciculture Recommendation API") # Ajout du middleware CORS self.app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) api_key = "AIzaSyAmpT2kjqFcz7HZyiFeh6dBOu-zx_MRxIA" self.executor = AgentExecutor(api_key) self._register_routes() def _register_routes(self): @self.app.post( "/generate", response_model=GenerationResponse, summary="Complète les données puis génère les sections de recommandations" ) async def generate(data: PiscicultureRequest): completed_dict = self.executor.run_completion(data.dict()) generation_dict = self.executor.run_generation(completed_dict) return generation_dict @self.app.post( "/recommend", response_model=PiscicultureResponse, summary="Complète les données manquantes" ) async def recommend(data: PiscicultureRequest): completed_dict = self.executor.run_completion(data.dict()) return completed_dict server = APIServer() app = server.app