Azure AI Foundry Models permite a los clientes consumir los modelos más eficaces de los proveedores de modelos insignia mediante un único punto de conexión y credenciales. Esto significa que puede cambiar entre modelos y consumirlos desde la aplicación sin cambiar una sola línea de código.
En el artículo se explica cómo se organizan los modelos dentro del servicio y cómo usar el punto de conexión de inferencia para invocarlos.
Implementaciones
Azure AI Foundry hace que los modelos estén disponibles mediante el concepto de implementación . Las implementaciones son una manera de asignar un nombre a un modelo en determinadas configuraciones. A continuación, puede invocar dicha configuración de modelo indicando su nombre en las solicitudes.
Captura de implementaciones:
- Un nombre de modelo
- Una versión de modelo
- Un tipo de aprovisionamiento o capacidad1
- Una configuración de filtrado de contenido1
- Una configuración de limitación de frecuencia1
1 Las configuraciones pueden variar en función del modelo seleccionado.
Un recurso de Azure AI Foundry puede tener tantas implementaciones de modelos como sea necesario y no incurren en costos a menos que se realice la inferencia para esos modelos. Las implementaciones son recursos de Azure y, por tanto, están sujetas a directivas de Azure.
Para obtener más información sobre cómo crear implementaciones, consulte Agregar y configurar implementaciones de modelos.
Puntos de conexión
Azure AI Foundry Services (anteriormente conocido como Azure AI Services) ofrece varios puntos de conexión en función del tipo de trabajo que estés buscando.
- Punto de conexión de inferencia de Azure AI (normalmente con el formato
https://<resource-name>.services.ai.azure.com/models
)
- Punto de conexión de Azure OpenAI (normalmente con el formulario
https://<resource-name>.openai.azure.com
)
El punto de conexión de inferencia de Azure AI permite a los clientes usar un único punto de conexión con la misma autenticación y esquema para generar inferencia para los modelos implementados en el recurso. Todos los modelos admiten esta funcionalidad. Este punto de conexión sigue la API de inferencia de modelos de Azure AI.
La API de Azure OpenAI expone las funcionalidades completas de los modelos de OpenAI y admite más características como asistentes, subprocesos, archivos e inferencia por lotes. Los modelos que no son de OpenAI también se pueden exponer en esta ruta.
Para más información sobre cómo aplicar el punto de conexión de Azure OpenAI , consulte la documentación de Azure OpenAI en Azure AI Foundry Models.
Uso del endpoint de inferencia de Azure AI
El punto de conexión de inferencia enruta las solicitudes a una implementación determinada mediante la coincidencia del parámetro name
dentro de la solicitud con el nombre de la implementación. Esto significa que las implementaciones funcionan como un alias de un modelo determinado en determinadas configuraciones. Esta flexibilidad le permite implementar un modelo determinado varias veces en el servicio, pero en configuraciones diferentes si es necesario.
Por ejemplo, si crea una implementación denominada Mistral-large
, esta implementación se puede invocar como:
Instale el paquete azure-ai-inference
mediante el administrador de paquetes, como pip:
pip install azure-ai-inference
A continuación, puede usar el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente para consumir finalizaciones de chat:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
client = ChatCompletionsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
)
Explore nuestros ejemplos y lea la documentación de referencia de API para empezar a trabajar.
Instale el paquete @azure-rest/ai-inference
mediante npm:
npm install @azure-rest/ai-inference
A continuación, puede usar el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente para consumir finalizaciones de chat:
import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { AzureKeyCredential } from "@azure/core-auth";
const client = new ModelClient(
"https://<resource>.services.ai.azure.com/models",
new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);
Explore nuestros ejemplos y lea la documentación de referencia de API para empezar a trabajar.
Instale la biblioteca de inferencia de Azure AI con el siguiente comando:
dotnet add package Azure.AI.Inference --prerelease
Importe los siguientes espacios de nombres:
using Azure;
using Azure.Identity;
using Azure.AI.Inference;
A continuación, puede usar el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente para consumir finalizaciones de chat:
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Explore nuestros ejemplos y lea la documentación de referencia de API para empezar a trabajar.
Agregue el paquete al proyecto:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-inference</artifactId>
<version>1.0.0-beta.1</version>
</dependency>
A continuación, puede usar el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente para consumir finalizaciones de chat:
ChatCompletionsClient client = new ChatCompletionsClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("https://<resource>.services.ai.azure.com/models")
.buildClient();
Explore nuestros ejemplos y lea la documentación de referencia de API para empezar a trabajar.
Use la sección de referencia para explorar el diseño de la API y qué parámetros están disponibles. Por ejemplo, en la sección de referencia de Finalizaciones de chat se detalla cómo usar la ruta /chat/completions
para generar predicciones basadas en instrucciones con formato de chat. Tenga en cuenta que la ruta de acceso /models
se incluye en la raíz de la dirección URL:
Solicitud
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
api-key: <api-key>
Content-Type: application/json
Para un modelo de chat, puede crear una solicitud de la siguiente manera:
from azure.ai.inference.models import SystemMessage, UserMessage
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="Explain Riemann's conjecture in 1 paragraph"),
],
model="mistral-large"
)
print(response.choices[0].message.content)
var messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "Explain Riemann's conjecture in 1 paragraph" },
];
var response = await client.path("/chat/completions").post({
body: {
messages: messages,
model: "mistral-large"
}
});
console.log(response.body.choices[0].message.content)
requestOptions = new ChatCompletionsOptions()
{
Messages = {
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("Explain Riemann's conjecture in 1 paragraph")
},
Model = "mistral-large"
};
response = client.Complete(requestOptions);
Console.WriteLine($"Response: {response.Value.Content}");
List<ChatRequestMessage> chatMessages = new ArrayList<>();
chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant"));
chatMessages.add(new ChatRequestUserMessage("Explain Riemann's conjecture in 1 paragraph"));
ChatCompletions chatCompletions = client.complete(new ChatCompletionsOptions(chatMessages));
for (ChatChoice choice : chatCompletions.getChoices()) {
ChatResponseMessage message = choice.getMessage();
System.out.println("Response:" + message.getContent());
}
Solicitud
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
api-key: <api-key>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
],
"model": "mistral-large"
}
Si especifica un nombre de modelo que no coincide con ninguna implementación de modelo determinada, obtendrá un error que indica que el modelo no existe. Puede controlar qué modelos están disponibles para los usuarios mediante la creación de implementaciones de modelo, como se explica en Agregar y configurar implementaciones de modelo.
Autenticación sin clave
Los modelos implementados en Azure AI Foundry Models dentro de Azure AI Services admiten la autorización sin claves mediante Microsoft Entra ID. La autorización sin clave mejora la seguridad, simplifica la experiencia del usuario, reduce la complejidad operativa y proporciona una sólida compatibilidad de cumplimiento para el desarrollo moderno. Lo convierte en una opción segura para las organizaciones que adoptan soluciones de administración de identidades seguras y escalables.
Para usar la autenticación sin clave, configure el recurso y conceda acceso a los usuarios para realizar la inferencia. Una vez configurado, puede autenticarse de la siguiente manera:
Instale el paquete azure-ai-inference
mediante el administrador de paquetes, como pip:
pip install azure-ai-inference
A continuación, puede usar el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente para consumir finalizaciones de chat con Entra ID:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import DefaultAzureCredential
client = ChatCompletionsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=DefaultAzureCredential(),
credential_scopes=["https://cognitiveservices.azure.com/.default"],
)
Instale el paquete @azure-rest/ai-inference
mediante npm:
npm install @azure-rest/ai-inference
A continuación, puede usar el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente para consumir finalizaciones de chat con Entra ID:
import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { DefaultAzureCredential } from "@azure/identity";
const clientOptions = { credentials: { "https://cognitiveservices.azure.com" } };
const client = new ModelClient(
"https://<resource>.services.ai.azure.com/models",
new DefaultAzureCredential(),
clientOptions,
);
Instale la biblioteca de inferencia de Azure AI con el siguiente comando:
dotnet add package Azure.AI.Inference --prerelease
Instala el paquete Azure.Identity
:
dotnet add package Azure.Identity
Importe los siguientes espacios de nombres:
using Azure;
using Azure.Identity;
using Azure.AI.Inference;
A continuación, puede usar el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente para consumir finalizaciones de chat con Entra ID:
TokenCredential credential = new DefaultAzureCredential();
AzureAIInferenceClientOptions clientOptions = new AzureAIInferenceClientOptions();
BearerTokenAuthenticationPolicy tokenPolicy = new BearerTokenAuthenticationPolicy(credential, new string[] { "https://cognitiveservices.azure.com/.default" });
clientOptions.AddPolicy(tokenPolicy, HttpPipelinePosition.PerRetry);
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
credential,
clientOptions.
);
Agregue el paquete al proyecto:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-inference</artifactId>
<version>1.0.0-beta.4</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.15.3</version>
</dependency>
A continuación, puede usar el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente para consumir finalizaciones de chat:
TokenCredential defaultCredential = new DefaultAzureCredentialBuilder().build();
ChatCompletionsClient client = new ChatCompletionsClientBuilder()
.credential(defaultCredential)
.endpoint("https://<resource>.services.ai.azure.com/models")
.buildClient();
Explore nuestros ejemplos y lea la documentación de referencia de API para empezar a trabajar.
Use la sección de referencia para explorar el diseño de la API y qué parámetros están disponibles e indicar el token de autenticación en el encabezado Authorization
. Por ejemplo, en la sección de referencia de Finalizaciones de chat se detalla cómo usar la ruta /chat/completions
para generar predicciones basadas en instrucciones con formato de chat. Tenga en cuenta que la ruta de acceso /models
se incluye en la raíz de la dirección URL:
Solicitud
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
Los tokens deben emitirse con el ámbito https://cognitiveservices.azure.com/.default
.
Con fines de prueba, la manera más fácil de obtener un token válido para la cuenta de usuario es usar la CLI de Azure. En una consola, ejecute el siguiente comando de la CLI de Azure:
az account get-access-token --resource https://cognitiveservices.azure.com --query "accessToken" --output tsv
Limitaciones
- Azure OpenAI Batch no se puede usar con el punto de conexión de Foundry Models. Tiene que usar la dirección URL de implementación dedicada, como se explica en la documentación de compatibilidad con la API Batch en Azure OpenAI.
- La API en tiempo real no es compatible con el extremo de inferencia. Use la dirección URL de implementación dedicada.
Pasos siguientes