Modelle mit der TypeSafe System One API abfragen

Die System One API von TypeSafe ist ein Anfrage- und Antwortformat zur Bewertung des Anwendungszustands anhand von typisierten Fragen und zur Rückgabe strukturierter Antworten. Auf Azure Databricks sendet man System-One-Anfragen über Unity Gateway an einen Unity Catalog-Modelldienst, der von Databricks gehostet wird, nicht an ein TypeSafe-Modell. Zum Beispiel ist OpenJev (Qwen3.5 4B) ein offenes Modell, das auf Qwen3.5 basiert und die System One API unterstützt.

Verwenden Sie die System One API, wenn eine Anwendung eine kompakte, strukturierte Entscheidung anstelle von generierter Prosa benötigt. Es kann gut passen, wenn die Reaktionszeit wichtig ist, zum Beispiel um zu entscheiden, ob eine Anfrage eskaliert werden muss, ein Routing-Label zu wählen oder sie mit einer Rubrik zu bewerten. Die Antwortzeit hängt vom Modelldienst und der Anzahl der Anfragen ab.

Für zeilenweise Entscheidungen in SQL siehe die ai_decide Funktion.

Anforderungen

  • Ein Arbeitsbereich, der für Unity Catalog und Unity Gateway aktiviert ist.
  • Ein Unity-Katalog-Modelldienst, der auf einem mit System One kompatiblen Modell basiert. Das Beispiel verwendet den openjev-qwen35-4b Modelldienst, dessen vollständig qualifizierter Name lautet system.ai.openjev-qwen35-4b.
  • Berechtigung zur Ausführung des Modelldienstes.

Die System-One-Route benötigt einen Unity Catalog-Modelldienst. Ein Modellanbieterdienst oder ein Bereitstellungsendpunkt, der nicht zu Unity Catalog gehört, wird nicht unterstützt.

Abfrage eines Modelldienstes

Der Anforderungstext enthält den vollqualifizierten Modelldienstnamen, den auszuwertenden Status und eine oder mehrere benannte Fragen. Jede Frage verwendet einen der noul, choice oder score Typen.

Die folgende Anfrage enthält jeweils eine Frage jedes Typs:

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

Verwenden Sie den voll qualifizierten Unity Catalog Model Service Name system.ai.openjev-qwen35-4b im Feld model der Anfrage.

Anforderungsfelder

Feld Typ Description
model String Der voll qualifizierte Unity Catalog Modell-Servicename, wie zum Beispiel system.ai.openjev-qwen35-4b.
state String, Objekt oder Array Der zu bewertende Inhalt. Verwenden Sie eine Zeichenkette für Text oder strukturierte Daten für Datensätze, Konversationen oder den Anwendungsstatus.
questions Object Eine nicht-leere Abbildung von Frage-IDs zu Fragedefinitionen. Die Antwort verwendet dieselben IDs im answers Objekt.

Jede Frage verfügt über eine type, eine optionale instructions und typspezifische criteria:

Noul-Fragen

Eine noul-Frage gibt die Wahrscheinlichkeit zurück, dass die Antwort ja ist. Das optionale criteria Objekt beschreibt, was true und false bedeuten. Geben Sie entweder instructions oder eine Beschreibung für true oder falsean. Die Antwort enthält eine noul Zahl von 0 (nein) bis 1 (ja).

Wahlfragen

Bei einer choice Frage wird eine Option aus dem criteria Objekt ausgewählt. Jede Option ist einer Beschreibung oder null zugeordnet, wenn keine zusätzliche Beschreibung erforderlich ist. Definieren Sie 1 bis 255 Optionen. Die Antwort enthält das ausgewählte choice, eine Wahrscheinlichkeit für jede Option und einen confidence-Wert.

Fragen bewerten

Eine score-Frage bewertet den Status anhand eines geordneten criteria-Arrays. Die Antwort enthält einen wahrscheinlichkeitsgewichteten score, ein legend, das Ebenenindizes den Kriterien zuordnet, Wahrscheinlichkeiten für jede Ebene und einen confidence-Wert. Definiere 1 bis 10 Stufen.

Antwortformat

Die Antwort enthält die Modellkennung und eine Antwort für jede Frage in answers. Die Verwendung von Token erscheint in usage, mit input_tokens und 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
  }
}

Diese Antwort basiert auf der obigen Anfrage, mit gerundeten numerischen Werten. Antworten, Wahrscheinlichkeiten, Konfidenzwerte, Token-Zahlen und die zurückgegebene Modellkennung variieren je nach Anfrage und Backend. Der Wert der Antwort model identifiziert das vom Backend gemeldete Modell und kann sich vom vollständig qualifizierten Modell-Servicenamen der Anfrage unterscheiden.

Anfragefehler

Bei Anfragevalidierungsfehlern gibt die Route HTTP 422 mit einem detail Array zurück, das die ungültige Anfrage beschreibt.

Weitere Ressourcen