Udostępnij za pośrednictwem


wtyczka ai_embed_text (wersja zapoznawcza)

Dotyczy: ✅Azure Data Explorer

Wtyczka ai_embed_text umożliwia osadzanie tekstu przy użyciu modeli językowych, umożliwiając różne scenariusze związane ze sztuczną inteligencją, takie jak pobieranie aplikacji rozszerzonej generacji (RAG) i wyszukiwanie semantyczne. Wtyczka obsługuje modele osadzania usługi Azure OpenAI Service dostępne przy użyciu tożsamości zarządzanej.

Wymagania wstępne

  • Usługa Azure OpenAI skonfigurowana przy użyciu tożsamości zarządzanej
  • Zasady tożsamości zarządzanej i objaśnienie skonfigurowane do zezwalania na komunikację z usługami Azure OpenAI

Składnia

evaluateai_embed_text (text, connectionString [, opcje [, IncludeErrorMessages]])

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
text string ✔️ Tekst do osadzenia. Wartość może być odwołaniem do kolumny lub stałym skalarnym.
connectionString string ✔️ Parametry połączenia modelu językowego w formacie <ModelDeploymentUri>;<AuthenticationMethod>; zastąp <ModelDeploymentUri> wartości i <AuthenticationMethod> identyfikatorem URI wdrożenia modelu sztucznej inteligencji oraz odpowiednio metodą uwierzytelniania.
Opcje dynamic Opcje sterujące wywołaniami do punktu końcowego modelu osadzania. Zobacz Opcje.
IncludeErrorMessages bool Wskazuje, czy w nowej kolumnie w tabeli wyjściowej mają być wyświetlane błędy. Wartość domyślna: false.

Opcje

W poniższej tabeli opisano opcje kontrolujące sposób przesyłania żądań do punktu końcowego modelu osadzania.

Nazwisko Pisz Opis
RecordsPerRequest int Określa liczbę rekordów do przetworzenia na żądanie. Wartość domyślna: 1.
CharsPerRequest int Określa maksymalną liczbę znaków do przetworzenia na żądanie. Wartość domyślna: 0 (nieograniczona). Usługa Azure OpenAI zlicza tokeny, a każdy token jest w przybliżeniu tłumaczny na cztery znaki.
RetriesOnThrottling int Określa liczbę ponownych prób w przypadku wystąpienia ograniczania przepustowości. Wartość domyślna: 0.
GlobalTimeout timespan Określa maksymalny czas oczekiwania na odpowiedź z modelu osadzania. Wartość domyślna: null
ModelParameters dynamic Parametry specyficzne dla modelu osadzania, takie jak osadzanie wymiarów lub identyfikatorów użytkowników na potrzeby monitorowania. Wartość domyślna: null.
ReturnSuccessfulOnly bool Wskazuje, czy zwracać tylko pomyślnie przetworzone elementy. Wartość domyślna: false. Jeśli parametr IncludeErrorMessages jest ustawiony na truewartość , ta opcja jest zawsze ustawiona na falsewartość .

Konfigurowanie tożsamości zarządzanej i zasad objaśnienie

Aby użyć wtyczki ai_embed_text , należy skonfigurować następujące zasady:

  • tożsamość zarządzana: zezwól tożsamości zarządzanej przypisanej przez system na uwierzytelnianie w usługach Azure OpenAI.
  • objaśnienie: autoryzowanie domeny punktu końcowego modelu sztucznej inteligencji.

Aby skonfigurować te zasady, użyj poleceń w następujących krokach:

  1. Skonfiguruj tożsamość zarządzaną:

    .alter-merge cluster policy managed_identity
    ```
    [
      {
        "ObjectId": "system",
        "AllowedUsages": "AzureAI"
      }
    ]
    ```
    
  2. Skonfiguruj zasady objaśnienie:

    .alter-merge cluster policy callout
    ```
    [
        {
            "CalloutType": "azure_openai",
            "CalloutUriRegex": "https://[A-Za-z0-9\\-]{3,63}\\.openai\\.azure\\.com/.*",
            "CanCall": true
        }
    ]
    ```
    

Zwraca

Zwraca następujące nowe kolumny osadzania:

  • Kolumna z sufiksem _embedding zawierającym wartości osadzania
  • Jeśli skonfigurowano zwracanie błędów, kolumna z sufiksem _embedding_error zawierającym ciągi błędów lub jest pozostawiona pusta, jeśli operacja zakończy się pomyślnie.

W zależności od typu danych wejściowych wtyczka zwraca różne wyniki:

  • Odwołanie do kolumny: Zwraca co najmniej jeden rekord z dodatkowymi kolumnami jest poprzedzony nazwą kolumny referencyjnej. Jeśli na przykład kolumna wejściowa ma nazwę TextData, kolumny wyjściowe mają nazwę TextData_embedding i, jeśli skonfigurowano do zwracania błędów, TextData_embedding_error.
  • Stały skalarny: zwraca pojedynczy rekord z dodatkowymi kolumnami, które nie są poprzedzone prefiksem. Nazwy kolumn są _embedding i, jeśli skonfigurowano do zwracania błędów, _embedding_error.

Przykłady

Poniższy przykład osadza tekst Embed this text using AI przy użyciu modelu osadzania usługi Azure OpenAI.

let expression = 'Embed this text using AI';
let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/text-embedding-3-small/embeddings?api-version=2024-06-01;managed_identity=system';
evaluate ai_embed_text(expression, connectionString)

W poniższym przykładzie osadza się wiele tekstów przy użyciu modelu osadzania usługi Azure OpenAI.

let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/text-embedding-3-small/embeddings?api-version=2024-06-01;managed_identity=system';
let options = dynamic({
    "RecordsPerRequest": 10,
    "CharsPerRequest": 10000,
    "RetriesOnThrottling": 1,
    "GlobalTimeout": 2m
});
datatable(TextData: string)
[
    "First text to embed",
    "Second text to embed",
    "Third text to embed"
]
| evaluate ai_embed_text(TextData, connectionString, options , true)

Najlepsze rozwiązania

Modele osadzania usługi Azure OpenAI podlegają dużemu ograniczaniu przepustowości, a częste wywołania tej wtyczki mogą szybko osiągnąć limity ograniczania przepustowości.

Aby efektywnie używać ai_embed_text wtyczki przy jednoczesnym zminimalizowaniu ograniczania przepustowości i kosztów, postępuj zgodnie z następującymi najlepszymi rozwiązaniami:

  • Rozmiar żądania sterującego: dostosuj liczbę rekordów (RecordsPerRequest) i znaków na żądanie (CharsPerRequest).
  • Limit czasu zapytania sterującego: ustaw GlobalTimeout wartość niższą od limitu czasu zapytania, aby upewnić się, że postęp nie zostanie utracony po pomyślnych wywołaniach do tego momentu.
  • Obsługa limitów szybkości bardziej bezpiecznie: ustaw ponawianie prób w przypadku ograniczania przepustowości (RetriesOnThrottling).