Delen via


ai_embeddings-invoegtoepassing (preview)

Van toepassing op: ✅Microsoft FabricAzure Data Explorer-

Met de ai_embeddings invoegtoepassing kunt u tekst insluiten met behulp van taalmodellen, waardoor verschillende AI-gerelateerde scenario's, zoals RAG-toepassingen (Retrieval Augmented Generation) en semantische zoekopdrachten mogelijk zijn. De invoegtoepassing maakt gebruik van de azure OpenAI Service-insluitingsmodellen en kan worden geopend met behulp van een beheerde identiteit of de identiteit van de gebruiker (imitatie).

Met de ai_embeddings invoegtoepassing kunt u tekst insluiten met behulp van taalmodellen, waardoor verschillende AI-gerelateerde scenario's, zoals RAG-toepassingen (Retrieval Augmented Generation) en semantische zoekopdrachten mogelijk zijn. De invoegtoepassing maakt gebruik van de azure OpenAI Service-insluitingsmodellen en kan worden geopend met behulp van de identiteit van de gebruiker (imitatie).

Vereiste voorwaarden

  • Wanneer u beheerde identiteit gebruikt om toegang te krijgen tot de Azure OpenAI-service, configureert u het beleid voor beheerde identiteiten om communicatie met de service toe te staan.

Syntaxis

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

Meer informatie over syntaxisconventies.

Parameterwaarden

Naam Typologie Verplicht Beschrijving
tekst string ✔️ De tekst die moet worden ingesloten. De waarde kan een kolomreferentie of een constante scalaire waarde zijn.
verbindingString string ✔️ De verbindingsreeks voor het taalmodel in de indeling <ModelDeploymentUri>;<AuthenticationMethod>; vervang en vervang <ModelDeploymentUri> door <AuthenticationMethod> respectievelijk de URI voor de implementatie van het AI-model en de verificatiemethode.
Opties dynamic De opties waarmee aanroepen naar het eindpunt van het insluitmodel worden beheerd. Zie opties.
IncludeErrorMessages bool Hiermee wordt aangegeven of er uitvoerfouten in een nieuwe kolom in de uitvoertabel moeten worden uitgevoerd. Standaardwaarde: false.

Opties

In de volgende tabel worden de opties beschreven die bepalen hoe de aanvragen worden gedaan voor het eindpunt van het insluitmodel.

Naam Typologie Beschrijving
RecordsPerRequest int Hiermee geeft u het aantal records dat per aanvraag moet worden verwerkt. Standaardwaarde: 1.
CharsPerRequest int Hiermee geeft u het maximum aantal tekens op dat per aanvraag moet worden verwerkt. Standaardwaarde: 0 (onbeperkt). Azure OpenAI telt tokens, waarbij elk token ongeveer wordt omgezet in vier tekens.
RetriesOnThrottling int Hiermee geeft u het aantal nieuwe pogingen op wanneer beperking plaatsvindt. Standaardwaarde: 0.
GlobalTimeout timespan Hiermee geeft u de maximale tijd om te wachten op een antwoord van het insluitmodel. Standaardwaarde: null
ModelParameters dynamic Parameters die specifiek zijn voor het insluitingsmodel, zoals het insluiten van dimensies of gebruikers-id's voor bewakingsdoeleinden. Standaardwaarde: null.
ReturnSuccessfulOnly bool Hiermee wordt aangegeven of alleen de verwerkte items moeten worden geretourneerd. Standaardwaarde: false. Als de parameter IncludeErrorMessages is ingesteld op true, is deze optie altijd ingesteld op false.

Bijschriftbeleid configureren

Met azure_openai het bijschriftbeleid kunnen externe aanroepen naar Azure AI-services worden ingeschakeld.

Het bijschriftbeleid configureren om het eindpuntdomein van het AI-model te autoriseren:

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

Beheerde identiteit configureren

Wanneer u beheerde identiteit gebruikt om toegang te krijgen tot de Azure OpenAI-service, moet u het beleid voor beheerde identiteiten configureren om de door het systeem toegewezen beheerde identiteit te laten verifiëren bij de Azure OpenAI-service.

De beheerde identiteit configureren:

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

Retouren

Retourneert de volgende nieuwe kolommen voor insluiten:

  • Een kolom met het achtervoegsel _embeddings die de inbeddingswaarden bevat
  • Als deze is geconfigureerd om fouten te retourneren, wordt een kolom met het achtervoegsel _embedding_error , dat fouttekenreeksen bevat of leeg blijft als de bewerking is geslaagd.

Afhankelijk van het invoertype retourneert de invoegtoepassing verschillende resultaten:

  • Kolomverwijzing: retourneert een of meer records met extra kolommen worden voorafgegaan door de naam van de verwijzingskolom. Als de invoerkolom bijvoorbeeld TextData heet, worden de uitvoerkolommen TextData_embedding genoemd en, indien geconfigureerd voor het retourneren van fouten, TextData_embedding_error.
  • Constante scalaire waarde: retourneert één record met extra kolommen die niet voorafgaan. De kolomnamen worden _embedding en, indien geconfigureerd voor het retourneren van fouten, _embedding_error.

Voorbeelden

In het volgende voorbeeld wordt de tekst Embed this text using AI ingesloten met behulp van het Azure OpenAI Embedding-model.

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)

In het volgende voorbeeld worden meerdere teksten ingesloten met behulp van het Azure OpenAI Embedding-model.

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)

Beste praktijken

Azure OpenAI-insluitingsmodellen zijn onderhevig aan zware beperking. Frequente aanroepen naar deze invoegtoepassing kunnen snel beperkingen bereiken.

Als u de ai_embeddings invoegtoepassing efficiënt wilt gebruiken terwijl beperking en kosten worden geminimaliseerd, volgt u deze aanbevolen procedures:

  • Grootte van beheeraanvraag: pas het aantal records () en tekens per aanvraag (RecordsPerRequestCharsPerRequest) aan.
  • Time-out voor query's beheren: stel GlobalTimeout deze in op een waarde die lager is dan de time-out van de query om ervoor te zorgen dat de voortgang niet verloren gaat bij geslaagde aanroepen tot dat moment.
  • Frequentielimieten correct verwerken: stel nieuwe pogingen in voor beperking (RetriesOnThrottling).