From 69edc5201bae514f37ef827c2b7ebec1dcc1250a Mon Sep 17 00:00:00 2001 From: Tykayn Date: Sat, 4 Oct 2025 11:25:29 +0200 Subject: [PATCH] up --- devops/.gitignore | 1 + devops/app.py | 46 ++++++++++++++++++++++ devops/frontend-dockerfile.yml | 2 +- devops/index.html | 70 ++++++++++++++++++++++++++++++++++ devops/openapi.json | 8 ++++ devops/requirements.txt | 3 ++ 6 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 devops/.gitignore create mode 100644 devops/app.py create mode 100644 devops/index.html create mode 100644 devops/openapi.json create mode 100644 devops/requirements.txt diff --git a/devops/.gitignore b/devops/.gitignore new file mode 100644 index 0000000..f5e96db --- /dev/null +++ b/devops/.gitignore @@ -0,0 +1 @@ +venv \ No newline at end of file diff --git a/devops/app.py b/devops/app.py new file mode 100644 index 0000000..4626d44 --- /dev/null +++ b/devops/app.py @@ -0,0 +1,46 @@ +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) diff --git a/devops/frontend-dockerfile.yml b/devops/frontend-dockerfile.yml index db1a1d8..ae11e55 100644 --- a/devops/frontend-dockerfile.yml +++ b/devops/frontend-dockerfile.yml @@ -6,7 +6,7 @@ WORKDIR /app # Définir une variable d'environnement pour le chemin de la librairie Angular -ENV LIB_PATH=../ma-webapp-angular +ENV LIB_PATH=../sae-csc # Copier les fichiers package.json et package-lock.json de la librairie COPY ${LIB_PATH}/package*.json ./ diff --git a/devops/index.html b/devops/index.html new file mode 100644 index 0000000..04b2d69 --- /dev/null +++ b/devops/index.html @@ -0,0 +1,70 @@ + + + + + Test API Feedback + + + +

Envoyer un feedback à l'API

+
+ + + + + + + + + + +
+
+ + + + diff --git a/devops/openapi.json b/devops/openapi.json new file mode 100644 index 0000000..cab93e4 --- /dev/null +++ b/devops/openapi.json @@ -0,0 +1,8 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Streamlit API", + "version": "0.1.0" + }, + "paths": {} +} \ No newline at end of file diff --git a/devops/requirements.txt b/devops/requirements.txt new file mode 100644 index 0000000..a4a3d2f --- /dev/null +++ b/devops/requirements.txt @@ -0,0 +1,3 @@ +streamlit +fastapi +uvicorn \ No newline at end of file