ai_embeddings plugin (förhandsversion)

Gäller för: ✅Microsoft FabricAzure Data Explorer

Plugin-programmet ai_embeddings tillåter inbäddning av text med hjälp av språkmodeller, vilket möjliggör olika AI-relaterade scenarier som RAG-program (Retrieval Augmented Generation) och semantisk sökning. Plugin-programmet använder inbäddningsmodellerna för Azure OpenAI-tjänsten och kan nås med antingen en hanterad identitet eller användarens identitet (personifiering).

Plugin-programmet ai_embeddings tillåter inbäddning av text med hjälp av språkmodeller, vilket möjliggör olika AI-relaterade scenarier som RAG-program (Retrieval Augmented Generation) och semantisk sökning. Plugin-programmet använder inbäddningsmodellerna för Azure OpenAI-tjänsten och kan nås med antingen användarens identitet (personifiering).

Förutsättningar

  • När du använder hanterad identitet för att få åtkomst till Azure OpenAI-tjänsten konfigurerar du principen för hanterad identitet för att tillåta kommunikation med tjänsten.

Syntax

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

Läs mer om syntaxkonventioner.

Parameterar

Namn Typ Krävs Beskrivning
SMS string ✔️ Texten som ska bäddas in. Värdet kan vara en kolumnreferens eller en konstant skalär.
connectionString string ✔️ Anslutningssträngen för språkmodellen i formatet <ModelDeploymentUri>;<AuthenticationMethod>; ersätt <ModelDeploymentUri> och <AuthenticationMethod> med AI-modellens distributions-URI respektive autentiseringsmetoden.
alternativ dynamic De alternativ som styr anrop till inbäddningsmodellens slutpunkt. Se Alternativ.
IncludeErrorMessages (Inkludera felmeddelanden) bool Anger om du vill mata ut fel i en ny kolumn i utdatatabellen. Standardvärde: false.

Alternativ

I följande tabell beskrivs de alternativ som styr hur begäranden görs till inbäddningsmodellens slutpunkt.

Namn Typ Beskrivning
RecordsPerRequest int Anger antalet poster som ska bearbetas per begäran. Standardvärde: 1.
CharsPerRequest int Anger det maximala antalet tecken som ska bearbetas per begäran. Standardvärde: 0 (obegränsat). Azure OpenAI räknar token, där varje token ungefär översätter till fyra tecken.
RetriesOnThrottling int Anger antalet återförsök vid begränsning. Standardvärde: 0.
GlobalTimeout timespan Anger den maximala tiden att vänta på ett svar från inbäddningsmodellen. Standardvärde: null
ModelParameters dynamic Parametrar som är specifika för inbäddningsmodellen, till exempel inbäddningsdimensioner eller användaridentifierare i övervakningssyfte. Standardvärde: null.
ReturnSuccessfulOnly bool Anger om endast de bearbetade objekten ska returneras. Standardvärde: false. Om parametern IncludeErrorMessages är inställd på trueär det här alternativet alltid inställt på false.

Konfigurera pratbubblans princip

azure_openai aktiverar externa anrop till Azure AI-tjänster.

Så här konfigurerar du pratbubblans princip för att auktorisera AI-modellens slutpunktsdomän:

.alter-merge cluster policy callout
```
[
  {
    "CalloutType": "azure_openai",
    "CalloutUriRegex": "https://[A-Za-z0-9-]{3,63}\\.(?:openai\\.azure\\.com|cognitiveservices\\.azure\\.com|cognitive\\.microsoft\\.com|services\\.ai\\.azure\\.com)(?:/.*)?",
    "CanCall": true
  }
]
```

Konfigurera hanterad identitet

När du använder hanterad identitet för att få åtkomst till Azure OpenAI-tjänsten måste du konfigurera principen för hanterad identitet så att den systemtilldelade hanterade identiteten kan autentiseras till Azure OpenAI-tjänsten.

Så här konfigurerar du den hanterade identiteten:

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

Retur

Returnerar följande nya inbäddningskolumner:

  • En kolumn med suffixet _embeddings som innehåller inbäddningsvärdena
  • Om den är konfigurerad för att returnera fel lämnas en kolumn med suffixet _embedding_error , som innehåller felsträngar eller lämnas tom om åtgärden lyckas.

Beroende på indatatyp returnerar plugin-programmet olika resultat:

  • Kolumnreferens: Returnerar en eller flera poster med ytterligare kolumner föregås av referenskolumnnamnet. Om indatakolumnen till exempel heter TextData namnges utdatakolumnerna TextData_embedding och, om de är konfigurerade för att returnera fel, TextData_embedding_error.
  • Konstant skalär: Returnerar en enskild post med ytterligare kolumner som inte är prefix. Kolumnnamnen är _embedding och om de är konfigurerade för att returnera fel _embedding_error.

Exempel

I följande exempel bäddas texten Embed this text using AI in med hjälp av Inbäddningsmodellen för 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)

I följande exempel bäddas flera texter in med hjälp av Inbäddningsmodellen för 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)

Metodtips

Inbäddningsmodeller för Azure OpenAI är föremål för stora begränsningar, och frekventa anrop till det här plugin-programmet kan snabbt nå begränsningsgränser.

Följ dessa metodtips för att effektivt använda ai_embeddings plugin-programmet samtidigt som du minimerar begränsningar och kostnader:

  • Kontrollbegärans storlek: Justera antalet poster (RecordsPerRequest) och tecken per begäran (CharsPerRequest).
  • Timeout för kontrollfråga: Ange GlobalTimeout ett värde som är lägre än tidsgränsen för frågan för att säkerställa att förloppet inte går förlorat vid lyckade anrop fram till den tidpunkten.
  • Hantera hastighetsbegränsningar på ett mer smidigt sätt: Ange återförsök vid begränsning (RetriesOnThrottling).