Integrar ChatGPT con Azure AI Foundry (ahora Microsoft Foundry)

Microsoft Foundry (antes Azure AI Foundry) permite desplegar modelos y acceder a ellos mediante un endpoint de proyecto o, cuando solo se necesitan modelos de OpenAI y herramientas estándar, mediante un endpoint de Azure OpenAI. No incrusta la aplicación ChatGPT ni incluye una suscripción de ChatGPT: una aplicación propia llama desde su backend a un modelo desplegado en Azure y se factura conforme a las condiciones del servicio.

Esta guía explica una integración actual con Responses API, autenticación segura y un modelo disponible en el catálogo, la región y la suscripción utilizados. Fue revisada el 15 de agosto de 2026. Confirma en el portal la disponibilidad, las cuotas, los precios y las funciones antes de desplegar.

Cambio de nombre y migración: Microsoft usa ahora el nombre Microsoft Foundry. Su guía de migración anuncia la retirada de Assistants API (classic) el 26 de agosto de 2026 y recomienda migrar a Foundry Agent Service o Responses API según el caso. No inicies una integración nueva sobre una superficie marcada como clásica o en desuso.

Idea clave: en Azure, el valor enviado como model suele ser el nombre de tu despliegue. No presupongas que coincide con el identificador público del modelo ni que GPT‑5.6 está habilitado en todas las regiones.

Qué necesitas antes de empezar

  • Una suscripción de Azure y permisos para crear o utilizar un proyecto de Foundry.
  • Un modelo desplegado en una región compatible. Si GPT‑5.6 no aparece, elige otro modelo disponible y validado para tu caso.
  • El endpoint correcto: un endpoint de proyecto de Foundry para sus herramientas específicas, o un endpoint de Azure OpenAI si solo necesitas modelos de OpenAI y máxima compatibilidad con sus clientes.
  • Autenticación mediante Microsoft Entra ID o una clave almacenada fuera del código.
  • Un backend propio. Nunca coloques una clave de Azure u OpenAI en JavaScript enviado al navegador.

Elegir entre el endpoint de proyecto y Azure OpenAI

OpciónCuándo encajaRuta de Responses API
Proyecto de FoundryNecesitas herramientas y recursos administrados por el proyecto de Foundry.{project_endpoint}/openai/v1/responses
Azure OpenAISolo necesitas modelos de OpenAI y una superficie compatible con el SDK de OpenAI.{resource_endpoint}/openai/v1/responses

Microsoft distingue ambos caminos. El endpoint de proyecto ofrece una superficie vinculada al proyecto y sus herramientas. El endpoint de Azure OpenAI resulta más directo cuando el proyecto solo genera respuestas con un modelo desplegado. No mezcles URLs, credenciales ni nombres de despliegue de recursos distintos.

Paso 1: desplegar y registrar los valores correctos

En el portal, crea o abre el proyecto, selecciona un modelo admitido y crea el despliegue. Registra sin publicarlos el endpoint, el nombre del despliegue y el método de autenticación. Para el endpoint de proyecto con Microsoft Entra ID utiliza:

FOUNDRY_PROJECT_ENDPOINT=https://TU-RECURSO.services.ai.azure.com/api/projects/TU-PROYECTO
FOUNDRY_MODEL=nombre-de-tu-despliegue

Si eliges el endpoint de Azure OpenAI y una clave solo para desarrollo local, separa cada valor y guárdalo fuera del código:

AZURE_OPENAI_ENDPOINT=https://TU-RECURSO.openai.azure.com
AZURE_OPENAI_API_KEY=reemplaza_este_valor
AZURE_OPENAI_DEPLOYMENT=nombre-de-tu-despliegue

No incluyas archivos de variables en Git. En producción, prioriza Microsoft Entra ID o una identidad administrada y concede el rol mínimo necesario. Nunca envíes claves, tokens, identificadores del tenant ni cadenas de conexión al navegador o a una captura de pantalla.

Paso 2: elegir el SDK y llamar a Responses API

No existe un único SDK correcto para todos los escenarios. Usa Foundry SDK 2.x para trabajar con el endpoint y los recursos del proyecto; Agent Framework encaja cuando construyes agentes alojados o flujos de agentes; y el SDK de OpenAI con /openai/v1/ es una alternativa directa cuando solo necesitas modelos de OpenAI y sus herramientas estándar.

Opción A: endpoint de proyecto con Foundry SDK 2.x

Instala azure-ai-projects>=2.0.0, azure-identity y openai. Inicia sesión en Azure para desarrollo local o utiliza una identidad administrada en producción:

import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential

project = AIProjectClient(
    endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
    credential=DefaultAzureCredential(),
)

client = project.get_openai_client()
response = client.responses.create(
    model=os.environ["FOUNDRY_MODEL"],
    instructions="Responde en español neutral y distingue hechos de inferencias.",
    input="Resume en tres puntos los riesgos de exponer una clave API.",
)

print(response.output_text)

Opción B: endpoint de Azure OpenAI con el SDK de OpenAI

Esta variante con clave es adecuada para una prueba local controlada. Para producción, sustituye la credencial estática por Microsoft Entra ID cuando la arquitectura lo permita:

import os
from openai import OpenAI

endpoint = os.environ["AZURE_OPENAI_ENDPOINT"].rstrip("/")
client = OpenAI(
    api_key=os.environ["AZURE_OPENAI_API_KEY"],
    base_url=f"{endpoint}/openai/v1/",
)

response = client.responses.create(
    model=os.environ["AZURE_OPENAI_DEPLOYMENT"],
    instructions="Responde en español neutral y distingue hechos de inferencias.",
    input="Resume en tres puntos los riesgos de exponer una clave API.",
)

print(response.output_text)

No todos los despliegues admiten Responses API. Si Azure devuelve 400 Model not supported, comprueba la ficha, la región y la superficie compatible con el despliegue. Usa Chat Completions únicamente cuando Microsoft lo documente para ese modelo. Conserva el identificador de solicitud para investigar fallos sin registrar el prompt completo.

Qué modelo de GPT‑5.6 elegir

En la API directa de OpenAI, gpt-5.6 es el alias de GPT‑5.6 Sol; Terra equilibra capacidad y coste, mientras que Luna se orienta a cargas de gran volumen sensibles al coste. En Azure debes comprobar qué variantes aparecen realmente y desplegar la que corresponda. El código seguirá enviando el nombre asignado al despliegue.

No selecciones un modelo solo por su nombre. Crea un conjunto de pruebas representativo y compara exactitud, formato, latencia, consumo y coste. Para tareas rutinarias, una variante más eficiente puede superar a una configuración más potente en coste total. Consulta nuestra guía de GPT‑5.6 y confirma los identificadores en el catálogo oficial.

Estado de conversación y datos

Responses API admite flujos de varios turnos, pero la memoria no debe aparecer por accidente. Decide si conservarás contexto en tu base de datos, si utilizarás identificadores de respuestas anteriores o si cada petición será independiente. Documenta qué datos salen de tu sistema, por qué se procesan y durante cuánto tiempo los almacenas.

No envíes secretos, contraseñas ni campos completos de clientes cuando una versión minimizada o seudonimizada sea suficiente. Revisa las condiciones de tratamiento de datos de Azure y OpenAI aplicables a tu configuración. El parámetro store: false, cuando sea compatible con el endpoint utilizado, no sustituye esa revisión ni significa por sí solo ausencia total de registros operativos.

Antes de desplegar, repasa los fundamentos de Responses API y la guía para proteger credenciales e identidades en producción.

Seguridad y operación en producción

  • Identidad: usa Entra ID e identidades administradas cuando sea viable; rota y revoca claves si utilizas credenciales estáticas.
  • Red: aplica endpoints privados, firewall y restricciones de salida si el nivel de riesgo lo exige.
  • Entrada: limita tamaño, tipo de archivo, instrucciones y frecuencia por usuario.
  • Salida: valida JSON, enlaces y acciones antes de utilizarlos; una respuesta del modelo no es una orden confiable por defecto.
  • Observabilidad: mide estado HTTP, latencia, tokens y errores sin volcar datos personales a los logs.
  • Resiliencia: añade timeouts, reintentos limitados con espera progresiva e idempotencia donde una repetición pueda duplicar efectos.

Prueba mínima antes de publicar

  1. Ejecuta casos normales, entradas vacías, texto excesivo e instrucciones maliciosas.
  2. Comprueba que el frontend nunca recibe la clave ni mensajes internos de error.
  3. Simula respuestas 429 y 5xx, y verifica que no se produzcan bucles de reintentos.
  4. Compara al menos dos configuraciones de modelo con los mismos ejemplos.
  5. Revisa permisos, retención, presupuesto y alertas antes de habilitar usuarios reales.

Errores frecuentes y cómo diagnosticarlos

Un error 400 suele señalar un cuerpo o parámetro no válido, o que el despliegue no admite Responses API. Un 401 indica normalmente una credencial ausente, caducada o enviada con un método incorrecto. Un 403 apunta a permisos, roles o políticas del recurso. Un 404 obliga a comprobar el recurso, el endpoint, la ruta y la existencia del despliegue. Un 429 indica un límite de tasa o cuota. Ante un 5xx, registra el identificador de solicitud y aplica reintentos con espera progresiva solo a operaciones seguras de repetir.

Para investigar, registra hora, entorno, estado HTTP, duración, nombre lógico de la operación e identificador de solicitud. No guardes la clave ni el contenido completo de prompts y respuestas por defecto. Reproduce el problema con una entrada mínima y confirma en este orden: endpoint, autenticación, permisos, nombre de despliegue, disponibilidad regional y cuota.

Si migras desde Chat Completions, no te limites a cambiar la URL. Revisa la forma de extraer la salida, la gestión del estado, las herramientas y los parámetros admitidos. Mantén pruebas de regresión para detectar cambios de tono, longitud o formato antes de dirigir todo el tráfico a Responses API.

Conclusión

Una integración profesional con Microsoft Foundry (antes Azure AI Foundry) separa el navegador del modelo, identifica correctamente el endpoint y el despliegue, protege la autenticación y mide el comportamiento con datos reales. Responses API es la superficie recomendada para nuevos flujos compatibles, pero Azure controla qué modelos y capacidades están disponibles en cada recurso. Diseña alrededor de esa diferencia y evita promesas fijas de precio, región o acceso.

Fuentes oficiales

Revisión editorial: fuentes oficiales comprobadas el 15 de agosto de 2026. No se añadió una captura del portal porque esta revisión no utilizó un proyecto Azure del sitio; una imagen inventada o copiada no demostraría que el código fue ejecutado.