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
- Un servizio OpenAI di Azure configurato con l'identità gestita
- Criteri di identità e callout gestiti configurati per consentire la comunicazione con i servizi OpenAI di Azure
Sintassi
evaluate
ai_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 true su false . |
Configurare criteri di identità e callout gestiti
Per usare il plug-in ai_embed_text
, è necessario configurare i criteri seguenti:
- identità gestita: consente all'identità gestita assegnata dal sistema di eseguire l'autenticazione nei servizi OpenAI di Azure.
- callout: autorizzare il dominio dell'endpoint del modello di intelligenza artificiale.
Per configurare questi criteri, usare i comandi nei passaggi seguenti:
Configurare l'identità gestita:
.alter-merge cluster policy managed_identity ``` [ { "ObjectId": "system", "AllowedUsages": "AzureAI" } ] ```
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
).