Rastreando agentes de esmola
Smolagents é uma estrutura de agente leve que enfatiza o minimalismo e a capacidade de composição.
MLflow Tracing integra-se com o Smolagents para capturar rastros simplificados do fluxo de trabalho de agentes leves. Ative-o com mlflow.smolagents.autolog
.
O rastreamento automático do MLflow só é compatível com chamadas síncronas. Os métodos assíncronos API e de transmissão não são rastreados.
Pré-requisitos
Para usar o MLflow Tracing com o Smolagents, o senhor precisa instalar o MLflow e o pacote Smolagents relevante.
- Development
- Production
Para ambientes de desenvolvimento, instale o pacote completo do MLflow com extras do Databricks e Smolagents:
pip install --upgrade "mlflow[databricks]>=3.1" smolagents openai
O pacote completo do mlflow[databricks]
inclui todos os recursos para desenvolvimento local e experimentação no Databricks.
Para implantações de produção, instale mlflow-tracing
e Smolagents:
pip install --upgrade mlflow-tracing smolagents openai
O pacote mlflow-tracing
é otimizado para uso na produção.
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:
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 .
export OPENAI_API_KEY="your-openai-api-key"
# Add other provider keys as needed
Exemplo de uso
import mlflow
mlflow.smolagents.autolog()
from smolagents import CodeAgent, LiteLLMModel
import mlflow
# Turn on auto tracing for Smolagents by calling mlflow.smolagents.autolog()
mlflow.smolagents.autolog()
model = LiteLLMModel(model_id="openai/gpt-4o-mini", api_key=API_KEY)
agent = CodeAgent(tools=[], model=model, add_base_tools=True)
result = agent.run(
"Could you give me the 118th number in the Fibonacci sequence?",
)
execução de seu fluxo de trabalho Smolagents como de costume. Os traços aparecerão na interface do usuário do experimento.
tokens acompanhamento uso
MLflow logs uso de tokens para cada chamada do agente ao atributo mlflow.chat.tokenUsage
. O uso total de tokens em todo o rastreamento está disponível no campo token_usage
do objeto de informações de rastreamento.
import json
import mlflow
mlflow.smolagents.autolog()
model = LiteLLMModel(model_id="openai/gpt-4o-mini", api_key=API_KEY)
agent = CodeAgent(tools=[], model=model, add_base_tools=True)
result = agent.run(
"Could you give me the 118th number in the Fibonacci sequence?",
)
# Get the trace object just created
last_trace_id = mlflow.get_last_active_trace_id()
trace = mlflow.get_trace(trace_id=last_trace_id)
# Print the token usage
total_usage = trace.info.token_usage
print("== Total token usage: ==")
print(f" Input tokens: {total_usage['input_tokens']}")
print(f" Output tokens: {total_usage['output_tokens']}")
print(f" Total tokens: {total_usage['total_tokens']}")
# Print the token usage for each LLM call
print("\n== Detailed usage for each LLM call: ==")
for span in trace.data.spans:
if usage := span.get_attribute("mlflow.chat.tokenUsage"):
print(f"{span.name}:")
print(f" Input tokens: {usage['input_tokens']}")
print(f" Output tokens: {usage['output_tokens']}")
print(f" Total tokens: {usage['total_tokens']}")
Desativar o rastreamento automático
Desative com mlflow.smolagents.autolog(disable=True)
ou globalmente com mlflow.autolog(disable=True)
.