Démarrer
Trois minutes entre votre clé et votre première prédiction.
1. Une clé d'usage
Les clés d'usage commencent par sk-spv-api-. Créez-en une depuis le tableau de bord, ou par l'API une fois connecté.
export SPAVIK_API_KEY="sk-spv-api-..."
export SPAVIK_BASE_URL="https://spavik-gateway-test-bnp1bedb.ew.gateway.dev"Le secret n'apparaît qu'une fois, au moment de la création. Il ne sera plus jamais affiché.
Environnement
L'adresse ci-dessus est celle de l'environnement de test. Les bibliothèques la lisent dans SPAVIK_BASE_URL, et tous les exemples de cette documentation s'y réfèrent.
2. Vérifier les données, puis un modèle
validate dit, gratuitement, si la table tient et quoi corriger en premier. Créer un modèle, c'est ensuite l'entraîner : les données partent dans le même appel.
rapport = spavik.validate("churn.csv", target="churn")
print(rapport["trial"]["verdict"]["message"]) # Accuracy of 0.83, against 0.50 for the majority class.from spavik import Spavik
spavik = Spavik()
model = spavik.train("churn.csv", target="churn")
print(model.id)import { Spavik } from '@spavik/client';
const spavik = new Spavik();
const model = await spavik.train('churn.csv', { target: 'churn' });
console.log(model.id);curl -X POST "$SPAVIK_BASE_URL/v1/models" \
-H "X-API-Key: $SPAVIK_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"target":"churn","engine":"tabicl-v2","data":[{"plan":"pro","seats":12,"churn":0}, ...]}'Il faut au moins dix lignes, et une colonne à prédire qui prenne au moins deux valeurs différentes. Cet appel ne consomme aucun crédit.
Le champ engine est obligatoire en appel direct. Les bibliothèques s'en chargent : elles lisent le moteur par défaut et le renseignent pour vous.
3. Prédire
r = model.predict({"plan": "pro", "seats": 12, "tickets_90d": 3})
print(r.lignes[0]) # {'prediction': 0, 'proba_0': 0.87, 'proba_1': 0.13}
print(r.cout, r.solde)Chaque ligne scorée coûte un crédit sur le moteur par défaut. Chaque prédiction porte un request_id : gardez-le, c'est par lui que vous remonterez ce qui est réellement arrivé.
4. Boucler
C'est ce qui distingue un modèle figé d'un service qui s'améliore. Remontez ce qui est réellement arrivé, puis intégrez-le.
model.submit_outcomes([
{"request_id": "1bc55e5c-...", "actual": 1}, # par identifiant
{"features": {"plan": "free", "seats": 2}, "actual": 0}, # ou par caractéristiques
])
model.performance(days=30) # le verdict : tient, faiblit ou a décroché
model.refresh() # intègre les vérités, si le modèle tientactual contient la valeur réellement observée. Chaque vérité se rattache soit par le request_id de la prédiction d'origine, soit par les caractéristiques complètes de la ligne. La bibliothèque refuse en local celle qui n'aurait ni l'un ni l'autre, avant même d'envoyer quoi que ce soit.
Envoyez vos vérités par lots : un appel vaut un lot, et sur un modèle en mise à jour automatique, chaque lot déclenche une intégration.
Prévoir une série temporelle
forecast ne conserve rien : ni modèle, ni identifiant.
p = spavik.forecast("ventes.csv", target="ventes", horizon=7)
p.points # [{'date': '2026-08-01', 'ventes_prediction': 118.4, 'quantile_0.1': ...}, ...]
p.csv # le CSV rendu par l'API, tel quel
p.cout # 7 créditsL'API répond en CSV ; la bibliothèque le découpe en lignes, quantiles compris. Votre série doit compter au moins autant de points que l'horizon demandé, et de préférence plusieurs fois plus.
Pour aller plus loin
- Authentification : les deux façons de s'identifier
- Coûts et crédits : ce qui se facture, et ce qui ne se facture pas
- Bibliothèque Python
- Serveur MCP : pour les agents