Condividi tramite


plug-in ai_embed_text (anteprima)

Si applica a: ✅Azure Esplora dati

Il ai_embed_text plug-in consente l'incorporamento di testo usando modelli linguistici, abilitando diversi scenari correlati all'intelligenza artificiale, ad esempio applicazioni rag (Retrieval Augmented Generation) e ricerca semantica. Il plug-in supporta i modelli di incorporamento del servizio OpenAI di Azure a cui si accede usando l'identità gestita.

Prerequisiti

Sintassi

evaluateai_embed_text (text, connectionString [, opzioni [, IncludeErrorMessages]])

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
Testo string ✔️ Testo da incorporare. Il valore può essere un riferimento a una colonna o una scalare costante.
connectionString string ✔️ Il stringa di connessione per il modello linguistico nel formato <ModelDeploymentUri>;<AuthenticationMethod>; sostituire <ModelDeploymentUri> e <AuthenticationMethod> con rispettivamente l'URI di distribuzione del modello di intelligenza artificiale e il metodo di autenticazione.
options dynamic Opzioni che controllano le chiamate all'endpoint del modello di incorporamento. Vedere R Tools for Visual Studio options (Opzioni di R Tools per Visual Studio).
IncludeErrorMessages bool Indica se restituire gli errori in una nuova colonna nella tabella di output. Valore predefinito: false

Opzioni

Nella tabella seguente vengono descritte le opzioni che controllano il modo in cui vengono effettuate le richieste all'endpoint del modello di incorporamento.

Nome Tipo Descrizione
RecordsPerRequest int Specifica il numero di record da elaborare per ogni richiesta. Valore predefinito: 1
CharsPerRequest int Specifica il numero massimo di caratteri da elaborare per ogni richiesta. Valore predefinito: 0 (illimitato). Azure OpenAI conta i token, con ogni token che converte approssimativamente in quattro caratteri.
RetriesOnThrottling int Specifica il numero di tentativi in caso di limitazione. Valore predefinito: 0
GlobalTimeout timespan Specifica il tempo massimo di attesa di una risposta dal modello di incorporamento. Valore predefinito: null
ModelParameters dynamic Parametri specifici del modello di incorporamento, ad esempio l'incorporamento di dimensioni o identificatori utente a scopo di monitoraggio. Valore predefinito: null
ReturnSuccessfulOnly bool Indica se restituire solo gli elementi elaborati correttamente. Valore predefinito: false Se il parametro IncludeErrorMessages è impostato su , questa opzione è sempre impostata truesu false.

Configurare criteri di identità e callout gestiti

Per usare il plug-in ai_embed_text , è necessario configurare i criteri seguenti:

Per configurare questi criteri, usare i comandi nei passaggi seguenti:

  1. Configurare l'identità gestita:

    .alter-merge cluster policy managed_identity
    ```
    [
      {
        "ObjectId": "system",
        "AllowedUsages": "AzureAI"
      }
    ]
    ```
    
  2. Configurare i criteri di callout:

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

Valori restituiti

Restituisce le nuove colonne di incorporamento seguenti:

  • Colonna con il suffisso _embedding che contiene i valori di incorporamento
  • Se configurato per restituire errori, una colonna con il suffisso _embedding_error che contiene stringhe di errore o viene lasciata vuota se l'operazione ha esito positivo.

A seconda del tipo di input, il plug-in restituisce risultati diversi:

  • Riferimento alla colonna: restituisce uno o più record con colonne aggiuntive precedute dal nome della colonna di riferimento. Ad esempio, se la colonna di input è denominata TextData, le colonne di output vengono denominate TextData_embedding e, se configurate per restituire errori, TextData_embedding_error.
  • Scalare costante: restituisce un singolo record con colonne aggiuntive non precedute da prefisso. I nomi delle colonne sono _embedding e, se configurati per restituire errori, _embedding_error.

Esempi

L'esempio seguente incorpora il testo Embed this text using AI usando il modello di incorporamento OpenAI di Azure.

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)

L'esempio seguente incorpora più testi usando il modello di incorporamento OpenAI di Azure.

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)

Procedure consigliate

I modelli di incorporamento openAI di Azure sono soggetti a limitazioni elevate e le chiamate frequenti a questo plug-in possono raggiungere rapidamente i limiti di limitazione.

Per usare in modo efficiente il ai_embed_text plug-in riducendo al minimo la limitazione e i costi, seguire queste procedure consigliate:

  • Dimensioni della richiesta di controllo: regolare il numero di record (RecordsPerRequest) e i caratteri per ogni richiesta (CharsPerRequest).
  • Controllare il timeout della query: impostare GlobalTimeout su un valore inferiore al timeout della query per assicurarsi che lo stato di avanzamento non venga perso in caso di chiamate riuscite fino a quel punto.
  • Gestire i limiti di velocità in modo più normale: impostare nuovi tentativi sulla limitazione (RetriesOnThrottling).