Microsoft Foundry Models proporciona acceso a una amplia variedad de modelos de muchos proveedores a través de un único punto de conexión y un conjunto de credenciales. Esta funcionalidad le permite cambiar entre modelos y usarlas en la aplicación sin realizar cambios en el código.
En este artículo se explica cómo los servicios Foundry organizan los modelos y cómo usar el punto de conexión de inferencia para acceder a ellos.
Prerequisites
Implementaciones
Foundry usa implementaciones como alias para el acceso al modelo. Una implementación proporciona un nombre a un modelo y un conjunto de configuraciones. Se accede a un modelo mediante su nombre de implementación en sus solicitudes.
Una implementación define:
- Un nombre de modelo
- Una versión del modelo
- Una provisión o tipo de capacidad1
- Una configuración de filtrado de contenido1
- Una configuración de limitación de velocidad1
1 Estas configuraciones pueden cambiar según el modelo seleccionado.
Un recurso Foundry puede tener muchas implementaciones de modelos. Solo se paga por la inferencia realizada en las implementaciones de modelos. Las implementaciones son Azure recursos, por lo que están sujetas a directivas de Azure.
Para obtener más información sobre la creación de implementaciones, consulte Incorporación y configuración de implementaciones de modelos.
Punto de conexión de inferencia de Azure OpenAI
El Azure OpenAI API expone las funcionalidades completas de los modelos openAI y admite más características como asistentes, subprocesos, archivos e inferencia por lotes. También puede usarlo para acceder a modelos que no son de OpenAI.
Los puntos de conexión de Azure OpenAI tienen el formato https://<resource-name>.openai.azure.com. Los puntos de conexión corresponden a los despliegues, y cada despliegue tiene su propia URL asociada. Sin embargo, puede usar el mismo mecanismo de autenticación para consumir más de una implementación. Para obtener más información, consulte la página de referencia de Azure OpenAI API.
Las direcciones URL de implementación se forman mediante la concatenación de la dirección URL base de OpenAI Azure y la ruta /deployments/<model-deployment-name>. Cuando use la API OpenAI v1, llame a la ruta /openai/v1/ en la URL base, https://<resource-name>.openai.azure.com/openai/v1/, y pase el nombre de implementación en el campo model de la solicitud. La ruta /openai/v1/ usa versionado implícito, por lo que no es necesario pasar un api-version.
En los ejemplos siguientes se usa la API de respuestas, que admite las características de inferencia más recientes.
Note
La API de respuestas funciona con los modelos de Azure OpenAI y con los modelos de Foundry comercializados por Azure que son compatibles con ella, como los modelos DeepSeek, Llama y Grok. Si una implementación no admite la API de respuestas, la solicitud devuelve 400 Model not supported. En ese caso, use la API de Finalizaciones de Chat llamando a client.chat.completions.create en su lugar.
Uso de la autenticación de clave de API
Puede autenticar solicitudes de inferencia con una clave de API del recurso Foundry. Las claves de API son rápidas de configurar, pero conceden acceso completo al recurso, son difíciles de definir el ámbito de usuarios o acciones específicos y requieren rotación manual para mantenerse seguro. En el caso de las cargas de trabajo de producción, use la autenticación sin claves con Microsoft Entra ID en su lugar.
En el ejemplo siguiente, deepseek-v3-0324 es el nombre de una implementación de modelo en el recurso Microsoft Foundry. Reemplácela por su propio nombre de implementación y almacene la clave de API en la AZURE_INFERENCE_CREDENTIAL variable de entorno.
Instale el openai paquete mediante pip:
pip install openai --upgrade
Cree un cliente que apunte al punto de conexión v1 de Azure OpenAI y, a continuación, genere una respuesta. La ruta /openai/v1/ usa versionado implícito, por lo que no es necesario pasar un api-version. Pase el nombre de implementación en el model campo:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://<resource>.openai.azure.com/openai/v1/",
api_key=os.environ["AZURE_INFERENCE_CREDENTIAL"],
)
response = client.responses.create(
model="deepseek-v3-0324", # Replace with your model deployment name.
input="Explain the Riemann hypothesis in one paragraph.",
)
print(response.output_text)
Instale el openai paquete mediante npm:
npm install openai
Cree un cliente que apunte al punto de conexión de openAI v1 de Azure y, a continuación, genere una respuesta:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://<resource>.openai.azure.com/openai/v1/",
apiKey: process.env.AZURE_INFERENCE_CREDENTIAL,
});
const response = await client.responses.create({
model: "deepseek-v3-0324", // Replace with your model deployment name.
input: "Explain the Riemann hypothesis in one paragraph.",
});
console.log(response.output_text);
Instale la biblioteca de OpenAI:
dotnet add package OpenAI
Cree un cliente que apunte al punto de conexión de openAI v1 de Azure y, a continuación, genere una respuesta:
using System.ClientModel;
using OpenAI;
using OpenAI.Responses;
OpenAIClient client = new(
new ApiKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL")),
new OpenAIClientOptions
{
Endpoint = new Uri("https://<resource>.openai.azure.com/openai/v1/")
});
OpenAIResponseClient responseClient = client.GetResponsesClient("deepseek-v3-0324");
OpenAIResponse response = responseClient.CreateResponse(
"Explain the Riemann hypothesis in one paragraph.");
Console.WriteLine(response.GetOutputText());
Agregue openAI Java SDK al proyecto. Compruebe el repositorio de Java openAI para obtener la versión más reciente.
Cree un cliente que apunte al punto de conexión de openAI v1 de Azure y, a continuación, genere una respuesta:
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://<resource>.openai.azure.com/openai/v1/")
.apiKey(System.getenv("AZURE_INFERENCE_CREDENTIAL"))
.build();
Response response = client.responses().create(
ResponseCreateParams.builder()
.model("deepseek-v3-0324") // Replace with your model deployment name.
.input("Explain the Riemann hypothesis in one paragraph.")
.build());
// The Responses API has no single output-text accessor; concatenate the output items.
response.output().stream()
.flatMap(item -> item.message().stream())
.flatMap(message -> message.content().stream())
.flatMap(content -> content.outputText().stream())
.forEach(outputText -> System.out.println(outputText.text()));
Envíe solicitudes directamente a la ruta v1. La ruta /openai/v1/ usa versionado implícito, por lo que no debes incluir api-version como parámetro de consulta. Pase la clave en el Authorization encabezado como token de portador:
curl -X POST https://<resource>.openai.azure.com/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_INFERENCE_CREDENTIAL" \
-d '{
"model": "deepseek-v3-0324",
"input": "Explain the Riemann hypothesis in one paragraph."
}'
Para obtener más información sobre cómo usar el punto de conexión de Azure OpenAI, consulte la compatibilidad de idiomas del SDK de Azure OpenAI.
Uso de la autenticación sin claves
Los modelos foundry implementados admiten la autorización sin claves con Microsoft Entra ID. La autorización sin claves mejora la seguridad, simplifica la experiencia del usuario, reduce la complejidad operativa y proporciona una sólida compatibilidad con el cumplimiento. Use la autorización sin claves si su organización usa soluciones de administración de identidades seguras y escalables.
Para usar la autenticación sin claves, configure el recurso y conceda acceso a los usuarios para realizar la inferencia. Después de configurar el recurso y conceder acceso, autentíquese de la siguiente manera:
Instale el SDK de OpenAI mediante un administrador de paquetes como pip:
pip install openai
Para la autenticación de Microsoft Entra ID, instale también:
pip install azure-identity
Use el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente y realizar una llamada de prueba a la API de respuestas mediante Microsoft Entra ID y la implementación del modelo.
Reemplace <resource> con el nombre de su recurso Foundry. Encuéntrelo en el portal de Azure o bien ejecutando az cognitiveservices account list. Reemplace deepseek-v3-0324 con su nombre de implementación real.
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(),
"https://ai.azure.com/.default"
)
client = OpenAI(
base_url="https://<resource>.openai.azure.com/openai/v1/",
api_key=token_provider,
)
response = client.responses.create(
model="deepseek-v3-0324", # Replace with your model deployment name.
input="What is Azure AI?",
)
print(response.output_text)
Salida esperada
Azure AI is a comprehensive suite of artificial intelligence services and tools from Microsoft that enables developers to build intelligent applications. It includes services for natural language processing, computer vision, speech recognition, and machine learning capabilities.
Referencia: OpenAI Python SDK y clase DefaultAzureCredential.
Instale el SDK de OpenAI:
dotnet add package OpenAI
Para la autenticación Microsoft Entra ID, instale también el paquete Azure.Identity:
dotnet add package Azure.Identity
A continuación, use el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente y realizar una llamada de prueba a la API de respuestas mediante Microsoft Entra ID y la implementación del modelo.
Reemplace <resource> por el nombre del recurso Foundry (busque en el portal de Azure). Reemplace deepseek-v3-0324 con su nombre de implementación real.
using Azure.Identity;
using OpenAI;
using OpenAI.Responses;
using System.ClientModel.Primitives;
#pragma warning disable OPENAI001
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://ai.azure.com/.default"
);
OpenAIResponseClient client = new(
model: "deepseek-v3-0324", // Replace with your model deployment name.
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://<resource>.openai.azure.com/openai/v1/")
}
);
OpenAIResponse response = client.CreateResponse("What is Azure AI?");
Console.WriteLine(response.GetOutputText());
Salida esperada:
Azure AI is a comprehensive suite of artificial intelligence services and tools from Microsoft that enables developers to build intelligent applications. It includes services for natural language processing, computer vision, speech recognition, and machine learning capabilities.
Referencia: OpenAI .NET SDK y la clase DefaultAzureCredential.
Instale el SDK de OpenAI con npm:
npm install openai
Para la autenticación de Microsoft Entra ID, instale también:
npm install @azure/identity
A continuación, use el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente y realizar una llamada de prueba a la API de respuestas mediante Microsoft Entra ID y la implementación del modelo.
Reemplace <resource> por el nombre del recurso Foundry (busque en el portal de Azure o ejecute az cognitiveservices account list). Reemplace deepseek-v3-0324 con su nombre de implementación real.
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import { OpenAI } from "openai";
const tokenProvider = getBearerTokenProvider(
new DefaultAzureCredential(),
'https://ai.azure.com/.default'
);
const client = new OpenAI({
baseURL: "https://<resource>.openai.azure.com/openai/v1/",
apiKey: tokenProvider
});
const response = await client.responses.create({
model: "deepseek-v3-0324", // Replace with your model deployment name.
input: "What is Azure AI?"
});
console.log(response.output_text);
Salida esperada:
Azure AI is a comprehensive suite of artificial intelligence services and tools from Microsoft that enables developers to build intelligent applications. It includes services for natural language processing, computer vision, speech recognition, and machine learning capabilities.
Referencia: OpenAI Node.js SDK y la clase DefaultAzureCredential.
Agregue el SDK de OpenAI al proyecto. Consulte el repositorio OpenAI Java GitHub para obtener las instrucciones de instalación y versión más recientes.
Para la autenticación de Microsoft Entra ID, agregue también:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.0</version>
</dependency>
A continuación, use el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente y realizar una llamada de prueba a la API de respuestas mediante Microsoft Entra ID y la implementación del modelo.
Reemplace <resource> por el nombre del recurso Foundry (busque en el portal de Azure). Reemplace deepseek-v3-0324 con su nombre de implementación real.
import com.azure.identity.AuthenticationUtil;
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.credential.BearerTokenCredential;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;
DefaultAzureCredential tokenCredential = new DefaultAzureCredentialBuilder().build();
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://<resource>.openai.azure.com/openai/v1/")
.credential(BearerTokenCredential.create(
AuthenticationUtil.getBearerTokenSupplier(
tokenCredential,
"https://ai.azure.com/.default"
)
))
.build();
ResponseCreateParams params = ResponseCreateParams.builder()
.model("deepseek-v3-0324") // Replace with your model deployment name.
.input("What is Azure AI?")
.build();
Response response = client.responses().create(params);
// The Responses API has no single output-text accessor; concatenate the output items.
response.output().stream()
.flatMap(item -> item.message().stream())
.flatMap(message -> message.content().stream())
.flatMap(content -> content.outputText().stream())
.forEach(outputText -> System.out.println(outputText.text()));
Salida esperada:
Azure AI is a comprehensive suite of artificial intelligence services and tools from Microsoft that enables developers to build intelligent applications. It includes services for natural language processing, computer vision, speech recognition, and machine learning capabilities.
Referencia: OpenAI Java SDK y DefaultAzureCredential class.
Explore el diseño de la API en la sección de referencia para ver qué parámetros están disponibles. Inserte el token de autenticación (portador) en el Authorization encabezado .
Por ejemplo, en la sección Referencia de la API de respuestas se detalla cómo usar la /responses ruta para generar predicciones. La /openai/v1/ ruta se incluye en la raíz de la URL:
Solicitud
Reemplace <resource> por el nombre del recurso Foundry (busque en el portal de Azure o ejecute az cognitiveservices account list). Reemplace deepseek-v3-0324 con su nombre de implementación real.
La dirección URL base acepta formatos https://<resource>.openai.azure.com/openai/v1/ y https://<resource>.services.ai.azure.com/openai/v1/ .
curl -X POST https://<resource>.openai.azure.com/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{
"model": "deepseek-v3-0324",
"input": "Explain what the bitter lesson is?"
}'
Respuesta
Si la autenticación se realiza correctamente, recibirá una 200 OK respuesta con los resultados de la respuesta en el cuerpo de la respuesta:
{
"id": "resp_...",
"object": "response",
"created_at": 1738368234,
"model": "deepseek-v3-0324",
"status": "completed",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "The bitter lesson refers to a key insight in AI research that emphasizes the importance of general-purpose learning methods that leverage computation, rather than human-designed domain-specific approaches. It suggests that methods which scale with increased computation tend to be more effective in the long run."
}
]
}
],
"usage": {
"input_tokens": 28,
"output_tokens": 52,
"total_tokens": 80
}
}
Los tokens deben emitirse con el ámbito https://ai.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 el CLI de Azure. En una consola, inicie sesión y solicite un token mediante la ejecución de los siguientes comandos CLI de Azure:
az login
az account get-access-token --resource https://ai.azure.com --query "accessToken" --output tsv
Este comando genera un token de acceso que puede almacenar en la variable de $AZURE_OPENAI_AUTH_TOKEN entorno.
Referencia: API de respuestas
Contenido relacionado