Pular para o conteúdo principal

Query modelos com a API TypeSafe System One

A System One API do TypeSafe avalia o estado da aplicação com base em perguntas tipadas e retorna respostas estruturadas. No Databricks, envie solicitações para um serviço de modelo habilitado para System One por meio do Unity Gateway. A rota do Databricks usa o formato de solicitação e resposta do System One.

Use a System One API quando uma aplicação precisar de uma decisão compacta e estruturada em vez de texto gerado. Pode ser uma boa opção quando o tempo de resposta for importante, por exemplo, para decidir se uma solicitação precisa de escalonamento, escolher um rótulo de roteamento ou pontuá-la em relação a uma rubrica. O tempo de resposta depende do serviço de modelo e da carga de solicitações.

Para decisões sobre linhas de tabela em SQL, consulte a funçãoai_decide.

Requisitos​

  • Um Workspace habilitado para o Unity Catalog e o Unity Gateway.
  • Um serviço de modelo do Unity Catalog com suporte a um modelo compatível com o System One. O exemplo usa o serviço de modelo openjev-qwen35-4b, cujo nome totalmente qualificado é system.ai.openjev-qwen35-4b.
  • Permissão para executar o serviço de modelo.

A rota System One requer um serviço de modelo do Unity Catalog. Ele não oferece suporte a um serviço de provedor de modelo ou a um endpoint de atendimento que não seja do Unity Catalog.

Faça query de um serviço de modelo​

O corpo da solicitação contém o nome do serviço de modelo totalmente qualificado, o estado a ser avaliado e uma ou mais perguntas nomeadas. Cada pergunta usa um dos tipos noul, choice ou score.

A solicitação a seguir inclui uma pergunta de cada tipo:

Bash
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "system.ai.openjev-qwen35-4b",
"state": {
"message": "My card was charged twice for the same order and I need a refund.",
"channel": "support"
},
"questions": {
"is_billing": {
"type": "noul",
"instructions": "Is this a billing-related request?",
"criteria": {
"true": "The message concerns a charge, payment, invoice, or refund.",
"false": "The message does not concern billing."
}
},
"intent": {
"type": "choice",
"instructions": "Which intent best matches the message?",
"criteria": {
"refund": "The customer requests a refund.",
"duplicate_charge": "The customer reports being charged more than once.",
"other": "Another request."
}
},
"urgency": {
"type": "score",
"instructions": "How urgent is the request?",
"criteria": [
"Can wait",
"Needs attention soon",
"Urgent"
]
}
}
}' \
https://<workspace_host>/ai-gateway/typesafe/v1/systemone

Use o nome totalmente qualificado do serviço de modelo do Unity Catalog, system.ai.openjev-qwen35-4b, no campo model da solicitação.

Campos de solicitação​

campo

Tipo

Descrição

model

String

O nome do serviço de modelo do Unity Catalog totalmente qualificado, como system.ai.openjev-qwen35-4b.

state

strings, objeto ou matriz

O conteúdo a ser avaliado. Use uma strings para texto ou dados estruturados para registros, conversas ou estado de aplicativo.

questions

Objeto

Um mapa não vazio de IDs de perguntas para definições de perguntas. A resposta usa os mesmos IDs no objeto answers.

campo

Tipo

Descrição

model

String

O nome do serviço de modelo do Unity Catalog totalmente qualificado, como system.ai.openjev-qwen35-4b.

state

strings, objeto ou matriz

O conteúdo a ser avaliado. Use uma strings para texto ou dados estruturados para registros, conversas ou estado de aplicativo.

questions

Objeto

Um mapa não vazio de IDs de perguntas para definições de perguntas. A resposta usa os mesmos IDs no objeto answers.

Cada pergunta tem um type, um instructions opcional e um criteria específico do tipo:

Perguntas do Noul​

Uma pergunta do tipo noul retorna a probabilidade de a resposta ser sim. O objeto opcional criteria descreve o que true e false significam. Forneça instructions ou uma descrição para true ou false. A resposta contém um número noul de 0 (não) a 1 (sim).

Perguntas de escolha​

Uma pergunta do tipo choice seleciona uma opção do objeto criteria. Cada opção é mapeada para uma descrição ou para null quando nenhuma descrição adicional for necessária. Defina de 1 a 255 opções. A resposta contém o choice selecionado, uma probabilidade para cada opção e um valor confidence.

Pontuar perguntas​

Uma pergunta de score classifica o estado em relação a uma matriz de criteria ordenada. A resposta contém um(a) score ponderado(a) por probabilidade, um(a) legend que mapeia índices de nível para os critérios, probabilidades para cada nível e um valor de confidence. Defina de 1 a 10 níveis.

Formato de resposta​

A resposta contém o identificador do modelo e uma resposta para cada pergunta em answers. O uso de tokens aparece em usage, com input_tokens e output_tokens:

JSON
{
"model": "<returned-model-id>",
"answers": {
"is_billing": {
"type": "noul",
"noul": 0.98
},
"intent": {
"type": "choice",
"choice": "duplicate_charge",
"confidence": 0.965,
"probabilities": {
"refund": 0.023,
"duplicate_charge": 0.977,
"other": 0.0002
}
},
"urgency": {
"type": "score",
"score": 1.902,
"confidence": 0.852,
"legend": {
"0": "Can wait",
"1": "Needs attention soon",
"2": "Urgent"
},
"probabilities": {
"0": 0.0069,
"1": 0.0845,
"2": 0.9086
}
}
},
"usage": {
"input_tokens": 238,
"output_tokens": 0
}
}

Esta resposta é baseada na solicitação acima, com valores numéricos arredondados. Respostas, probabilidades, valores de confiança, contagens de tokens e o identificador do modelo retornado variam por requisição e back-end. O valor de resposta model identifica o modelo relatado pelo back-end e pode diferir do nome do serviço de modelo totalmente qualificado da requisição.

Erros de solicitação​

Para erros de validação de solicitação, a rota retorna HTTP 422 com uma matriz detail que descreve a solicitação inválida.

Outros recursos​