Condividi tramite


Competenza di incorporamento di OpenAI di Azure

Importante

Questa funzionalità è disponibile in anteprima pubblica in Condizioni supplementari per l'utilizzo. L'API REST 2023-10-01-preview supporta la prima iterazione di questa funzionalità. L'API REST 2024-05-01-preview aggiunge altre proprietà e supporta altri modelli di incorporamento di testo in Azure OpenAI.

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.

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 il modello text-embedding-ada-002.

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 URI di un provider di modelli, ad esempio una risorsa di OpenAI di Azure o un URL di OpenAI.
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. 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

Vedi anche