46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
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)
|