Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se apenas a:Portal Foundry (clássico). Este artigo não está disponível para o novo portal da Foundry.
Saiba mais sobre o novo portal.
Nota
Os links neste artigo podem abrir conteúdo na nova documentação do Microsoft Foundry em vez da documentação do Foundry (clássico) que está a ver agora.
Importante
O Azure AI Inference beta SDK está obsoleto e será retirado a 26 de agosto de 2026. Mude para a API OpenAI/v1 geralmente disponível com um SDK OpenAI estável. Siga o guia de migração para mudar para OpenAI/v1, usando o SDK da sua linguagem de programação preferida.
Importante
Os itens marcados (pré-visualização) neste artigo encontram-se atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e não a recomendamos para cargas de trabalho em produção. Certas funcionalidades podem não ser suportadas ou podem ter capacidades limitadas. Para mais informações, consulte Termos de Utilização Suplementares para Microsoft Azure Pré-visualizações.
Este artigo explica como usar a API de embeddings com modelos implementados nos Microsoft Foundry Models.
Pré-requisitos
Para usar modelos de embedding na sua aplicação, precisa de:
Uma subscrição do Azure. Se estiveres a usar GitHub Models, podes atualizar a tua experiência e criar uma subscrição do Azure no processo. Leia Upgrade de GitHub Models para Microsoft Foundry Models se for esse o seu caso.
Um projeto da Foundry. Este tipo de projeto é gerido através de um recurso da Foundry. Se não tiver um projeto Foundry, veja Criar um projeto para Foundry (Projetos Foundry).
O URL do endpoint.
A chave do endpoint (se optar por usar a chave API para autenticação).
Instale o pacote de inferência de IA Azure para Python com o seguinte comando:
pip install -U azure-ai-inference
- Uma implementação de modelo de embeddings. Se não tiveres um, lê Adicionar e configurar Foundry Models para adicionar um modelo de embeddings ao teu recurso.
Utilização de embeddings
Primeiro, crie o cliente para consumir o modelo. O código seguinte utiliza uma URL de endpoint e uma chave que são armazenadas nas variáveis de ambiente.
import os
from azure.ai.inference import EmbeddingsClient
from azure.core.credentials import AzureKeyCredential
model = EmbeddingsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
model="text-embedding-3-small"
)
Se configurou o recurso com suporte Microsoft Entra ID, pode usar o seguinte excerto de código para criar um cliente.
import os
from azure.ai.inference import EmbeddingsClient
from azure.identity import DefaultAzureCredential
model = EmbeddingsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=DefaultAzureCredential(),
model="text-embedding-3-small"
)
Criar incrustações (embeddings)
Crie um pedido de embedding para ver a saída do modelo.
response = model.embed(
input=["The ultimate answer to the question of life"],
)
Dica
Ao criar um pedido, tenha em conta o limite de entrada do token para o modelo. Se precisares de incorporar porções maiores de texto, precisarias de uma estratégia de fragmentação.
A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:
import numpy as np
for embed in response.data:
print("Embedding of size:", np.asarray(embed.embedding).shape)
print("Model:", response.model)
print("Usage:", response.usage)
Pode ser útil calcular embeddings em lotes de entrada. O parâmetro inputs pode ser uma lista de cadeias, onde cada cadeia é uma entrada diferente. Por sua vez, a resposta é uma lista de embeddings, onde cada embedding corresponde à entrada na mesma posição.
response = model.embed(
input=[
"The ultimate answer to the question of life",
"The largest planet in our solar system is Jupiter",
],
)
A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:
import numpy as np
for embed in response.data:
print("Embedding of size:", np.asarray(embed.embedding).shape)
print("Model:", response.model)
print("Usage:", response.usage)
Dica
Ao criar lotes de pedidos, tenha em conta o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de 1024 lotes.
Especificar dimensões de embeddings
Pode especificar o número de dimensões para os embeddings. O seguinte exemplo de código mostra como criar embeddings com dimensões 1024. Note que nem todos os modelos de embedding suportam indicar o número de dimensões no pedido e, nesses casos, é devolto um erro 422.
response = model.embed(
input=["The ultimate answer to the question of life"],
dimensions=1024,
)
Criar diferentes tipos de incorporações (embeddings)
Alguns modelos podem gerar múltiplos embeddings para a mesma entrada, dependendo de como planeias usá-los. Esta funcionalidade permite-lhe recuperar embeddings mais precisos para padrões RAG.
O exemplo seguinte mostra como criar embeddings que são usados para criar um embedding para um documento que será armazenado numa base de dados vetorial:
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=["The answer to the ultimate question of life, the universe, and everything is 42"],
input_type=EmbeddingInputType.DOCUMENT,
)
Quando trabalha numa consulta para recuperar tal documento, pode usar o seguinte excerto de código para criar os embeddings da consulta e maximizar o desempenho da recuperação.
from azure.ai.inference.models import EmbeddingInputType
response = model.embed(
input=["What's the ultimate meaning of life?"],
input_type=EmbeddingInputType.QUERY,
)
Note que nem todos os modelos de embedding suportam indicar o tipo de entrada no pedido e, nesses casos, é devolvido um erro 422. Por padrão, são devolvidos embeddings do tipo Text.
Importante
Os itens marcados (pré-visualização) neste artigo encontram-se atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e não a recomendamos para cargas de trabalho em produção. Certas funcionalidades podem não ser suportadas ou podem ter capacidades limitadas. Para mais informações, consulte Termos de Utilização Suplementares para Microsoft Azure Pré-visualizações.
Este artigo explica como usar a API de embeddings com modelos implementados nos Microsoft Foundry Models.
Pré-requisitos
Para usar modelos de embedding na sua aplicação, precisa de:
Uma subscrição do Azure. Se estiveres a usar GitHub Models, podes atualizar a tua experiência e criar uma subscrição do Azure no processo. Leia Upgrade de GitHub Models para Microsoft Foundry Models se for esse o seu caso.
Um projeto da Foundry. Este tipo de projeto é gerido através de um recurso da Foundry. Se não tiver um projeto Foundry, veja Criar um projeto para Foundry (Projetos Foundry).
O URL do endpoint.
A chave do endpoint (se optar por usar a chave API para autenticação).
Instale a biblioteca de inferência Azure para JavaScript com o seguinte comando:
npm install @azure-rest/ai-inference npm install @azure/core-auth npm install @azure/identitySe estiver a usar Node.js, pode configurar as dependências em package.json:
package.json
{ "name": "main_app", "version": "1.0.0", "description": "", "main": "app.js", "type": "module", "dependencies": { "@azure-rest/ai-inference": "1.0.0-beta.6", "@azure/core-auth": "1.9.0", "@azure/core-sse": "2.2.0", "@azure/identity": "4.8.0" } }Importa o seguinte:
import ModelClient from "@azure-rest/ai-inference"; import { isUnexpected } from "@azure-rest/ai-inference"; import { createSseStream } from "@azure/core-sse"; import { AzureKeyCredential } from "@azure/core-auth"; import { DefaultAzureCredential } from "@azure/identity";
- Uma implementação de modelo de embeddings. Se não tiveres um, lê Adicionar e configurar Foundry Models para adicionar um modelo de embeddings ao teu recurso.
Utilização de embeddings
Primeiro, crie o cliente para consumir o modelo. O código seguinte utiliza uma URL de endpoint e uma chave que são armazenadas nas variáveis de ambiente.
const client = ModelClient(
"https://<resource>.services.ai.azure.com/models",
new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);
Se configurou o recurso com suporte Microsoft Entra ID, pode usar o seguinte excerto de código para criar um cliente.
const clientOptions = { credentials: { "https://cognitiveservices.azure.com" } };
const client = ModelClient(
"https://<resource>.services.ai.azure.com/models",
new DefaultAzureCredential()
clientOptions,
);
Criar embeddings
Crie um pedido de embedding para ver a saída do modelo.
var response = await client.path("/embeddings").post({
body: {
model: "text-embedding-3-small",
input: ["The ultimate answer to the question of life"],
}
});
Dica
Ao criar um pedido, tenha em conta o limite de entrada do token para o modelo. Se precisares de incorporar porções maiores de texto, precisarias de uma estratégia de fragmentação.
A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Pode ser útil calcular embeddings em lotes de entrada. O parâmetro inputs pode ser uma lista de cadeias, onde cada cadeia é uma entrada diferente. Por sua vez, a resposta é uma lista de embeddings, em que cada embedding corresponde à entrada na mesma posição.
var response = await client.path("/embeddings").post({
body: {
model: "text-embedding-3-small",
input: [
"The ultimate answer to the question of life",
"The largest planet in our solar system is Jupiter",
],
}
});
A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);
Dica
Ao criar lotes de pedidos, tenha em conta o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de 1024 lotes.
Especificar dimensões de embeddings
Pode especificar o número de dimensões para as incorporações. O seguinte exemplo de código mostra como criar embeddings com dimensões 1024. Note que nem todos os modelos de embedding suportam indicar o número de dimensões no pedido e, nesses casos, é devolto um erro 422.
var response = await client.path("/embeddings").post({
body: {
model: "text-embedding-3-small",
input: ["The ultimate answer to the question of life"],
dimensions: 1024,
}
});
Criar diferentes tipos de incorporações (embeddings)
Alguns modelos podem gerar múltiplos embeddings para a mesma entrada, dependendo de como planeias usá-los. Esta funcionalidade permite-lhe recuperar embeddings mais precisos para padrões RAG.
O exemplo seguinte mostra como criar embeddings que são usados para criar um embedding para um documento que será armazenado numa base de dados vetorial:
var response = await client.path("/embeddings").post({
body: {
model: "text-embedding-3-small",
input: ["The answer to the ultimate question of life, the universe, and everything is 42"],
input_type: "document",
}
});
Quando trabalha numa consulta para recuperar tal documento, pode usar o seguinte excerto de código para criar os embeddings da consulta e maximizar o desempenho da recuperação.
var response = await client.path("/embeddings").post({
body: {
model: "text-embedding-3-small",
input: ["What's the ultimate meaning of life?"],
input_type: "query",
}
});
Note que nem todos os modelos de embedding suportam indicar o tipo de entrada no pedido e, nesses casos, é devolvido um erro 422. Por padrão, são devolvidos embeddings do tipo Text.
Importante
Os itens marcados (pré-visualização) neste artigo encontram-se atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e não a recomendamos para cargas de trabalho em produção. Certas funcionalidades podem não ser suportadas ou podem ter capacidades limitadas. Para mais informações, consulte Termos de Utilização Suplementares para Microsoft Azure Pré-visualizações.
Este artigo explica como usar a API de embeddings com modelos implementados nos Microsoft Foundry Models.
Pré-requisitos
Para usar modelos de embedding na sua aplicação, precisa de:
Uma subscrição do Azure. Se estiveres a usar GitHub Models, podes atualizar a tua experiência e criar uma subscrição do Azure no processo. Leia Upgrade de GitHub Models para Microsoft Foundry Models se for esse o seu caso.
Um projeto da Foundry. Este tipo de projeto é gerido através de um recurso da Foundry. Se não tiver um projeto Foundry, veja Criar um projeto para Foundry (Projetos Foundry).
O URL do endpoint.
A chave do endpoint (se optar por usar a chave API para autenticação).
Adicione o pacote de inferência Azure IA ao seu projeto:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-ai-inference</artifactId> <version>1.0.0-beta.4</version> </dependency>Se estiver a usar o Entra ID, também precisa do seguinte pacote:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.15.3</version> </dependency>Importar o seguinte espaço de nomes:
package com.azure.ai.inference.usage; import com.azure.ai.inference.EmbeddingsClient; import com.azure.ai.inference.EmbeddingsClientBuilder; import com.azure.ai.inference.ChatCompletionsClient; import com.azure.ai.inference.ChatCompletionsClientBuilder; import com.azure.ai.inference.models.EmbeddingsResult; import com.azure.ai.inference.models.EmbeddingItem; import com.azure.ai.inference.models.ChatCompletions; import com.azure.core.credential.AzureKeyCredential; import com.azure.core.util.Configuration; import java.util.ArrayList; import java.util.List;
Importar o seguinte espaço de nomes:
package com.azure.ai.inference.usage; import com.azure.ai.inference.EmbeddingsClient; import com.azure.ai.inference.EmbeddingsClientBuilder; import com.azure.ai.inference.models.EmbeddingsResult; import com.azure.ai.inference.models.EmbeddingItem; import com.azure.core.credential.AzureKeyCredential; import com.azure.core.util.Configuration; import java.util.ArrayList; import java.util.List;Uma implementação de modelo de embeddings. Se não tiveres um, lê Adicionar e configurar Foundry Models para adicionar um modelo de embeddings ao teu recurso.
Utilização de embeddings
Primeiro, crie o cliente para consumir o modelo. O código seguinte utiliza uma URL de endpoint e uma chave que são armazenadas nas variáveis de ambiente.
EmbeddingsClient client = new EmbeddingsClient(
URI.create(System.getProperty("AZURE_INFERENCE_ENDPOINT")),
new AzureKeyCredential(System.getProperty("AZURE_INFERENCE_CREDENTIAL")),
"text-embedding-3-small"
);
Se configurou o recurso com suporte Microsoft Entra ID, pode usar o seguinte excerto de código para criar um cliente.
client = new EmbeddingsClient(
URI.create(System.getProperty("AZURE_INFERENCE_ENDPOINT")),
new DefaultAzureCredential(),
"text-embedding-3-small"
);
Criar embeddings
Crie um pedido de embedding para ver a saída do modelo.
EmbeddingsOptions requestOptions = new EmbeddingsOptions()
.setInput(Arrays.asList("The ultimate answer to the question of life"));
Response<EmbeddingsResult> response = client.embed(requestOptions);
Dica
Ao criar um pedido, tenha em conta o limite de entrada do token para o modelo. Se precisares de incorporar porções maiores de texto, precisarias de uma estratégia de fragmentação.
A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:
System.out.println("Embedding: " + response.getValue().getData());
System.out.println("Model: " + response.getValue().getModel());
System.out.println("Usage:");
System.out.println("\tPrompt tokens: " + response.getValue().getUsage().getPromptTokens());
System.out.println("\tTotal tokens: " + response.getValue().getUsage().getTotalTokens());
Pode ser útil calcular embeddings em lotes de entrada. O parâmetro inputs pode ser uma lista de cadeias, onde cada cadeia é uma entrada diferente. Por sua vez, a resposta é uma lista de embeddings, em que cada embedding corresponde à entrada na mesma posição.
requestOptions = new EmbeddingsOptions()
.setInput(Arrays.asList(
"The ultimate answer to the question of life",
"The largest planet in our solar system is Jupiter"
));
response = client.embed(requestOptions);
A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:
Dica
Ao criar lotes de pedidos, tenha em conta o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de 1024 lotes.
Especificar dimensões de embeddings
Pode especificar o número de dimensões para as incorporações. O seguinte exemplo de código mostra como criar embeddings com dimensões 1024. Note que nem todos os modelos de embedding suportam indicar o número de dimensões no pedido e, nesses casos, é devolto um erro 422.
Criar diferentes tipos de incorporações (embeddings)
Alguns modelos podem gerar múltiplos embeddings para a mesma entrada, dependendo de como planeias usá-los. Esta funcionalidade permite-lhe recuperar embeddings mais precisos para padrões RAG.
O exemplo seguinte mostra como criar embeddings que são usados para criar um embedding para um documento que será armazenado numa base de dados vetorial:
List<String> input = Arrays.asList("The answer to the ultimate question of life, the universe, and everything is 42");
requestOptions = new EmbeddingsOptions(input, EmbeddingInputType.DOCUMENT);
response = client.embed(requestOptions);
Quando trabalha numa consulta para recuperar tal documento, pode usar o seguinte excerto de código para criar os embeddings da consulta e maximizar o desempenho da recuperação.
input = Arrays.asList("What's the ultimate meaning of life?");
requestOptions = new EmbeddingsOptions(input, EmbeddingInputType.QUERY);
response = client.embed(requestOptions);
Note que nem todos os modelos de embedding suportam indicar o tipo de entrada no pedido e, nesses casos, é devolvido um erro 422. Por padrão, são devolvidos embeddings do tipo Text.
Importante
Os itens marcados (pré-visualização) neste artigo encontram-se atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e não a recomendamos para cargas de trabalho em produção. Certas funcionalidades podem não ser suportadas ou podem ter capacidades limitadas. Para mais informações, consulte Termos de Utilização Suplementares para Microsoft Azure Pré-visualizações.
Este artigo explica como usar a API de embeddings com modelos implementados nos Microsoft Foundry Models.
Pré-requisitos
Para usar modelos de embedding na sua aplicação, precisa de:
Uma subscrição do Azure. Se estiveres a usar GitHub Models, podes atualizar a tua experiência e criar uma subscrição do Azure no processo. Leia Upgrade de GitHub Models para Microsoft Foundry Models se for esse o seu caso.
Um projeto da Foundry. Este tipo de projeto é gerido através de um recurso da Foundry. Se não tiver um projeto Foundry, veja Criar um projeto para Foundry (Projetos Foundry).
O URL do endpoint.
A chave do endpoint (se optar por usar a chave API para autenticação).
Instale o pacote de inferência de IA Azure com o seguinte comando:
dotnet add package Azure.AI.Inference --prereleaseSe estiver a usar o Entra ID, também precisa do seguinte pacote:
dotnet add package Azure.Identity
- Uma implementação de modelo de embeddings. Se não tiveres um, lê Adicionar e configurar Foundry Models para adicionar um modelo de embeddings ao teu recurso.
Utilização de embeddings
Primeiro, crie o cliente para consumir o modelo. O código seguinte utiliza uma URL de endpoint e uma chave que são armazenadas nas variáveis de ambiente.
EmbeddingsClient client = new EmbeddingsClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Se configurou o recurso com suporte Microsoft Entra ID, pode usar o seguinte excerto de código para criar um cliente. Note que aqui includeInteractiveCredentials está definido apenas true para fins de demonstração, para que a autenticação possa ser feita usando o navegador web. Em cargas de trabalho em produção, deves remover esse parâmetro.
TokenCredential credential = new DefaultAzureCredential(includeInteractiveCredentials: true);
AzureAIInferenceClientOptions clientOptions = new AzureAIInferenceClientOptions();
BearerTokenAuthenticationPolicy tokenPolicy = new BearerTokenAuthenticationPolicy(credential, new string[] { "https://cognitiveservices.azure.com/.default" });
clientOptions.AddPolicy(tokenPolicy, HttpPipelinePosition.PerRetry);
client = new EmbeddingsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
credential,
clientOptions,
);
Criar embeddings
Crie um pedido de embedding para ver a saída do modelo.
EmbeddingsOptions requestOptions = new EmbeddingsOptions()
{
Input = {
"The ultimate answer to the question of life"
},
Model = "text-embedding-3-small"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
Dica
Ao criar um pedido, tenha em conta o limite de entrada do token para o modelo. Se precisares de incorporar porções maiores de texto, precisarias de uma estratégia de fragmentação.
A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:
Console.WriteLine($"Embedding: {response.Value.Data}");
Console.WriteLine($"Model: {response.Value.Model}");
Console.WriteLine("Usage:");
Console.WriteLine($"\tPrompt tokens: {response.Value.Usage.PromptTokens}");
Console.WriteLine($"\tTotal tokens: {response.Value.Usage.TotalTokens}");
Pode ser útil calcular embeddings em lotes de entrada. O parâmetro inputs pode ser uma lista de cadeias, onde cada cadeia é uma entrada diferente. Por sua vez, a resposta é uma lista de embeddings, em que cada embedding corresponde à entrada na mesma posição.
EmbeddingsOptions requestOptions = new EmbeddingsOptions()
{
Input = {
"The ultimate answer to the question of life",
"The largest planet in our solar system is Jupiter"
},
Model = "text-embedding-3-small"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:
Dica
Ao criar lotes de pedidos, tenha em conta o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de 1024 lotes.
Especificar dimensões de embeddings
Pode especificar o número de dimensões para as incorporações. O seguinte exemplo de código mostra como criar embeddings com dimensões 1024. Note que nem todos os modelos de embedding suportam indicar o número de dimensões no pedido e, nesses casos, é devolto um erro 422.
Criar diferentes tipos de incorporações (embeddings)
Alguns modelos podem gerar múltiplos embeddings para a mesma entrada, dependendo de como planeias usá-los. Esta funcionalidade permite-lhe recuperar embeddings mais precisos para padrões RAG.
O exemplo seguinte mostra como criar embeddings que são usados para criar um embedding para um documento que será armazenado numa base de dados vetorial:
var input = new List<string> {
"The answer to the ultimate question of life, the universe, and everything is 42"
};
var requestOptions = new EmbeddingsOptions()
{
Input = input,
InputType = EmbeddingInputType.DOCUMENT,
Model = "text-embedding-3-small"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
Quando trabalha numa consulta para recuperar tal documento, pode usar o seguinte excerto de código para criar os embeddings da consulta e maximizar o desempenho da recuperação.
var input = new List<string> {
"What's the ultimate meaning of life?"
};
var requestOptions = new EmbeddingsOptions()
{
Input = input,
InputType = EmbeddingInputType.QUERY,
Model = "text-embedding-3-small"
};
Response<EmbeddingsResult> response = client.Embed(requestOptions);
Note que nem todos os modelos de embedding suportam indicar o tipo de entrada no pedido e, nesses casos, é devolvido um erro 422. Por padrão, são devolvidos embeddings do tipo Text.
Importante
Os itens marcados (pré-visualização) neste artigo encontram-se atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e não a recomendamos para cargas de trabalho em produção. Certas funcionalidades podem não ser suportadas ou podem ter capacidades limitadas. Para mais informações, consulte Termos de Utilização Suplementares para Microsoft Azure Pré-visualizações.
Este artigo explica como usar a API de embeddings com modelos implementados nos Microsoft Foundry Models.
Pré-requisitos
Para usar modelos de embedding na sua aplicação, precisa de:
Uma subscrição do Azure. Se estiveres a usar GitHub Models, podes atualizar a tua experiência e criar uma subscrição do Azure no processo. Leia Upgrade de GitHub Models para Microsoft Foundry Models se for esse o seu caso.
Um projeto da Foundry. Este tipo de projeto é gerido através de um recurso da Foundry. Se não tiver um projeto Foundry, veja Criar um projeto para Foundry (Projetos Foundry).
O URL do endpoint.
A chave do endpoint (se optar por usar a chave API para autenticação).
- Uma implementação de modelo de embeddings. Se não tiveres um, lê Adicionar e configurar Foundry Models para adicionar um modelo de embeddings ao teu recurso.
Utilização de embeddings
Para usar os embeddings de texto, utilize a rota /embeddings anexada à URL base juntamente com a sua credencial indicada em api-key.
Authorization cabeçalho também é suportado no formato Bearer <key>.
POST https://<resource>.services.ai.azure.com/models/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
api-key: <key>
Se configurou o recurso com suporte a Microsoft Entra ID, passe o seu token no cabeçalho Authorization com o formato Bearer <token>. Use o âmbito https://ai.azure.com/.default.
POST https://<resource>.services.ai.azure.com/models/embeddings?api-version=2024-05-01-preview
Content-Type: application/json
Authorization: Bearer <token>
Usar o Microsoft Entra ID pode exigir uma configuração adicional no seu recurso para conceder acesso. Aprenda a configurar autenticação sem chave com Microsoft Entra ID.
Criar embeddings
Crie um pedido de embedding para ver a saída do modelo.
{
"model": "text-embedding-3-small",
"input": [
"The ultimate answer to the question of life"
]
}
Dica
Ao criar um pedido, tenha em conta o limite de entrada do token para o modelo. Se precisares de incorporar porções maiores de texto, precisarias de uma estratégia de fragmentação.
A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:
{
"id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
"object": "list",
"data": [
{
"index": 0,
"object": "embedding",
"embedding": [
0.017196655,
// ...
-0.000687122,
-0.025054932,
-0.015777588
]
}
],
"model": "text-embedding-3-small",
"usage": {
"prompt_tokens": 9,
"completion_tokens": 0,
"total_tokens": 9
}
}
Pode ser útil calcular embeddings em lotes de entrada. O parâmetro inputs pode ser uma lista de cadeias, onde cada cadeia é uma entrada diferente. Por sua vez, a resposta é uma lista de embeddings, em que cada embedding corresponde à entrada na mesma posição.
{
"model": "text-embedding-3-small",
"input": [
"The ultimate answer to the question of life",
"The largest planet in our solar system is Jupiter"
]
}
A resposta é a seguinte, onde pode ver as estatísticas de utilização do modelo:
{
"id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
"object": "list",
"data": [
{
"index": 0,
"object": "embedding",
"embedding": [
0.017196655,
// ...
-0.000687122,
-0.025054932,
-0.015777588
]
},
{
"index": 1,
"object": "embedding",
"embedding": [
0.017196655,
// ...
-0.000687122,
-0.025054932,
-0.015777588
]
}
],
"model": "text-embedding-3-small",
"usage": {
"prompt_tokens": 19,
"completion_tokens": 0,
"total_tokens": 19
}
}
Dica
Ao criar lotes de pedidos, tenha em conta o limite de lote para cada um dos modelos. A maioria dos modelos tem um limite de 1024 lotes.
Especificar dimensões de embeddings
Pode especificar o número de dimensões para as incorporações. O seguinte exemplo de código mostra como criar embeddings com dimensões 1024. Note que nem todos os modelos de embedding suportam indicar o número de dimensões no pedido e, nesses casos, é devolto um erro 422.
{
"model": "text-embedding-3-small",
"input": [
"The ultimate answer to the question of life"
],
"dimensions": 1024
}
Criar diferentes tipos de incorporações (embeddings)
Alguns modelos podem gerar múltiplos embeddings para a mesma entrada, dependendo de como planeias usá-los. Esta funcionalidade permite-lhe recuperar embeddings mais precisos para padrões RAG.
O exemplo seguinte mostra como criar embeddings que são usados para criar um embedding para um documento que será armazenado numa base de dados vetorial. Como text-embedding-3-small não suporta esta capacidade, estamos a usar um modelo de embedding do Cohere no seguinte exemplo:
{
"model": "cohere-embed-v3-english",
"input": [
"The answer to the ultimate question of life, the universe, and everything is 42"
],
"input_type": "document"
}
Quando trabalha numa consulta para recuperar tal documento, pode usar o seguinte excerto de código para criar os embeddings da consulta e maximizar o desempenho da recuperação. Como text-embedding-3-small não suporta esta capacidade, estamos a usar um modelo de embedding do Cohere no seguinte exemplo:
{
"model": "cohere-embed-v3-english",
"input": [
"What's the ultimate meaning of life?"
],
"input_type": "query"
}
Note que nem todos os modelos de embedding suportam indicar o tipo de entrada no pedido e, nesses casos, é devolvido um erro 422. Por padrão, são devolvidos embeddings do tipo Text.