Pular para o conteúdo principal

Rastreando o kernel semântico

O Semantic Kernel é um código aberto SDK leve que atua como middleware AI para C#, Python e Java. Ele abstrai as interações do modelo e compõe solicitações, funções e plug-ins entre os provedores.

O MLflow Tracing integra-se ao Semantic Kernel para instrumentar automaticamente os retornos de chamada do kernel e capturar traços de execução abrangentes. Nenhuma alteração na lógica do seu aplicativo é necessária. Ative-a commlflow.semantic_kernel.autolog.

A integração fornece um view completo dos senhores:

  • Solicitações e respostas de conclusão
  • Histórico de bate-papo e mensagens
  • Latências
  • Nome do modelo e fornecedor
  • Funções e plug-ins do kernel
  • variáveis e argumentos do padrão
  • informações sobre o uso de tokens
  • Quaisquer exceções, se levantadas
nota

A transmissão não é rastreada atualmente.

Pré-requisitos

Para usar o MLflow Tracing com o Semantic Kernel, o senhor precisa instalar o MLflow e o pacote relevante do Semantic Kernel.

Para ambientes de desenvolvimento, instale o pacote completo do MLflow com os extras do Databricks e o Semantic Kernel:

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

O pacote completo do mlflow[databricks] inclui todos os recursos para desenvolvimento local e experimentação no Databricks.

nota

O MLflow 3 é recomendado para obter a melhor experiência de rastreamento.

Antes de executar os exemplos, você precisará configurar seu ambiente:

Para usuários fora do Databricks Notebook : Defina seu Databricks variável de ambiente:

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

Para usuários do Databricks Notebook : Essas credenciais são definidas automaticamente para o senhor.

API chave : Verifique se o provedor LLM API key está configurado. Para ambientes de produção, use segredosMosaic AI Gateway ou Databricks em vez de valores codificados para um gerenciamento seguro API key .

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

Exemplo de uso

O Semantic Kernel usa principalmente padrões assíncronos. No Notebook, o senhor pode acessar await diretamente; em scripts, use asyncio.run().

Python
import mlflow

mlflow.semantic_kernel.autolog()
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)

acompanhamento do uso de tokens

MLflow 3.2.0+ registra o uso de tokens por chamada LLM e agrega os totais nas informações de rastreamento.

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)

Desativar o rastreamento automático

Desative o rastreamento automático do Kernel Semântico com ou mlflow.semantic_kernel.autolog(disable=True) mlflow.autolog(disable=True) desative tudo com.