from datetime import datetime, timezone from typing import Dict, List from uuid import uuid4 from fastapi import FastAPI from pydantic import BaseModel app = FastAPI(title="Feedback API", version="1.0.0") class FeedbackRequest(BaseModel): feedback: str class FeedbackEntry(BaseModel): id: str feedback: str timestamp: str # Stockage en mémoire: conversationID -> liste des feedbacks in_memory_store: Dict[str, List[FeedbackEntry]] = {} @app.post("/api/v1/{conversationID}/feedback") def submit_feedback(conversationID: str, payload: FeedbackRequest): feedback_id = f"fb-{uuid4()}" ts = datetime.now(timezone.utc).isoformat() entry = FeedbackEntry(id=feedback_id, feedback=payload.feedback, timestamp=ts) conversation_feedbacks = in_memory_store.setdefault(conversationID, []) conversation_feedbacks.append(entry) return { "message": "Feedback submitted successfully", "feedbackId": feedback_id, "totalFeedbacks": len(conversation_feedbacks), "timestamp": ts, } if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000)