Udostępnij za pośrednictwem


Wtyczka ai_embeddings (wersja zapoznawcza)

Dotyczy: ✅Microsoft FabricAzure Data Explorer

Wtyczka ai_embeddings 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 korzysta z modeli osadzania usługi Azure OpenAI Service i można uzyskać do nich dostęp przy użyciu tożsamości zarządzanej lub tożsamości użytkownika (personifikacji).

Wtyczka ai_embeddings 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 korzysta z modeli osadzania usługi Azure OpenAI Service i można uzyskać do nich dostęp przy użyciu tożsamości użytkownika (personifikacji).

Wymagania wstępne

  • W przypadku uzyskiwania dostępu do usługi Azure OpenAI przy użyciu tożsamości zarządzanej skonfiguruj zasady tożsamości zarządzanej , aby umożliwić komunikację z usługą.

Składnia

evaluate ai_embeddings ( text, connectionString [,opcje [,IncludeErrorMessages]])

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

Parametry

Nazwa Typ Wymagane Opis
tekst string ✔️ Tekst do osadzenia. Wartość może być odwołaniem do kolumny lub stałym skalarnym.
connectionString (ciąg połączenia) 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 (Komunikaty o błędach) 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.

Nazwa Typ 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 zasad objaśnienie

Zasady azure_openaiobjaśnień umożliwiają wywołania zewnętrzne do usług Azure AI.

Aby skonfigurować zasady objaśnienie w celu autoryzowania domeny punktu końcowego modelu sztucznej inteligencji:

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

Konfigurowanie tożsamości zarządzanej

W przypadku używania tożsamości zarządzanej do uzyskiwania dostępu do usługi Azure OpenAI należy skonfigurować zasady tożsamości zarządzanej , aby zezwolić tożsamości zarządzanej przypisanej przez system na uwierzytelnianie w usłudze Azure OpenAI Service.

Aby skonfigurować tożsamość zarządzaną:

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

Zwraca

Zwraca następujące nowe kolumny osadzania:

  • Kolumna z sufiksem _embeddings zawierająca 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_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)

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_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)

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_embeddings 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).