Pular para o conteúdo principal
O Model Serving do Databricks hospeda tanto modelos externos quanto agentes criados com a interface ResponsesAgent do MLflow. Registre o AI Gateway como um modelo externo para acessar mais de 500 modelos de dentro do Databricks e instrumente agentes com OpenTelemetry para capturar suas chamadas de LLM no Toqan Router.

AI Gateway

Sirva qualquer modelo do Toqan Router por meio de um serving endpoint do Databricks, com acompanhamento de custos e fallbacks.

Observabilidade

Exporte traces de agentes em execução no Model Serving, com prompts, tokens e custo.

Pré-requisitos

  • Uma conta no Toqan Router e uma chave de API
  • Um workspace do Databricks com o Model Serving habilitado
  • MLflow 3.11 ou posterior, além de databricks-sdk e databricks-agents instalados localmente

Armazenar a chave de API

As duas seções abaixo leem a chave de um secret do Databricks. Mantenha-a lá em vez de colocá-la na configuração do endpoint, onde qualquer pessoa com acesso de visualização ao endpoint pode lê-la. Ignore create_scope se o scope já existir:

AI Gateway

Os modelos externos do Databricks aceitam qualquer endpoint compatível com OpenAI por meio do provedor custom, então o AI Gateway pode servir de base para um serving endpoint do Databricks. Defina external_model.name como o modelo a ser servido e aponte custom_provider_url para o AI Gateway:
Consulte-o como qualquer outro serving endpoint do Databricks. As chamadas aparecem em Traces com modelo, uso de tokens e custo:
Qualquer modelo habilitado funciona. Defina external_model.name como o slug do modelo no Toqan Router e consulte os modelos compatíveis. Um endpoint serve um único modelo, então crie um endpoint por modelo.

Observabilidade

Adicionar o OpenTelemetry a um agente já em execução no Model Serving envia as chamadas de LLM dele ao Toqan Router, com o conteúdo completo de solicitações e respostas, uso de tokens e custo. São quatro alterações: adicionar um exporter no nível do módulo, fazer o flush ao final de predict, declarar três pacotes extras e passar o endpoint e a chave no momento do deploy.
Isto abrange agentes implantados a partir de código com agents.deploy(). Agentes criados no construtor no-code Agent Bricks são executados em um endpoint gerenciado pelo Databricks, que não expõe variáveis de ambiente nem dependências do modelo, portanto não podem ser instrumentados dessa forma.

Adicionar o exporter ao agente

Adicione isto no nível do módulo no arquivo do agente, acima da classe do agente. Isso abre a conexão com o Toqan Router e anexa o instrumentor que registra as chamadas de LLM. O OpenAIInstrumentor registra chamadas feitas pelo SDK da OpenAI, que é o que WorkspaceClient().serving_endpoints.get_open_ai_client() retorna. Agentes criados com outra biblioteca cliente precisam do instrumentor OpenInference correspondente no lugar dele; caso contrário, o agente é implantado sem erros, mas não produz spans:
Em seguida, faça o flush ao final de predict, antes de retornar. O Model Serving mantém o contêiner ativo entre as solicitações, então é o flush que envia os spans prontamente em vez de deixá-los na fila:

Declarar as dependências

O ambiente de serving instala apenas os pacotes declarados no modelo, então adicione estes ao pip_requirements existente em log_model. Sem eles, o agente falha ao importar no momento da solicitação:

Passar o endpoint e a chave

Adicione estes a environment_vars em agents.deploy(). OTEL_SERVICE_NAME é opcional e define o nome usado posteriormente para filtrar traces:
Configurar o OTLP apenas pelas variáveis padrão OTEL_EXPORTER_OTLP_* não exporta traces do Model Serving. O runtime gerenciado configura seu próprio tracing do MLflow, que tem precedência, e os spans chegam ao experimento do Databricks em vez do Toqan Router. Em vez disso, adicione o exporter ao agente conforme mostrado acima.
Uma referência a secret só é substituída quando é o valor inteiro de uma variável. Escrever Authorization=Bearer {{secrets/toqan/api_key}} envia as chaves literalmente, e o Toqan Router rejeita os spans com um 401. Passe a chave em sua própria variável, como acima, e monte o header no agente.

Visualizar traces

Os traces aparecem no AI Studio na aba Traces. Cada chamada de LLM chega como um span contendo as mensagens de solicitação e resposta, os tokens de prompt e de completion, o modelo e o provedor resolvidos e o custo calculado. Filtre pelo valor definido em OTEL_SERVICE_NAME para isolar um agente.

Exemplo completo

Este exemplo chama um endpoint nativo do Databricks. Para rotear o agente pelo AI Gateway, defina LLM_ENDPOINT como o endpoint criado acima.