ai_decide funkcja

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Ważna

Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.

Funkcja ocenia ai_decide() jedno lub więcej pytań na podstawie tekstu lub danych strukturalnych. Dla każdego pytania zwraca się albo prawdopodobieństwo, wybór spośród określonych kryteriów, albo wynik na uporządkowanej skali. Używaj go do kierowania zgłoszeń do wsparcia, oceny, czy dane wydarzenie wymaga uwagi, lub ustalania priorytetów pracy według własnej rubryki.

Wszystkie pytania w rozmowie używają tego samego wejścia, zwanego state. Możesz łączyć różne typy pytań w jednym połączeniu i używać zwróconych odpowiedzi w dalszych zapytaniach SQL.

Bezpieczeństwo danych

Dane dokumentu są przetwarzane w ramach strefy bezpieczeństwa Databricks. Databricks nie przechowuje parametrów przekazywanych do wywołań funkcji AI, ale zachowuje szczegóły metadanych, takie jak używana wersja Databricks Runtime.

Wymagania

Licencja apache 2.0

Podstawowe modele, które mogą być używane w tej chwili, są licencjonowane w ramach licencji apache 2.0, Copyright © The Apache Software Foundation. Klienci są odpowiedzialni za zapewnienie zgodności z odpowiednimi licencjami modelu.

Usługa Databricks zaleca przejrzenie tych licencji w celu zapewnienia zgodności z dowolnymi odpowiednimi warunkami. Jeśli modele pojawią się w przyszłości, które działają lepiej zgodnie z wewnętrznymi testami porównawczymi usługi Databricks, usługa Databricks może zmienić model (oraz listę odpowiednich licencji dostępnych na tej stronie).

Model obsługujący tę funkcję jest udostępniany przy użyciu interfejsów API modelu obsługującego model. Zobacz Odpowiednie terminy dotyczące modelu , aby uzyskać informacje na temat modeli dostępnych w usłudze Databricks oraz licencjach i zasadach, które regulują korzystanie z tych modeli.

Jeśli pojawią się modele, które działają lepiej zgodnie z wewnętrznymi testami porównawczymi Azure Databricks, usługa Databricks może zmienić modele i zaktualizować dokumentację.

Syntax

ai_decide(state, questions [, options])

Arguments

  • state: A lub STRING wyrażenie zawierające VARIANT treść, kontekst i przykłady potrzebne do odpowiedzi na pytania. Wartość może się różnić w zależności od wiersza. Akceptuje albo:

    • Zawierający STRING zwykły tekst lub obiekt lub tablica zakodowana w JSON. Obiekty i tablice JSON są interpretowane jako dane strukturalne. Inne ciągi są traktowane jako tekst.
    • Utworzona VARIANT przez inną funkcję sztucznej inteligencji (np ai_parse_document . lub ai_extract)
  • questions: Wyrażenie stałe STRING zawierające niepusty obiekt JSON. Każdy klucz to niepusty identyfikator pytania, a każda wartość to definicja pytania. Te same definicje dotyczą każdego wiersza. Zobacz definicje pytań.

  • options: Opcjonalne wyrażenie stałe MAP<STRING, STRING> . Obsługiwana opcja to version, o wartości '1.0'. Domyślna jest wersja 1.0. Aby to wyraźnie określić, użyj map('version', '1.0').

Definicje pytań

Każda definicja pytania wymaga type i instructions, plus criteria gdy wymaga tego typ pytania. Wymagane pola nie mogą być .null Inne dziedziny nie są wspierane.

  • type: jeden z noul, choicelub score.
  • instructions: Instrukcje do obliczania stanu, wyrażone jako ciąg znaków, obiekt JSON lub tablica JSON.
  • criteria: Opisy, które definiują, jak odpowiedzieć. Wymagany kształt zależy od type.

Pytania dotyczące Noul

Użyj do noul oszacowania prawdopodobieństwa, że dane pytanie jest prawdziwe. Wynik to liczba od 0 do 1.

Obiekt opcjonalny criteria może zawierać true klucze opisujące false te wyniki. Każdy opis może być ciągiem znaków, obiektem JSON lub tablicą JSON. Pomij, criteria gdy nie potrzebujesz tych opisów. Jeśli podano, criteria musi być obiektem i nie może być .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."
    }
  }
}

Pytania wyborcze

Użyj choice do wyboru jednej etykiety z zestawu nazwanych kryteriów.

Wymagany criteria obiekt mapuje 1 na 255 niepustych etykiet na opisy. Każdy opis może być ciągiem znaków, obiektem JSON, tablicą JSON lub null. Używaj, null gdy sama etykieta opisuje wybór.

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

Pytania punktowe

Użyj do score oceny stanu względem uporządkowanej skali.

Wymagana criteria tablica zawiera od 2 do 10 opisów, uporządkowanych od najniższego do najwyższego. Każdy opis może być ciągiem znaków, obiektem JSON lub tablicą JSON. Pierwsze kryterium ma indeks 0, następne ma indeks 1, i tak dalej.

Efektem jest średnia ważona prawdopodobieństwem tych indeksów. Może być ułamkowa i waha się od 0 do liczby kryteriów minus jeden. Na przykład prawdopodobieństwa 0.1, 0.3, i 0.6 w trzech kryteriach dają wynik .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"
    ]
  }
}

Zwroty

Zwraca a VARIANT z polami response, metadata, oraz error_message. Pole response zawiera answers obiekt z jednym wpisem na każde pytanie. Identyfikatory pytań dokładnie pokrywają się z tymi podanymi w parametrze questions . Każda odpowiedź zawiera type pole odpowiadające typowi pytania: noul, choice, lub score. Poniższe przykłady pokazują response pole dla każdego typu pytania:

  • Pytania Noul: A probability od 0 do 1 szacując prawdopodobieństwo, że pytanie jest prawdziwe.

    {
      "answers": {
        "needs_escalation": {
          "type": "noul",
          "probability": 0.1
        }
      }
    }
    
  • Pytania wyborcze: A zawierające choice etykietę o najwyższym prawdopodobieństwie oraz probabilities obiekt odwzorowujący każdą etykietę na jej prawdopodobieństwo. confidence to liczba od 0 do 1, wskazująca, jak dobrze stan wspiera ocenę. Wartości sumują probabilities się do 1. Nazwy etykiet dokładnie pokrywają się z tymi podanymi w criteria.

    {
      "answers": {
        "team": {
          "type": "choice",
          "choice": "shipping",
          "probabilities": {
            "shipping": 0.8,
            "billing": 0.1,
            "technical_support": 0.1
          },
          "confidence": 0.9
        }
      }
    }
    
  • Pytania punktowe: A zawierające score średnią ważoną prawdopodobieństwem indeksów kryteriów, indeksy legend łańcuchowe mapujące (takie jak "0") do oryginalnych opisów kryteriów oraz probabilities obiekt mapujący te indeksy na prawdopodobieństwa. confidence to liczba od 0 do 1, wskazująca, jak dobrze stan wspiera ocenę. Wartości sumują probabilities się do 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
        }
      }
    }
    

Po sukcesie identyfikuje metadata.version używaną wersję funkcji i error_message jest .null

Na niepowodzeniu jest response i nullerror_message opisuje niepowodzenie. Nieprawidłowe typy argumentów lub definicje pytań niestałych również mogą powodować błędy zapytań.

Examples

Poniższy przykład pokazuje, jak ocenić kilka pytań podczas jednej rozmowy. Generowane odpowiedzi mogą się różnić w zależności od rozmów.

Oceń wiele typów pytań

Ten przykład ocenia ofertę produktu pod kątem kategorii, użycia materiałów z recyklingu oraz przydatności do wędrówek w deszczową pogodę:

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;

Przykładowa odpowiedź:

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