NIA One · Docs
Intégration SDK

Capturer les données

Au-delà des steps, vous émettez les données qui rendent une trace exploitable : entrées/sorties, métriques, logs. Tout se rattache au step (ou au flow) courant.

payload — entrées, sorties, contexte

Un payload porte un descripteur Data (rôle, type, format) et le contenu lui-même.

from niaone_sdk.models import Datafrom niaone_sdk.enums import DataRole, DataKind, DataFormat# entréepayload(step, "input",      Data(role=DataRole.INPUT, kind=DataKind.MESSAGES, format=DataFormat.JSON),      {"messages": [{"role": "user", "content": "Comment réinitialiser mon mot de passe ?"}]})# sortiepayload(step, "output",      Data(role=DataRole.OUTPUT, kind=DataKind.COMPLETION, format=DataFormat.TEXT),      "Allez dans Réglages → Sécurité…")
Data.roleData.kind (exemples)Data.format
INPUT / OUTPUTMESSAGES, COMPLETION, TOOL_ARGS, TOOL_RESULTTEXT
CONTEXTRETRIEVAL_CONTEXT, DOCUMENT_CHUNK, PROMPT_TEMPLATEJSON
ARTIFACTPREDICTIONS, FEATURE_VECTOR, GROUND_TRUTHARRAY / OBJECT

metric — mesures quantitatives

Émettez une métrique ponctuelle, ou accumulez-en sur le step (mergées à end_step). Préférez les clés standardisées (StandardMetric) pour que le cockpit les agrège correctement.

# ponctuelmetric(step, "latency_ms", 950, unit="ms")# accumulé puis flush par end_stepstep.add_metrics({"input_tokens": 45, "output_tokens": 120})end_step(step, "success")
StandardMetricunitésens
input_tokens / output_tokenscountTokens d'entrée / sortie
total_tokenscountTotal tokens
cost_usdusdCoût estimé
latency_ms / duration_msmsLatence / durée
time_to_first_token_msmsTTFT (streaming)
tokens_per_secondcountDébit de génération
cache_read_tokenscountTokens lus depuis le cache
error_count / retry_countcountErreurs / retries
chunks_retrieved / chunks_relevantcountRAG

Tokens LLM en un appel

Inutile de mapper les tokens à la main : trace_llm_call(step, response) normalise l'usage OpenAI / Anthropic / Gemini et émet la complétion. Voir Instrumentation LLM.

log — logs rattachés au span

log(step, "warning", "réponse tronquée, retry conseillé")

On this page