Spaces:
Sleeping
Sleeping
| -- ===================================================== | |
| -- AUDIT : Traçabilité des appels API / prédictions | |
| -- ===================================================== | |
| CREATE SCHEMA IF NOT EXISTS audit; | |
| -- 1) Requêtes (inputs envoyés au modèle) | |
| DROP TABLE IF EXISTS audit.prediction_requests; | |
| CREATE TABLE audit.prediction_requests ( | |
| request_id BIGSERIAL PRIMARY KEY, | |
| created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), | |
| id_employee INT NULL, | |
| payload JSONB NOT NULL | |
| ); | |
| -- 2) Réponses (outputs générés par le modèle) | |
| DROP TABLE IF EXISTS audit.prediction_responses; | |
| CREATE TABLE audit.prediction_responses ( | |
| response_id BIGSERIAL PRIMARY KEY, | |
| created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), | |
| request_id BIGINT NOT NULL | |
| REFERENCES audit.prediction_requests(request_id) | |
| ON DELETE CASCADE, | |
| proba DOUBLE PRECISION NOT NULL, | |
| prediction INT NOT NULL, | |
| threshold DOUBLE PRECISION NOT NULL, | |
| status TEXT NOT NULL DEFAULT 'OK', | |
| error_message TEXT NULL | |
| ); | |
| -- Index utiles | |
| CREATE INDEX IF NOT EXISTS idx_pred_req_employee | |
| ON audit.prediction_requests(id_employee); | |
| CREATE INDEX IF NOT EXISTS idx_pred_req_created_at | |
| ON audit.prediction_requests(created_at); | |
| CREATE INDEX IF NOT EXISTS idx_pred_res_request_id | |
| ON audit.prediction_responses(request_id); | |