Competenza di incorporamento di OpenAI di Azure
La competenza di incorporamento di Azure OpenAI si connette a un modello di incorporamento distribuito nella risorsa di Azure OpenAI per generare incorporamenti durante l'indicizzazione. I dati vengono elaborati nell'area geografica in cui viene distribuito il modello.
Prerequisiti
Il servizio Azure OpenAI deve avere un sottodominio personalizzato associato. Se il servizio è stato creato tramite il portale di Azure, questo sottodominio viene generato automaticamente come parte della configurazione del servizio. Assicurarsi che il servizio includa un sottodominio personalizzato prima di usarlo con l'integrazione di Ricerca di intelligenza artificiale di Azure.
Le risorse del servizio OpenAI di Azure (con accesso ai modelli di incorporamento) create nel portale di Azure AI Foundry non sono supportate. Solo le risorse del servizio OpenAI di Azure create nel portale di Azure sono compatibili con l'integrazione delle competenze di incorporamento di Azure OpenAI.
La procedura guidata Importa e vettorizza dati nel portale di Azure usa la competenza incorporamento OpenAI di Azure per vettorizzare il contenuto. È possibile eseguire la procedura guidata ed esaminare il set di competenze generato per vedere come la procedura guidata compila la competenza per l'incorporamento dei modelli.
Nota
Questa competenza è associata ad Azure OpenAI e viene addebitata al prezzo Azure OpenAI con pagamento in base al consumo.
@odata.type
Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill
Limiti dei dati
La dimensione massima di un input di testo deve essere di 8.000 token. Se l'input supera il massimo consentito, il modello genera un errore di richiesta non valido. Per altre informazioni, vedere il concetto di chiave dei token nella documentazione di Azure OpenAI. Prendere in considerazione l'uso della competenza suddivisione del testo se è necessaria la suddivisione in blocchi di dati.
Parametri della competenza
I parametri fanno distinzione tra maiuscole e minuscole.
Input | Descrizione |
---|---|
resourceUri |
L'URI del provider di modelli, in questo caso, una risorsa OpenAI di Azure. Questo parametro supporta solo gli URL con dominio openai.azure.com , ad esempio https://<resourcename>.openai.azure.com . Se l'endpoint OpenAI di Azure ha un URL con dominio cognitiveservices.azure.com , ad esempio https://<resourcename>.cognitiveservices.azure.com , è necessario creare prima un sottodominio personalizzato con openai.azure.com per la risorsa OpenAI di Azure e usarlo https://<resourcename>.openai.azure.com . |
apiKey |
Chiave privata usata per accedere al modello. Se si specifica una chiave, lasciare vuoto authIdentity . Se si imposta sia apiKey che authIdentity , apiKey viene usato nella connessione. |
deploymentId |
Nome del modello di incorporamento di OpenAI di Azure distribuito. Il modello deve essere un modello di incorporamento, ad esempio text-embedding-ada-002. Per informazioni sui modelli supportati, vedere l'Elenco dei modelli di OpenAI di Azure. |
authIdentity |
Identità gestita dall'utente usata dal servizio di ricerca per la connessione a OpenAI di Azure. È possibile usare un'identità gestita dal sistema o dall'utente. Per usare un'identità gestita dal sistema, lasciare vuoti apiKey e authIdentity . L'identità gestita dal sistema viene usata automaticamente. Per inviare testo a OpenAI di Azure, un'identità gestita deve avere autorizzazioni di tipo Utente OpenAI di Servizi cognitivi. |
modelName |
Questa proprietà è obbligatoria se il set di competenze viene creato usando l'API REST 2024-05-01-preview o 2024-07-01. Impostare questa proprietà sul nome della distribuzione di un modello di incorporamento di Azure OpenAI distribuito nel provider specificato tramite resourceUri e identificato tramite deploymentId . I valori attualmente supportati sono text-embedding-ada-002 , text-embedding-3-large e text-embedding-3-small . |
dimensions |
(Facoltativo, introdotto nell'API REST 2024-05-01-preview). Dimensioni degli incorporamenti che si desidera generare se il modello supporta la riduzione delle dimensioni di incorporamento. Di seguito sono elencati gli intervalli supportati. Il valore predefinito è le dimensioni massime per ogni modello, se non specificato. Per i set di competenze creati con la versione 2023-10-01-preview, le dimensioni sono fisse a 1536. |
Dimensioni supportate da modelName
Le dimensioni supportate per una competenza di incorporamento OpenAI di Azure dipendono dall'oggetto modelName
configurato.
modelName |
Dimensioni minime | Dimensioni massime |
---|---|---|
text-embedding-ada-002 | 1536 | 1536 |
text-embedding-3-large | 1 | 3072 |
text-embedding-3-small | 1 | 1536 |
Input competenze
Input | Descrizione |
---|---|
text |
Testo di input da vettorizzare. Se si usa la suddivisione in blocchi di dati, l'origine potrebbe essere /document/pages/* . |
Output competenze
Output | Descrizione |
---|---|
embedding |
Incorporamento vettorializzato per il testo di input. |
Definizione di esempio
Si consideri un record con i campi seguenti:
{
"content": "Microsoft released Windows 10."
}
La definizione della competenza potrebbe essere simile alla seguente:
{
"@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
"description": "Connects a deployed embedding model.",
"resourceUri": "https://my-demo-openai-eastus.openai.azure.com/",
"deploymentId": "my-text-embedding-ada-002-model",
"modelName": "text-embedding-ada-002",
"dimensions": 1536,
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "embedding"
}
]
}
Output di esempio
Per il testo di input specificato, viene generato un output di incorporamento vettorializzato.
{
"embedding": [
0.018990106880664825,
-0.0073809814639389515,
....
0.021276434883475304,
]
}
L'output si trova in memoria. Per inviare questo output a un campo nell'indice di ricerca, è necessario definire un outputFieldMapping che esegue il mapping dell'output di incorporamento vettorializzato (che è un array) a un campo vettoriale. Supponendo che l'output della competenza risieda nel nodo di incorporamento del documento e content_vector sia il campo nell'indice di ricerca, outputFieldMapping nell'indicizzatore dovrebbe essere simile a:
"outputFieldMappings": [
{
"sourceFieldName": "/document/embedding/*",
"targetFieldName": "content_vector"
}
]
Procedure consigliate
Di seguito sono riportate alcune procedure consigliate da considerare quando si usa questa competenza:
Se si raggiunge il limite di TPM (token al minuto) di Azure OpenAI, prendere in considerazione l'avviso sui limiti di quota in modo da poter risolvere di conseguenza. Per altre informazioni sulle prestazioni dell'istanza di Azure OpenAI, vedere la documentazione di monitoraggio di Azure OpenAI.
La distribuzione del modello di incorporamento di Azure OpenAI usata per questa competenza deve essere idealmente separata dalla distribuzione usata per altri casi d'uso, incluso il vettore di query. In questo modo ogni distribuzione può essere personalizzata in base al proprio caso d'uso specifico, consentendo di ottimizzare le prestazioni e identificare facilmente il traffico proveniente dall'indicizzatore e dalle chiamate di incorporamento dell'indice.
L'istanza di Azure OpenAI deve trovarsi nella stessa area o almeno geograficamente vicina all'area in cui è ospitato il servizio di ricerca di intelligenza artificiale. Ciò riduce la latenza e migliora la velocità di trasferimento dei dati tra i servizi.
Se si dispone di un limite TPM (Token al minuto) di Azure OpenAI maggiore di quello predefinito pubblicato nella documentazione relativa a quote e limiti, aprire un caso di supporto con il team di Ricerca di intelligenza artificiale di Azure, in modo che questo possa essere modificato di conseguenza. Ciò consente al processo di indicizzazione di non essere rallentato inutilmente dal limite TPM predefinito documentato, se si hanno limiti più elevati.
Per esempi e campioni di codice funzionanti che usano questa competenza, vedere i collegamenti seguenti:
Errori e avvisi
Condizione | Risultato |
---|---|
URI Null o non valido | Error |
ID distribuzione Null o non valido | Error |
Il testo è vuoto | Avviso |
Il testo è maggiore di 8.000 token | Error |