ai_decide-Funktion

Gilt für:mit Häkchen markiert: Ja Databricks SQL mit Häkchen markiert: Ja Databricks Runtime

Important

Dieses Feature befindet sich in der Betaversion.

Die ai_decide() Funktion bewertet eine oder mehrere Fragen anhand von Text oder strukturierten Daten. Für jede Frage gibt sie entweder eine Wahrscheinlichkeit, eine Auswahl aus benannten Kriterien oder eine Punktzahl auf einer geordneten Skala zurück. Nutze es, um Support-Tickets zu leiten, zu bewerten, ob eine Veranstaltung Aufmerksamkeit benötigt, oder priorisieren die Arbeit anhand einer von dir definierten Rubrik.

Alle Fragen in einem Anruf verwenden denselben Input, genannt state. Du kannst verschiedene Fragetypen in einem Aufruf kombinieren und die zurückgegebenen Antworten in nachgeschalteten SQL-Abfragen verwenden.

Datensicherheit

Ihre Dokumentdaten werden innerhalb des Databricks-Sicherheitsperimeters verarbeitet. Databricks speichert die Parameter, die in die KI-Funktionsaufrufe eingegeben werden, nicht, behält aber Metadaten-Laufdetails, wie zum Beispiel die verwendete Databricks-Runtime-Version.

Anforderungen

Apache 2.0-Lizenz

Die zugrunde liegenden Modelle, die derzeit verwendet werden können, sind unter der Apache 2.0-Lizenz, Copyright © The Apache Software Foundation lizenziert. Kunden sind dafür verantwortlich, die Einhaltung anwendbarer Modelllizenzen sicherzustellen.

Databricks empfiehlt, diese Lizenzen zu überprüfen, um die Einhaltung der geltenden Bedingungen zu gewährleisten. Wenn in Zukunft Modelle entstehen, die gemäß den internen Benchmarks von Databricks besser funktionieren, kann Databricks das Modell (und die Liste der anwendbaren Lizenzen auf dieser Seite) ändern.

Das Modell, das diese Funktion unterstützt, wird mithilfe von Model Serving Foundation Model-APIs verfügbar gemacht. Informationen dazu, welche Modelle für Databricks verfügbar sind, sowie die Lizenzen und Richtlinien, die die Verwendung dieser Modelle regeln, finden Sie unter "Anwendbare Modellbedingungen ".

Wenn Modelle entstehen, die gemäß den internen Benchmarks von Azure Databricks besser funktionieren, können Databricks die Modelle ändern und die Dokumentation aktualisieren.

Syntax

ai_decide(state, questions [, options])

Arguments

  • state: Ein oder STRING Ausdruck, der VARIANT den Inhalt, Kontext und Beispiele enthält, die zur Beantwortung der Fragen benötigt werden. Der Wert kann je nach Reihe variieren. Akzeptiert entweder:

    • Ein STRING Klartext oder ein JSON-codiertes Objekt oder Array. JSON-Objekte und -Arrays werden als strukturierte Daten interpretiert. Andere Zeichenketten werden als Text behandelt.
    • Eine von einer anderen KI-Funktion erzeugte Funktion (zVARIANT. B. ai_parse_document oder ai_extract)
  • questions: Ein konstanter STRING Ausdruck, der ein nichtleeres JSON-Objekt enthält. Jeder Schlüssel ist eine nicht-leere Frage-ID, und jeder Wert ist eine Fragedefinition. Die gleichen Definitionen gelten für jede Zeile. Siehe Fragedefinitionen.

  • options: Ein optionaler konstanter MAP<STRING, STRING> Ausdruck. Die unterstützte Option ist version, mit dem Wert '1.0'. Version 1.0 ist die Standardversion. Um es explizit zu spezifizieren, verwenden map('version', '1.0')Sie .

Fragedefinitionen

Jede Fragedefinition benötigt type und instructions, plus criteria , wenn es vom Fragetyp verlangt wird. Erforderliche Felder können nicht .null Andere Felder werden nicht unterstützt.

  • type: Eine von noul, , choiceoder score.
  • instructions: Anweisungen zur Auswertung des Zustands, ausgedrückt als Zeichenkette, JSON-Objekt oder JSON-Array.
  • criteria: Die Beschreibungen, die definieren, wie man antwortet. Die erforderliche Form hängt von typeab.

Noul-Fragen

Nutze sie noul , um die Wahrscheinlichkeit abzuschätzen, dass eine Frage wahr ist. Das Ergebnis ist eine Zahl von 0 bis 1.

Das optionale criteria Objekt kann und false Schlüssel enthaltentrue, um diese Ergebnisse zu beschreiben. Jede Beschreibung kann ein String, ein JSON-Objekt oder ein JSON-Array sein. Lassen Sie diese Beschreibungen criteria weg, wenn Sie diese Beschreibungen nicht benötigen. Wenn bereitgestellt, criteria muss ein Objekt sein und kann nicht sein null.

{
  "needs_escalation": {
    "type": "noul",
    "instructions": "Does this ticket need immediate escalation?",
    "criteria": {
      "true": "An active service outage blocks the customer from working.",
      "false": "The customer can continue working or has a workaround."
    }
  }
}

Wahlfragen

Wähle choice ein Label aus einer Reihe benannter Kriterien aus.

Das erforderliche criteria Objekt ordnet 1 bis 255 nichtleere Labels den Beschreibungen zu. Jede Beschreibung kann ein String, ein JSON-Objekt, ein JSON-Array oder nullein String sein. Verwenden Sie, null wenn allein das Etikett die Wahl beschreibt.

{
  "team": {
    "type": "choice",
    "instructions": "Which team should handle this ticket?",
    "criteria": {
      "shipping": "Delivery or shipment issues",
      "billing": "Payment or invoice issues",
      "technical_support": "Product technical problems"
    }
  }
}

Punktefragen

Nutze score sie, um den Zustand mit einer geordneten Skala zu bewerten.

Das erforderliche criteria Array enthält 2 bis 10 Beschreibungen, die von niedrigster nach höchster geordnet sind. Jede Beschreibung kann ein String, ein JSON-Objekt oder ein JSON-Array sein. Das erste Kriterium hat einen Index 0, das nächste einen Index 1, und so weiter.

Das Ergebnis ist der wahrscheinlichkeitsgewichtete Durchschnitt dieser Indizes. Sie kann bruchteilig sein und reicht von 0 bis zur Anzahl der Kriterien minus eins. Zum Beispiel ergeben Wahrscheinlichkeiten von 0.1, 0.3, und 0.6 über drei Kriterien hinweg eine Punktzahl von 1.5.

{
  "urgency": {
    "type": "score",
    "instructions": "How urgent is this ticket?",
    "criteria": [
      "Routine request with no time pressure",
      "Time-sensitive issue with a workaround",
      "Critical issue that blocks the customer"
    ]
  }
}

Rückkehr

Gibt a VARIANT mit den Körpern response, metadata, und error_messagezurück. Das Feld response enthält ein answers Objekt mit einem Eintrag pro Frage. Die Frage-IDs stimmen genau mit denen überein, die im Parameter questions angegeben sind. Jede Antwort enthält ein type Feld, das dem Fragetyp entspricht: noul, choice, oder score. Die folgenden Beispiele zeigen das response Feld für jeden Fragetyp:

  • Noul-Fragen: A von 0 bis 1, probability um die Wahrscheinlichkeit zu schätzen, dass die Frage wahr ist.

    {
      "answers": {
        "needs_escalation": {
          "type": "noul",
          "probability": 0.1
        }
      }
    }
    
  • Wahlfragen: A, choice das das Label mit der höchsten Wahrscheinlichkeit enthält und ein Objekt, probabilities das jedes Label auf seine Wahrscheinlichkeit abbildet. confidence ist eine Zahl von 0 bis 1, die angibt, wie gut der Staat die Bewertung unterstützt. Die Werte probabilities summieren sich zu 1. Labelnamen stimmen genau mit denen überein, die in criteria.

    {
      "answers": {
        "team": {
          "type": "choice",
          "choice": "shipping",
          "probabilities": {
            "shipping": 0.8,
            "billing": 0.1,
            "technical_support": 0.1
          },
          "confidence": 0.9
        }
      }
    }
    
  • Score-Fragen: A, die score den wahrscheinlichkeitsgewichteten Durchschnitt der Kriteriumsindizes enthält, eine legend Abbildung von String-Indizes (wie "0") auf die ursprünglichen Kriterienbeschreibungen und ein probabilities Objekt, das diese Indizes auf Wahrscheinlichkeiten abbildet. confidence ist eine Zahl von 0 bis 1, die angibt, wie gut der Staat die Bewertung unterstützt. Die Werte probabilities summieren sich zu 1.

    {
      "answers": {
        "urgency": {
          "type": "score",
          "score": 1.5,
          "legend": {
            "0": "Routine request with no time pressure",
            "1": "Time-sensitive issue with a workaround",
            "2": "Critical issue that blocks the customer"
          },
          "probabilities": {
            "0": 0.1,
            "1": 0.3,
            "2": 0.6
          },
          "confidence": 0.8
        }
      }
    }
    

Bei Erfolg metadata.version identifiziert die verwendete Funktionsversion und error_message ist null.

Beim Scheitern response ist null und error_message beschreibt das Scheitern. Ungültige Argumenttypen oder nichtkonstante Fragedefinitionen können ebenfalls Abfragefehler verursachen.

Beispiele

Das folgende Beispiel zeigt, wie man mehrere Fragen in einem Anruf bewertet. Generierte Antworten können je nach Anruf variieren.

Bewerten Sie mehrere Fragetypen

Dieses Beispiel bewertet eine Produktliste hinsichtlich ihrer Kategorie, der Verwendung von recycelten Materialien und der Eignung für Wanderungen bei Regenwetter:

SELECT ai_decide(
  '{"name": "TrailShell jacket", "description": "Lightweight waterproof hiking jacket made from recycled polyester. Packs into its own pocket."}',
  '{
    "category": {
      "type": "choice",
      "instructions": "Which product category best fits this item?",
      "criteria": {
        "outerwear": "Jackets, coats, and other protective outer layers",
        "footwear": "Shoes, boots, and sandals",
        "accessories": "Bags, hats, and other accessories"
      }
    },
    "recycled_materials": {
      "type": "noul",
      "instructions": "Does the listing state that the product uses recycled materials?"
    },
    "hiking_suitability": {
      "type": "score",
      "instructions": "How suitable is this product for hiking in rainy weather?",
      "criteria": [
        "Not suitable for outdoor use in rain",
        "Offers some protection from rain",
        "Designed for hiking with waterproof protection"
      ]
    }
  }',
  map('version', '1.0')
) AS decision;

Beispielantwort:

{
  "response": {
    "answers": {
      "category": {
        "type": "choice",
        "choice": "outerwear",
        "probabilities": { "outerwear": 0.95, "footwear": 0.01, "accessories": 0.04 },
        "confidence": 0.95
      },
      "recycled_materials": { "type": "noul", "probability": 0.98 },
      "hiking_suitability": {
        "type": "score",
        "score": 1.8,
        "legend": {
          "0": "Not suitable for outdoor use in rain",
          "1": "Offers some protection from rain",
          "2": "Designed for hiking with waterproof protection"
        },
        "probabilities": { "0": 0.05, "1": 0.1, "2": 0.85 },
        "confidence": 0.9
      }
    }
  },
  "metadata": { "version": "1.0" },
  "error_message": null
}