Sdílet prostřednictvím


modul plug-in ai_embed_text (Preview)

Platí pro: ✅Azure Data Explorer

Modul ai_embed_text plug-in umožňuje vkládání textu pomocí jazykových modelů, což umožňuje různé scénáře související s AI, jako jsou aplikace rag (Retrieval Augmented Generation) a sémantické vyhledávání. Modul plug-in podporuje modely vkládání služeb Azure OpenAI, ke které se přistupuje pomocí spravované identity.

Požadavky

Syntaxe

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

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
text string ✔️ Text, který chcete vložit. Hodnota může být odkaz na sloupec nebo konstantní skalární.
connectionString string ✔️ Připojovací řetězec pro jazykový model ve formátu <ModelDeploymentUri>;<AuthenticationMethod>; nahraďte <ModelDeploymentUri> identifikátorem URI nasazení modelu AI a <AuthenticationMethod> metodou ověřování.
volby dynamic Možnosti, které řídí volání koncového bodu modelu vložení Viz Možnosti.
IncludeErrorMessages bool Určuje, jestli se mají výstupní chyby v novém sloupci ve výstupní tabulce zobrazit. Výchozí hodnota: false.

Možnosti

Následující tabulka popisuje možnosti, které řídí způsob, jakým se požadavky provádějí do koncového bodu modelu vložení.

Name Typ Popis
RecordsPerRequest int Určuje počet záznamů, které se mají zpracovat na požadavek. Výchozí hodnota: 1.
CharsPerRequest int Určuje maximální počet znaků, které se mají zpracovat na požadavek. Výchozí hodnota: 0 (neomezená). Azure OpenAI počítá tokeny, přičemž každý token se přibližně překládá na čtyři znaky.
RetriesOnThrottling int Určuje počet pokusů o opakování, když dojde k omezování. Výchozí hodnota: 0.
GlobalTimeout timespan Určuje maximální dobu čekání na odpověď z modelu vkládání. Výchozí hodnota: null
ModelParameters dynamic Parametry specifické pro model vkládání, například dimenze vkládání nebo identifikátory uživatelů pro účely monitorování. Výchozí hodnota: null.
ReturnSuccessfulOnly bool Určuje, zda se mají vrátit pouze úspěšně zpracované položky. Výchozí hodnota: false. Pokud je parametr IncludeErrorMessages nastaven na true, tato možnost je vždy nastavena na false.

Konfigurace spravovaných identit a zásad popisku

Pokud chcete použít modul ai_embed_text plug-in, musíte nakonfigurovat následující zásady:

Ke konfiguraci těchto zásad použijte příkazy v následujících krocích:

  1. Konfigurace spravované identity:

    .alter-merge cluster policy managed_identity
    ```
    [
      {
        "ObjectId": "system",
        "AllowedUsages": "AzureAI"
      }
    ]
    ```
    
  2. Nakonfigurujte zásadu popisku:

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

Návraty

Vrátí následující nové sloupce vkládání:

  • Sloupec s příponou _embedding , která obsahuje vložené hodnoty
  • Pokud je nakonfigurováno na vrácení chyb, sloupec s příponou _embedding_error , která obsahuje chybové řetězce nebo je ponechán prázdný, pokud je operace úspěšná.

V závislosti na typu vstupu modul plug-in vrátí různé výsledky:

  • Odkaz na sloupec: Vrátí jeden nebo více záznamů s dalšími sloupci, které mají předponu názvu referenčního sloupce. Pokud má například vstupní sloupec název TextData, výstupní sloupce se nazývají TextData_embedding a pokud jsou nakonfigurované tak, aby vracely chyby, TextData_embedding_error.
  • Konstantní skalární: Vrátí jeden záznam s dalšími sloupci, které nemají předponu. Názvy sloupců jsou _embedding a pokud jsou nakonfigurované tak, aby vracely chyby, _embedding_error.

Příklady

Následující příklad vloží text Embed this text using AI pomocí modelu vložení 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)

Následující příklad vloží více textů pomocí modelu vkládání 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)

Osvědčené postupy

Modely vkládání Azure OpenAI podléhají vysokému omezování a časté volání tohoto modulu plug-in můžou rychle dosáhnout limitů omezování.

Pokud chcete modul plug-in efektivně používat ai_embed_text při minimalizaci omezování a nákladů, postupujte podle těchto osvědčených postupů:

  • Velikost žádosti o řízení: Upravte počet záznamů (RecordsPerRequest) a znaků na požadavek (CharsPerRequest).
  • Časový limit ovládacího dotazu: Nastavte GlobalTimeout hodnotu nižší než časový limit dotazu, aby se zajistilo, že při úspěšných voláních až do tohoto bodu dojde ke ztrátě průběhu.
  • Zpracování limitů rychlosti elegantněji: Nastavte opakování na omezování (RetriesOnThrottling).