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
evaluate
ai_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 true wartość , ta opcja jest zawsze ustawiona na false wartość . |
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:
Skonfiguruj tożsamość zarządzaną:
.alter-merge cluster policy managed_identity ``` [ { "ObjectId": "system", "AllowedUsages": "AzureAI" } ] ```
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
).