Aller au contenu principal

Traçage du noyau sémantique

Semantic Kernel est un SDK open source léger qui sert de middleware d’IA pour C#, Python et Java. Il abstrait les interactions avec les modèles et compose des prompts, des fonctions et des plugins entre les fournisseurs.

MLflow Tracing s'intègre à Semantic Kernel pour instrumenter automatiquement les fonctions de rappel du noyau et capturer des traces d'exécution complètes. Aucune modification de la logique de votre application n'est requise — activez-la avec mlflow.semantic_kernel.autolog.

L'intégration fournit une vue complète de :

  • Prompts et réponses de complétion
  • Historique de conversation et messages
  • Latences
  • Nom du modèle et fournisseur
  • Fonctions du noyau et extensions
  • Variables de Template et arguments
  • Informations sur l'utilisation des jetons
  • Toutes les exceptions en cas de levée
remarque

Le streaming n’est pas actuellement tracé.

Prérequis

Pour utiliser MLflow Tracing avec Semantic Kernel, vous devez installer MLflow et les packages Semantic Kernel pertinents.

Pour les environnements de développement, installez le package MLflow complet avec les extras Databricks et Semantic Kernel :

Bash
pip install --upgrade "mlflow[databricks]>=3.1" semantic_kernel openai

Le package mlflow[databricks] complet inclut toutes les fonctionnalités pour le développement local et l’expérimentation sur Databricks.

remarque

MLflow 3 est recommandé pour une expérience de suivi optimale.

Avant d'exécuter les exemples, vous devrez configurer votre environnement :

Pour les utilisateurs en dehors des notebooks Databricks : Définissez vos variables d'environnement Databricks :

Bash
export DATABRICKS_HOST="https://your-workspace.cloud.databricks.com"
export DATABRICKS_TOKEN="your-personal-access-token"

Pour les utilisateurs dans les Notebooks Databricks : ces identifiants sont définis automatiquement pour vous.

Clés API : Assurez-vous que les clés API de votre fournisseur LLM sont configurées. Pour les environnements de production, utilisez AI Gateway ou les secrets Databricks au lieu de valeurs codées en dur pour une gestion sécurisée des clés API.

Bash
export OPENAI_API_KEY="your-openai-api-key"
# Add other provider keys as needed

Exemple d'utilisation

Le noyau sémantique utilise principalement des modèles asynchrones. Dans les Notebooks, vous pouvez await directement ; dans les scripts, encapsulez avec asyncio.run().

Python
import mlflow

mlflow.semantic_kernel.autolog()
remarque

Sur les clusters de compute Serverless, la journalisation automatique pour les cadres de traçage genAI n'est pas activée automatiquement. Vous devez activer explicitement l'autologging en appelant la fonction mlflow.<library>.autolog() appropriée pour les intégrations spécifiques que vous souhaitez suivre.

Python
import openai
from semantic_kernel import Kernel
from semantic_kernel.connectors.ai.open_ai import OpenAIChatCompletion

openai_client = openai.AsyncOpenAI()

kernel = Kernel()
kernel.add_service(
OpenAIChatCompletion(
service_id="chat-gpt",
ai_model_id="gpt-4o-mini",
async_client=openai_client,
)
)

answer = await kernel.invoke_prompt("Is sushi the best food ever?")
print("AI says:", answer)

Suivi de l'utilisation des jetons

MLflow 3.2.0+ enregistre l'utilisation des jetons par appel LLM et agrège les totaux dans les informations de trace.

Python
import mlflow

last_trace_id = mlflow.get_last_active_trace_id()
trace = mlflow.get_trace(trace_id=last_trace_id)

print(trace.info.token_usage)
for span in trace.data.spans:
usage = span.get_attribute("mlflow.chat.tokenUsage")
if usage:
print(span.name, usage)

Désactiver le suivi automatique

Désactivez le traçage automatique du noyau sémantique avec mlflow.semantic_kernel.autolog(disable=True) ou désactivez tout avec mlflow.autolog(disable=True).