Wysyłaj zapytania do modeli za pomocą interfejsu API TypeSafe System One

System One API firmy TypeSafe to format żądań i odpowiedzi służący do oceny stanu aplikacji względem pytań o określonych typach oraz zwracania ustrukturyzowanych odpowiedzi. W Azure Databricks wysyłasz żądania System One przez Unity Gateway do usługi modelu Unity Catalog hostowanej przez Databricks, a nie do modelu TypeSafe. Na przykład OpenJev (Qwen3.5 4B) to otwarty model oparty na Qwen3.5, który obsługuje API System One.

Korzystaj z interfejsu API System One, gdy aplikacja potrzebuje zwięzłej, uporządkowanej decyzji zamiast generowanego tekstu. Może to być dobre dopasowanie, gdy liczy się czas odpowiedzi, na przykład do decyzji, czy żądanie wymaga eskalacji, wyboru etykiety routingu lub oceny według rubryki. Czas reakcji zależy od usługi modelu i obciążenia żądań.

W przypadku decyzji dotyczących wierszy tabeli w SQL zobacz ai_decidefunkcję.

Requirements

  • Przestrzeń robocza obsługująca Unity Catalog i Unity Gateway.
  • Usługa modelu katalogu Unity wspierana modelem zgodnym z System One. Przykład wykorzystuje usługę modelu openjev-qwen35-4b, której pełna kwalifikowana nazwa to system.ai.openjev-qwen35-4b.
  • Uprawnienie do uruchamiania usługi modelu.

Ścieżka System One wymaga usługi modelu Unity Catalog. Nie obsługuje usługi dostawcy modelu ani punktu końcowego obsługującego Unity Catalog.

Wykonaj zapytanie do usługi modelu

Treść żądania zawiera w pełni kwalifikowaną nazwę usługi modelu, stan do oceny oraz jedno lub więcej nazwanych pytań. Każde pytanie używa jednego z typów noul, choice, lub score .

Poniższe żądanie zawiera po jednym pytaniu każdego typu:

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

Użyj w pełni kwalifikowanej nazwy usługi modelu Unity Catalog, system.ai.openjev-qwen35-4b, w polu model żądania.

Pola żądania

Pole Typ Description
model String W pełni kwalifikowana nazwa modelu usługi Unity Catalog, taka jak system.ai.openjev-qwen35-4b.
state Ciąg znaków, obiekt lub tablica Treść do oceny. Użyj ciągu znaków dla tekstu lub danych strukturalnych dla rekordów, rozmów lub stanu aplikacji.
questions Object Niepusta mapa identyfikatorów pytań na definicje pytań. Odpowiedź używa tych samych identyfikatorów w obiekcie answers.

Każde pytanie ma type, opcjonalne instructions, oraz specyficzne criteriadla typu:

Pytania Noul

Pytanie noul zwraca prawdopodobieństwo, że odpowiedź brzmi tak. Obiekt opcjonalny criteria opisuje, co znaczą true i false. Dostarcz albo instructions lub opis dla true lub false. Odpowiedź zawiera liczbę noul od 0 (nie) do 1 (tak).

Pytania z wyborem

Pytanie choice, które pozwala wybrać jedną opcję z obiektu criteria. Każda opcja odpowiada opisowi lub null, gdy dodatkowy opis nie jest potrzebny. Zdefiniuj 1–255 opcji. Odpowiedź zawiera wybrane choice, prawdopodobieństwo dla każdej opcji oraz wartość confidence .

Oceń pytania

Pytanie oceniające score stan względem uporządkowanej criteria tablicy. Odpowiedź zawiera ważone prawdopodobieństwem score, element legend, który mapuje indeksy poziomów na kryteria, prawdopodobieństwa dla każdego poziomu oraz wartość confidence. Zdefiniuj od 1 do 10 poziomów.

Format odpowiedzi

Odpowiedź zawiera identyfikator modelu oraz jedną odpowiedź na każde pytanie w answers. Użycie tokena pojawia się w usage, z input_tokens i output_tokens:

{
  "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
  }
}

Ta odpowiedź opiera się na powyższym żądaniu, z zaokrągleniem wartości liczbowych. Odpowiedzi, prawdopodobieństwa, wartości pewności, liczba tokenów oraz zwrócony identyfikator modelu różnią się w zależności od żądania i backendu. Wartość response model identyfikuje model raportowany przez backend i może różnić się od tej w pełni kwalifikowanej nazwy modelu usługi żądania.

Błędy żądań

W przypadku błędów walidacji żądań trasa zwraca HTTP 422 wraz z tablicą detail, opisującą nieprawidłowe żądanie.

Dodatkowe zasoby