Explorer
Explorer est votre fenêtre sur le trafic de production.
Il vous permet de rechercher, filtrer et inspecter chaque événement de chat completion qui transite par votre espace de travail.
Explorer est réservé aux administrateurs de l'espace de travail.
Ce que vous pouvez faire
- Rechercher et filtrer les événements par modèle, utilisation d'outils, contenu de message, latence, etc.
- Inspecter tous les enregistrements de conversation (messages, appels d'outils et métadonnées).
- Exporter les événements filtrés vers des Datasets.
- Automatiser en créant des Judges et des Campaigns directement à partir de vos résultats de filtre.
Langage de filtrage
Explorer prend en charge un langage de filtrage structuré.
Vous écrivez des conditions sur les champs d'événements et les combinez avec AND, OR et des parenthèses.
Opérateurs disponibles
| Opérateur | Signification | Exemple |
|---|---|---|
= | Égal à | model_name = "mistral-medium-2508" |
!= | Différent de | model_name != "mistral-medium-2508" |
contains | Contient la sous-chaîne | model_name contains "large" |
includes | La liste contient la valeur | invoked_tools includes "web_search" |
excludes | La liste ne contient pas | invoked_tools excludes "web_search" |
> | Supérieur à | total_time_elapsed > 5 |
< | Inférieur à | total_time_elapsed < 2 |
>= | Supérieur ou égal à | total_time_elapsed >= 5 |
<= | Inférieur ou égal à | total_time_elapsed <= 2 |
isnull | Est nul | api_agent_id isnull False |
length_equals | Longueur de liste égale à | invoked_tools length_equals 3 |
starts_with | Commence par la sous-chaîne | model_name startswith "mistral-med" |
ends_with | Se termine par la sous-chaîne | model_name endswith "-2508" |
matches | Correspond à l'expression regex | model_name matches ".+-8b-.+" |
Champs disponibles
| Champ (libellé de l’interface) | Nom du filtre | Type | Description |
|---|---|---|---|
| Date | timestamp | datetime | Heure à laquelle la requête a été traitée |
| Modèle | model_name | chaîne de caractères | Nom du modèle à l’origine de la réponse |
| Prompt | last_user_message_preview | chaîne de caractères | Aperçu du dernier message de l’utilisateur |
| Réponse | response_messages_preview | chaîne de caractères | Aperçu de la réponse de l’assistant |
| Outils : outils utilisés | invoked_tools | liste | Outils appelés pendant la requête |
| Durée de calcul (s) | total_time_elapsed | nombre | Durée totale de la requête en secondes |
| Tokens en entrée | input_tokens | nombre | Nombre de tokens consommés en entrée |
| Tokens en sortie | output_tokens | nombre | Nombre de tokens générés en sortie |
| ID de l’agent API | api_agent_id | chaîne de caractères | ID de l’agent ayant traité la requête, le cas échéant |
| ID de l’événement | event_id | chaîne de caractères | Identifiant unique de l’événement |
| ID de corrélation | correlation_id | chaîne de caractères | Identifiant utilisé pour suivre une requête entre systèmes |
| Premier message système | first_system_message | chaîne de caractères | Aperçu du premier prompt système |
| Métadonnées | metadata | objet | Métadonnées personnalisées sous forme de paires clé-valeur attachées à la requête |
Exemples
Filtrer par modèle et utilisation d'outils :
model_name = "mistral-medium-2508" AND invoked_tools includes "web_search"Filtrer par famille de modèles avec sortie de code :
(model_name contains "large" OR model_name contains "small") AND invoked_tools includes "code_interpreter"Filtrer par temps de réponse :
total_time_elapsed > 5Combiner plusieurs conditions :
model_name = "mistral-large" AND total_time_elapsed > 5 AND (last_user_message_preview contains "password" OR response_messages_preview contains "error")Utilisez le menu déroulant de saisie semi-automatique pour sélectionner parmi les champs et valeurs suggérés au fur et à mesure de votre saisie.
Conseils de conception de requêtes
- Commencez large avec une plage temporelle, puis affinez.
- Ajoutez une condition métier (par exemple, un outil, une fonctionnalité ou un modèle spécifique).
- Ajoutez une condition technique (par exemple, latence, contenu de message ou outils spécifiques).
- Examinez quelques résultats avant d'exporter. Assurez-vous que l'échantillon est pertinent.
Inspecter les événements
Cliquez sur n'importe quel événement dans la liste des résultats pour voir la vue détaillée complète. Chaque événement comprend :
- Un flux de messages, incluant la conversation complète (entrées utilisateur, réponses de l'assistant et prompts système).
- Une liste de propriétés (nom du modèle, compteurs de tokens, durée de calcul et tous les outils invoqués par le modèle).
Exporter vers un Dataset
Une fois que vous avez filtré pour obtenir un ensemble d'événements utile, vous pouvez les exporter vers un Dataset.
- Sélectionnez un ou plusieurs événements à l'aide des cases à cocher
- Cliquez sur Ajouter au dataset.
- Choisissez un Dataset existant ou créez-en un nouveau.
Traitez les exports de Dataset comme des instantanés. Utilisez des noms descriptifs (par exemple, support_recherche_web_2026_02) et des descriptions claires pour permettre des comparaisons précises dans le temps.
Vous avez trouvé un filtre utile ? Réutilisez-le pour créer un Judge ou une Campaign directement depuis l'interface Explorer.
[Developer] Utiliser Explorer par programmation
Toutes les fonctionnalités d'Explorer sont disponibles via le SDK. Utilisez-le pour automatiser les recherches, construire des pipelines de reporting ou intégrer avec des outils personnalisés.
Recherchez des événements en utilisant la même structure de filtre que l'interface, mais exprimée sous forme de dictionnaires imbriqués.
import os
from mistralai.client import Mistral
mistral = Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
)
# Search for events matching specific criteria
result = mistral.beta.observability.chat_completion_events.search(
search_params={
"filters": {
"AND": [
{"field": "timestamp", "op": "gte", "value": "2026-01-15T00:00:00Z"},
{"field": "timestamp", "op": "lte", "value": "2026-01-16T00:00:00Z"},
{"field": "model_name", "op": "eq", "value": "mistral-medium-2508"},
{"field": "invoked_tools", "op": "includes", "value": "web_search"}
]
}
},
extra_fields=["model_name"],
page_size=20
)
print(f"Found {len(result.completion_events.results)} events")
for event in result.completion_events.results:
print(f"{event.event_id}: {event.extra_fields.get('model_name')}")Filtres complexes avec AND/OR :
# Combine conditions with nested AND/OR
events = mistral.beta.observability.chat_completion_events.search(
search_params={
"filters": {
"AND": [
{"field": "model_name", "op": "eq", "value": "mistral-large"},
{"field": "total_time_elapsed", "op": "gt", "value": 5},
{
"OR": [
{"field": "last_user_message_preview", "op": "contains", "value": "password"},
{"field": "invoked_tools", "op": "includes", "value": "web_search"}
]
}
]
}
}
)
print(f"Found {len(events.completion_events.results)} events")