Sdílet prostřednictvím


ai_embeddings plugin (náhled)

Platí pro: ✅Microsoft FabricAzure Data Explorer

Modul ai_embeddings 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 používá modely vkládání služby Azure OpenAI a je možné k němu přistupovat pomocí spravované identity nebo identity uživatele (zosobnění).

Modul ai_embeddings 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 používá modely vkládání služby Azure OpenAI a je možné k němu přistupovat pomocí identity uživatele (zosobnění).

Požadavky

  • Služba Azure OpenAI nakonfigurovaná s alespoň rolí uživatele (Cognitive Services OpenAI) přiřazenou k používané identitě.
  • Zásada popisku nakonfigurovaná tak, aby umožňovala volání služeb umělé inteligence.
  • Při použití spravované identity pro přístup ke službě Azure OpenAI nakonfigurujte zásady spravované identity tak, aby umožňovaly komunikaci se službou.

Syntaxe

evaluate ai_embeddings ( text, connectionString [,možnosti [,IncludeErrorMessages]])

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

Parametry

Název Typ Povinné 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í.
možnosti 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í.

Název 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 zásad popisku

Zásada azure_openaibublinového popisku umožňuje externí volání služeb Azure AI.

Konfigurace zásad popisku pro autorizaci domény koncového bodu modelu AI:

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

Konfigurace spravované identity

Při použití spravované identity pro přístup ke službě Azure OpenAI musíte nakonfigurovat zásady spravované identity tak, aby se spravovaná identita přiřazená systémem mohla ověřit ve službě Azure OpenAI.

Konfigurace spravované identity:

.alter-merge cluster policy managed_identity
```
[
  {
    "ObjectId": "system",
    "AllowedUsages": "AzureAI"
  }
]
```

Návraty

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

  • Sloupec s příponou _embeddings , který obsahuje hodnoty vkládání
  • 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_embeddings(expression, connectionString)
let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/text-embedding-3-small/embeddings?api-version=2024-06-01;impersonate';
evaluate ai_embeddings(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_embeddings(TextData, connectionString, options , true)
let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/text-embedding-3-small/embeddings?api-version=2024-06-01;impersonate';
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_embeddings(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_embeddings 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).
  • series_cosine_similarity()