Habilidade de incorporação do Azure OpenAI
A habilidade de incorporação do Azure OpenAI se conecta a um modelo de incorporação implantado em seu recurso do Azure OpenAI para gerar incorporações durante a indexação. Seus dados são processados na área geográfica onde seu modelo é implantado.
Pré-requisitos
Seu Serviço OpenAI do Azure deve ter um subdomínio personalizado associado. Se o serviço tiver sido criado através do portal do Azure, este subdomínio é gerado automaticamente como parte da configuração do serviço. Certifique-se de que seu serviço inclua um subdomínio personalizado antes de usá-lo com a integração do Azure AI Search.
Os recursos do Serviço OpenAI do Azure (com acesso a modelos de incorporação) que foram criados no portal do Azure AI Foundry não são suportados. Somente os recursos do Serviço OpenAI do Azure criados no portal do Azure são compatíveis com a integração de habilidades do Azure OpenAI Embedding .
O assistente Importar e vetorizar dados no portal do Azure usa a habilidade Azure OpenAI Embedding para vetorizar conteúdo. Você pode executar o assistente e revisar o conjunto de habilidades gerado para ver como o assistente cria a habilidade para incorporar modelos.
Nota
Essa habilidade está vinculada ao Azure OpenAI e é cobrada pelo preço existente do Azure OpenAI pay-as-you go.
@odata.type
Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill
Limites de dados
O tamanho máximo de uma entrada de texto deve ser de 8.000 tokens. Se a entrada exceder o máximo permitido, o modelo lançará um erro de solicitação inválida. Para obter mais informações, consulte o conceito de chave de tokens na documentação do Azure OpenAI. Considere usar a habilidade Divisão de texto se precisar de fragmentação de dados.
Parâmetros de habilidade
Os parâmetros diferenciam maiúsculas de minúsculas.
Entradas | Description |
---|---|
resourceUri |
O URI do provedor de modelo, neste caso, um recurso do Azure OpenAI. Este parâmetro suporta apenas URLs com domínio openai.azure.com , como https://<resourcename>.openai.azure.com . Se o ponto de extremidade do Azure OpenAI tiver uma URL com domínio , como https://<resourcename>.cognitiveservices.azure.com , um subdomínio personalizado com openai.azure.com deverá ser criado primeiro para o recurso do Azure OpenAI e usá-lohttps://<resourcename>.openai.azure.com .cognitiveservices.azure.com |
apiKey |
A chave secreta usada para acessar o modelo. Se fornecer uma chave, deixe authIdentity em branco. Se você definir o apiKey e authIdentity , o apiKey é usado na conexão. |
deploymentId |
O nome do modelo de incorporação do Azure OpenAI implantado. O modelo deve ser um modelo de incorporação, como text-embedding-ada-002. Consulte a Lista de modelos do Azure OpenAI para modelos suportados. |
authIdentity |
Uma identidade gerenciada pelo usuário usada pelo serviço de pesquisa para se conectar ao Azure OpenAI. Você pode usar uma identidade gerenciada pelo sistema ou pelo usuário. Para usar uma identidade gerenciada pelo sistema, deixe apiKey em authIdentity branco. A identidade gerenciada pelo sistema é usada automaticamente. Uma identidade gerenciada deve ter permissões de Usuário OpenAI dos Serviços Cognitivos para enviar texto para o Azure OpenAI. |
modelName |
Esta propriedade é necessária se o conjunto de habilidades for criado usando a API REST 2024-05-01-preview ou 2024-07-01. Defina essa propriedade como o nome de implantação de um modelo de incorporação do Azure OpenAI implantado no provedor especificado e resourceUri identificado por meio do deploymentId . Atualmente, os valores suportados são text-embedding-ada-002 , text-embedding-3-large e text-embedding-3-small . |
dimensions |
(Opcional, introduzido na API REST 2024-05-01-preview). As dimensões das incorporações que você gostaria de gerar se o modelo suportar a redução das dimensões de incorporação. Os intervalos suportados estão listados abaixo. O padrão é as dimensões máximas de cada modelo, se não for especificado. Para conjuntos de habilidades criados usando a visualização 2023-10-01, as dimensões são fixadas em 1536. |
Dimensões suportadas por modelName
As dimensões suportadas para uma habilidade de incorporação do Azure OpenAI dependem do modelName
que está configurado.
modelName |
Dimensões mínimas | Dimensões máximas |
---|---|---|
incorporação de texto-ada-002 | 1536 | 1536 |
incorporação de texto-3-grande | 1 | 3072 |
incorporação de texto-3-pequeno | 1 | 1536 |
Contributos para as competências
Entrada | Description |
---|---|
text |
O texto de entrada a ser vetorizado. Se você estiver usando o agrupamento de dados, a fonte pode ser /document/pages/* . |
Resultados em termos de competências
Saída | Description |
---|---|
embedding |
Incorporação vetorizada para o texto de entrada. |
Definição da amostra
Considere um registro que tenha os seguintes campos:
{
"content": "Microsoft released Windows 10."
}
Então sua definição de habilidade pode ficar assim:
{
"@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"
}
]
}
Saída de exemplo
Para o texto de entrada dado, uma saída de incorporação vetorizada é produzida.
{
"embedding": [
0.018990106880664825,
-0.0073809814639389515,
....
0.021276434883475304,
]
}
A saída reside na memória. Para enviar essa saída para um campo no índice de pesquisa, você deve definir um outputFieldMapping que mapeie a saída de incorporação vetorizada (que é uma matriz) para um campo vetorial. Supondo que a saída de habilidade resida no nó de incorporação do documento e content_vetor seja o campo no índice de pesquisa, o outputFieldMapping no indexador deve ter a seguinte aparência:
"outputFieldMappings": [
{
"sourceFieldName": "/document/embedding/*",
"targetFieldName": "content_vector"
}
]
Melhores práticas
A seguir estão algumas práticas recomendadas que você precisa considerar ao utilizar essa habilidade:
Se você estiver atingindo seu limite de TPM (Tokens por minuto) do Azure OpenAI, considere o aviso de limites de cota para que você possa lidar de acordo. Consulte a documentação de monitoramento do Azure OpenAI para obter mais informações sobre o desempenho da sua instância do Azure OpenAI.
A implantação do modelo de incorporação do Azure OpenAI que você usa para essa habilidade deve ser idealmente separada da implantação usada para outros casos de uso, incluindo o vetorizador de consulta. Isso ajuda cada implantação a ser adaptada ao seu caso de uso específico, levando a um desempenho otimizado e identificando facilmente o tráfego do indexador e as chamadas de incorporação do índice.
Sua instância do Azure OpenAI deve estar na mesma região ou, pelo menos, geograficamente perto da região onde seu serviço de Pesquisa de IA está hospedado. Isso reduz a latência e melhora a velocidade de transferência de dados entre os serviços.
Se você tiver um limite maior do que o padrão do Azure OpenAI TPM (Tokens por minuto), conforme publicado na documentação de cotas e limites , abra um caso de suporte com a equipe do Azure AI Search, para que isso possa ser ajustado de acordo. Isso ajuda seu processo de indexação a não ser desnecessariamente retardado pelo limite TPM padrão documentado, se você tiver limites mais altos.
Para obter exemplos e exemplos de código de trabalho usando essa habilidade, consulte os seguintes links:
Erros e avisos
Condição | Result |
---|---|
URI nulo ou inválido | Erro |
DeploymentID nulo ou inválido | Erro |
O texto está vazio | Aviso |
O texto é maior que 8.000 tokens | Erro |