Visualización actual:
Versión - Cambio a la versión del nuevo portal de Foundry
Microsoft Foundry Models permite acceder a los modelos más eficaces de los proveedores de modelos líderes 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 cambiar ningún 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.
Importante
Azure SDK beta de inferencia de IA está en desuso y se retirará el 26 de agosto de 2026. Cambie a la API openAI/v1 disponible con carácter general con un SDK estable de OpenAI. Siga la guía de migración para cambiar a OpenAI/v1 mediante el SDK para su lenguaje de programación preferido.
Implementaciones
Foundry usa implementaciones para poner los modelos a disposición.
Las implementaciones asignan un nombre a un modelo y establecen configuraciones específicas. Puede acceder a un modelo en sus solicitudes mediante su nombre de implementación.
Una implementación incluye:
- 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.
Puntos de conexión
Los servicios foundry proporcionan varios puntos de conexión en función del tipo de trabajo que desee realizar:
Punto de conexión de inferencia de IA de Azure
Nota
Los ejemplos del SDK de inferencia de inteligencia artificial de Azure de esta sección siguen siendo totalmente funcionales. Sin embargo, para los nuevos proyectos, se recomienda usar el punto de conexión de OpenAI Azure con el SDK de OpenAI. Para obtener instrucciones sobre la migración, consulte Migrate de Azure SDK de inferencia de IA al SDK de OpenAI.
El punto de conexión de inferencia de Azure IA, normalmente con el formato https://<resource-name>.services.ai.azure.com/models, le permite usar un único punto de conexión con la misma autenticación y esquema para generar inferencia para los modelos desplegados en el recurso. Todos los modelos foundry admiten esta funcionalidad. Este punto de conexión sigue la API Azure AI Model Inference API, que admite las siguientes modalidades:
- Incrustaciones de texto
- Incrustaciones de imágenes
- Completaciones del chat
Enrutamiento
El punto de conexión de inferencia enruta las solicitudes a una implementación específica mediante la coincidencia del name parámetro de la solicitud con el nombre de la implementación. Esta configuración significa que las implementaciones funcionan como alias para un modelo en determinadas configuraciones. Esta flexibilidad le permite implementar un modelo varias veces en el servicio, pero con configuraciones diferentes si es necesario.
Por ejemplo, si crea una implementación denominada Mistral-large, puede invocar esa implementación 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:
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 nuestra samples y lea la documentación de referencia de API para empezar.
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 nuestra samples y lea la documentación de referencia de API para empezar.
Instale la biblioteca de inferencia de IA de Azure 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 nuestra samples y lea la documentación de referencia de API para empezar.
Use la sección de referencia para explorar el diseño de la API y qué parámetros están disponibles. Por ejemplo, la sección de referencia para finalizaciones de chat detalla cómo usar la ruta /chat/completions para generar predicciones basadas en instrucciones con formato de chat. Observe 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 del modelo, 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 modelos. Para obtener más información, consulte Incorporación y configuración de implementaciones de modelos.
Azure punto de conexión de OpenAI para inferencia
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 acceder a modelos que no son de OpenAI a través de esta ruta.
Los puntos de conexión de Azure OpenAI, normalmente con el formato https://<resource-name>.openai.azure.com, operan a nivel de implementación y cada implementación tiene su propia URL asociada. Sin embargo, puede utilizar el mismo mecanismo de autenticación para hacer uso de las implementaciones. Para obtener más información, consulte la página de referencia de Azure OpenAI API.
Cada implementación tiene una dirección URL formada por la concatenación del Azure OpenAI dirección URL base y la ruta /deployments/<model-deployment-name>.
Instale el paquete openai mediante el administrador de paquetes, como pip:
pip install openai --upgrade
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 openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint = "https://<resource>.services.ai.azure.com"
api_key=os.getenv("AZURE_INFERENCE_CREDENTIAL"),
api_version="2024-10-21",
)
Instale el paquete openai mediante npm:
npm install openai
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 { AzureKeyCredential } from "@azure/openai";
const endpoint = "https://<resource>.services.ai.azure.com";
const apiKey = new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL);
const apiVersion = "2024-10-21"
const client = new AzureOpenAI({
endpoint,
apiKey,
apiVersion,
"deepseek-v3-0324"
});
Aquí, deepseek-v3-0324 es el nombre de una implementación de modelo en el recurso Microsoft Foundry.
Instale la biblioteca de OpenAI con el siguiente comando:
dotnet add package Azure.AI.OpenAI --prerelease
Puede usar el paquete para consumir el modelo. En el ejemplo siguiente se muestra cómo crear un cliente para consumir finalizaciones de chat:
AzureOpenAIClient client = new(
new Uri("https://<resource>.services.ai.azure.com"),
new ApiKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Agregue el paquete al proyecto:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-openai</artifactId>
<version>1.0.0-beta.16</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:
OpenAIClient client = new OpenAIClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("https://<resource>.services.ai.azure.com")
.buildClient();
Use la sección de referencia para explorar el diseño de la API y qué parámetros están disponibles. Por ejemplo, la sección de referencia para finalizaciones de chat detalla cómo usar la ruta /chat/completions para generar predicciones basadas en instrucciones con formato de chat:
Solicitud
POST https://<resource>.services.ai.azure.com/openai/deployments/deepseek-v3-0324/chat/completions?api-version=2024-10-21
api-key: <api-key>
Content-Type: application/json
Aquí, deepseek-v3-0324 es el nombre de una implementación de modelo en el recurso Foundry.
response = client.chat.completions.create(
model="deepseek-v3-0324", # Replace with your model deployment name.
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain Riemann's conjecture in 1 paragraph"}
]
)
print(response.model_dump_json(indent=2)
var messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "Explain Riemann's conjecture in 1 paragraph" },
];
const response = await client.chat.completions.create({ messages, model: "deepseek-v3-0324" });
console.log(response.choices[0].message.content)
ChatCompletion response = chatClient.CompleteChat(
[
new SystemChatMessage("You are a helpful assistant."),
new UserChatMessage("Explain Riemann's conjecture in 1 paragraph"),
]);
Console.WriteLine($"{response.Role}: {response.Content[0].Text}");
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.getChatCompletions("deepseek-v3-0324",
new ChatCompletionsOptions(chatMessages));
System.out.printf("Model ID=%s is created at %s.%n", chatCompletions.getId(), chatCompletions.getCreatedAt());
for (ChatChoice choice : chatCompletions.getChoices()) {
ChatResponseMessage message = choice.getMessage();
System.out.printf("Index: %d, Chat Role: %s.%n", choice.getIndex(), message.getRole());
System.out.println("Message:");
System.out.println(message.getContent());
}
Aquí, deepseek-v3-0324 es el nombre de una implementación de modelo en el recurso Microsoft Foundry.
Solicitud
POST https://<resource>.services.ai.azure.com/openai/deployments/deepseek-v3-0324/chat/completions?api-version=2024-10-21
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"
}
]
}
Aquí, deepseek-v3-0324 es el nombre de una implementación de modelo en el recurso Foundry.
Para obtener más información sobre cómo usar el punto de conexión de OpenAI Azure, consulte Azure OpenAI en la documentación de Foundry Models.
Autenticación sin claves
Los modelos implementados en Foundry Models in Foundry Tools admiten la autorización sin claves mediante 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 para el desarrollo moderno. Hace que la autorización sin claves sea una opción segura para las organizaciones que adoptan 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
Utiliza el paquete para consumir el modelo. En el siguiente ejemplo se muestra cómo crear un cliente para acceder a finalizaciones de chat con Microsoft Entra ID y realizar una llamada de prueba al punto final de las finalizaciones de chat con 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.1 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,
)
completion = client.chat.completions.create(
model="DeepSeek-V3.1", # Required: your deployment name
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is Azure AI?"}
]
)
print(completion.choices[0].message.content)
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
Importe los siguientes espacios de nombres:
using Azure.Identity;
using OpenAI;
using OpenAI.Chat;
using System.ClientModel.Primitives;
A continuación, use el paquete para consumir el modelo. En el siguiente ejemplo se muestra cómo crear un cliente para utilizar las finalizaciones de chat con Microsoft Entra ID y, luego, realizar una prueba de llamada al endpoint de finalizaciones de chat con el despliegue del modelo.
Reemplace <resource> por el nombre del recurso Foundry (busque en el portal de Azure). Reemplace gpt-4o-mini con su nombre de implementación real.
#pragma warning disable OPENAI001
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://ai.azure.com/.default"
);
ChatClient client = new(
model: "gpt-4o-mini", // Your deployment name
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions() {
Endpoint = new Uri("https://<resource>.openai.azure.com/openai/v1/")
}
);
ChatCompletion completion = client.CompleteChat(
new SystemChatMessage("You are a helpful assistant."),
new UserChatMessage("What is Azure AI?")
);
Console.WriteLine(completion.Content[0].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 .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 siguiente ejemplo se muestra cómo crear un cliente para utilizar las finalizaciones de chat con Microsoft Entra ID y, luego, realizar una prueba de llamada al endpoint de finalizaciones de chat con el despliegue 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.1 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 completion = await client.chat.completions.create({
model: "DeepSeek-V3.1", // Required: your deployment name
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "What is Azure AI?" }
]
});
console.log(completion.choices[0].message.content);
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 siguiente ejemplo se muestra cómo crear un cliente para utilizar las finalizaciones de chat con Microsoft Entra ID y, luego, realizar una prueba de llamada al endpoint de finalizaciones de chat con el despliegue del modelo.
Reemplace <resource> por el nombre del recurso Foundry (busque en el portal de Azure). Reemplace DeepSeek-V3.1 con su nombre de implementación real.
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.models.chat.completions.*;
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();
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.addSystemMessage("You are a helpful assistant.")
.addUserMessage("What is Azure AI?")
.model("DeepSeek-V3.1") // Required: your deployment name
.build();
ChatCompletion completion = client.chat().completions().create(params);
System.out.println(completion.choices().get(0).message().content());
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. Indique el token de autenticación en el encabezado Authorization. Por ejemplo, en la sección Referencia de finalización de chat se detalla cómo usar la /chat/completions ruta para generar predicciones basadas en instrucciones con formato de chat. La ruta /models está incluida en la raíz del URL.
Solicitud
Reemplace <resource> por el nombre del recurso Foundry (busque en el portal de Azure o ejecute az cognitiveservices account list). Reemplace MAI-DS-R1 con su nombre de implementación real.
La base_url aceptará ambos 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/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{
"model": "MAI-DS-R1",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Explain what the bitter lesson is?"
}
]
}'
Respuesta
Si la autenticación se realiza correctamente, recibirá una 200 OK respuesta con los resultados de finalización del chat en el cuerpo de la respuesta:
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1738368234,
"model": "MAI-DS-R1",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "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."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_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, ejecute el siguiente comando CLI de Azure:
az account get-access-token --resource https://cognitiveservices.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 finalizaciones de chat
Limitaciones
- No puede usar Azure OpenAI Batch con el endpoint de los modelos de Foundry. Debe usar la URL de implementación dedicada, como se explica en la documentación de soporte de la API de Lote en Azure OpenAI.
- No se admite la API en tiempo real en el punto de inferencia. Use la dirección URL de implementación dedicada.
Contenido relacionado