madamanastasia
update docs with correct URLs and price
e2b371d
Raw
History Blame Contribute Delete
6.25 kB
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Getaround — Documentation de l'API Pricing</title>
<style>
body { font-family: sans-serif; max-width: 860px; margin: 40px auto; padding: 0 24px; color: #1a1a1a; }
h1 { color: #1565C0; }
h2 { color: #1565C0; border-bottom: 1px solid #e0e0e0; padding-bottom: 6px; }
h3 { color: #333; }
code, pre { background: #f4f4f4; border-radius: 6px; padding: 2px 6px; font-family: monospace; font-size: 13px; }
pre { padding: 14px; overflow-x: auto; }
.endpoint { background: #f0f4ff; border-left: 4px solid #1565C0; padding: 10px 16px; border-radius: 6px; margin-bottom: 10px; }
.badge { display: inline-block; padding: 2px 10px; border-radius: 4px; font-size: 12px; font-weight: 700; margin-right: 8px; }
.get { background: #e3f2fd; color: #1565C0; }
.post { background: #fff3e0; color: #e65100; }
ul li { margin-bottom: 6px; }
.note { background: #fff8e1; border-left: 4px solid #f9a825; padding: 10px 16px; border-radius: 6px; margin-top: 16px; }
</style>
</head>
<body>
<h1>🚗 Getaround — Documentation de l'API Pricing</h1>
<p>Documentation de l'API accessible via <code>/docs</code>. Cette API expose un modèle de Machine Learning qui prédit <code>rental_price_per_day</code> en fonction des caractéristiques du véhicule.</p>
<h2>Vue d'ensemble</h2>
<ul>
<li><span class="badge get">GET</span> <code>/</code> — Page d'accueil (HTML)</li>
<li><span class="badge get">GET</span> <code>/health</code> — Healthcheck (JSON)</li>
<li><span class="badge post">POST</span> <code>/predict</code> — Prédiction (JSON)</li>
<li><span class="badge get">GET</span> <code>/docs</code> — Documentation (HTML)</li>
</ul>
<h2>GET /</h2>
<div class="endpoint">
<span class="badge get">GET</span> Page d'accueil HTML listant les endpoints disponibles.
</div>
<pre>curl -s https://anabeldg-getaround-pricing-api.hf.space/</pre>
<h2>GET /health</h2>
<div class="endpoint">
<span class="badge get">GET</span> Vérifie que le service est actif et que le modèle est correctement chargé.
</div>
<pre>curl -s https://anabeldg-getaround-pricing-api.hf.space/health</pre>
<p>Réponse attendue :</p>
<pre>{
"status": "ok"
}</pre>
<h2>GET /docs</h2>
<div class="endpoint">
<span class="badge get">GET</span> Page HTML contenant la documentation de l'API.
</div>
<pre>curl -s https://anabeldg-getaround-pricing-api.hf.space/docs</pre>
<h2>POST /predict</h2>
<div class="endpoint">
<span class="badge post">POST</span> Retourne les prédictions de prix journalier (<code>rental_price_per_day</code>) pour une ou plusieurs lignes en entrée.
</div>
<ul>
<li><strong>Méthode :</strong> POST</li>
<li><strong>Entrée :</strong> JSON avec une clé <code>input</code></li>
<li><strong>Sortie :</strong> JSON <code>{"prediction": [...]}</code> (une prédiction par ligne)</li>
</ul>
<h3>Formats acceptés</h3>
<ul>
<li>Format matrice (requis pour l'évaluation) : <code>{"input": [[...], [...]]}</code></li>
<li>Format dictionnaires (optionnel / compatibilité) : <code>{"input": [{"feature": value, ...}]}</code></li>
</ul>
<h3>1) Format matrice (requis)</h3>
<p>Chaque ligne doit contenir exactement <strong>13 valeurs</strong>, dans l'ordre strict suivant (défini par <code>feature_order.json</code>) :</p>
<pre>model_key, mileage, engine_power, fuel, paint_color, car_type,
private_parking_available, has_gps, has_air_conditioning, automatic_car,
has_getaround_connect, has_speed_regulator, winter_tires</pre>
<p>Types attendus :</p>
<ul>
<li><code>model_key</code>, <code>fuel</code>, <code>paint_color</code>, <code>car_type</code> → chaînes de caractères</li>
<li><code>mileage</code>, <code>engine_power</code> → valeurs numériques</li>
<li>Variables booléennes → <code>true</code>/<code>false</code> ou <code>0</code>/<code>1</code></li>
</ul>
<p>Si une ligne n'a pas 13 valeurs, l'API renvoie une erreur <code>422</code>.</p>
<p><strong>Exemple de requête (matrice) :</strong></p>
<pre>{
"input": [
["Citroën", 140411, 100, "diesel", "black", "convertible", 1, 1, 0, 0, 1, 1, 1]
]
}</pre>
<p><strong>curl :</strong></p>
<pre>curl -X POST "https://anabeldg-getaround-pricing-api.hf.space/predict" \
-H "Content-Type: application/json" \
-d '{"input":[["Citroën",140411,100,"diesel","black","convertible",1,1,0,0,1,1,1]]}'</pre>
<p><strong>Python :</strong></p>
<pre>import requests
payload = {
"input": [
["Citroën", 140411, 100, "diesel", "black", "convertible", 1, 1, 0, 0, 1, 1, 1]
]
}
r = requests.post("https://anabeldg-getaround-pricing-api.hf.space/predict", json=payload)
print(r.json())
# {"prediction": [106.57]}</pre>
<h3>2) Format dictionnaires (compatibilité)</h3>
<p>Ce format est accepté pour des raisons de compatibilité. Toutes les colonnes attendues doivent être présentes ; l'API réordonne ensuite selon <code>FEATURE_ORDER</code>.</p>
<p><strong>Exemple de requête (dictionnaires) :</strong></p>
<pre>{
"input": [
{
"model_key": "Citroën",
"mileage": 140411,
"engine_power": 100,
"fuel": "diesel",
"paint_color": "black",
"car_type": "convertible",
"private_parking_available": true,
"has_gps": true,
"has_air_conditioning": false,
"automatic_car": false,
"has_getaround_connect": true,
"has_speed_regulator": true,
"winter_tires": true
}
]
}</pre>
<h3>Réponse</h3>
<p>Une prédiction par ligne.</p>
<pre>{
"prediction": [106.57]
}</pre>
<h2>Erreurs possibles</h2>
<ul>
<li><code>422</code> — entrée invalide (mauvaise dimension de matrice, colonnes manquantes, JSON invalide)</li>
<li><code>500</code> — erreur interne lors de la prédiction (échec du modèle)</li>
</ul>
<div class="note">
<strong>Notes :</strong>
<ul>
<li>L'API supporte des prédictions en batch (plusieurs lignes dans <code>input</code>).</li>
<li>Les catégories inconnues sont gérées par le pipeline du modèle.</li>
<li>Pour éviter les erreurs 422, respecter strictement l'ordre et le nombre de features en mode matrice.</li>
</ul>
</div>
</body>
</html>