Creación y administración de modelos externos en SQL

Completado

Los modelos externos proporcionan una manera de hacer referencia a modelos de inteligencia artificial desde SQL Server y Azure SQL mediante Transact-SQL. Un modelo externo representa una conexión a un punto de conexión de modelo y define cómo las funciones de IA integradas de SQL invocan ese modelo.

Al crear modelos externos, las funcionalidades de inteligencia artificial están disponibles directamente dentro del motor de base de datos sin insertar lógica específica del modelo en el código de aplicación.

¿Qué es un modelo externo?

Un modelo externo es un objeto de base de datos que almacena metadatos sobre un punto de conexión del modelo de IA. Estos metadatos incluyen información como la dirección URL del punto de conexión, los detalles de autenticación y la configuración específica del modelo.

Los modelos externos no son modelos que se ejecutan dentro de SQL Server. En su lugar, actúan como referencia administrada que permite a SQL Server llamar a un servicio de inteligencia artificial externo al ejecutar funciones de IA.

Una vez creados, los modelos externos se pueden reutilizar en consultas y cargas de trabajo, lo que proporciona una manera coherente y administrada centralmente de acceder a las funcionalidades de inteligencia artificial desde SQL.

Creación de un modelo externo

Para crear un modelo externo, use la CREATE EXTERNAL MODEL instrucción . Esta instrucción define el nombre del modelo y lo asocia a un punto de conexión externo.

La creación del modelo externo no invoca el modelo ni genera la salida. Establece una definición reutilizable a la que las funciones de inteligencia artificial, como la generación de embeddings u otras operaciones asistidas por IA, pueden referirse posteriormente.

Dado que los modelos externos son objetos de base de datos, se pueden administrar mediante prácticas SQL estándar, incluidas las convenciones de nomenclatura, los permisos y la implementación a través de scripts.

Modificación de un modelo externo

Los modelos externos pueden cambiar con el tiempo a medida que se actualizan los puntos de conexión, las credenciales o las opciones de configuración. Para reflejar estos cambios, puede usar la ALTER EXTERNAL MODEL declaración.

La modificación de un modelo externo actualiza sus metadatos sin necesidad de volver a escribir consultas o funciones dependientes. Esta actualización le permite ajustar la configuración del modelo de forma centralizada, a la vez que mantiene intacta la lógica SQL existente.

La administración de cambios en el nivel de modelo externo ayuda a reducir el acoplamiento entre la lógica de la aplicación y la configuración del servicio de IA.

Uso de modelos externos con funciones de IA

SQL Server proporciona funciones de IA integradas que hacen referencia a un modelo externo para realizar operaciones relacionadas con la inteligencia artificial. Estas funciones controlan tareas como generar incrustaciones mediante una llamada al punto de conexión del modelo externo definido en la base de datos.

Las funciones de IA usan la definición del modelo externo para determinar qué punto de conexión llamar y cómo autenticar la solicitud. Esta separación permite que Transact-SQL código se centre en el procesamiento de datos en lugar de en los detalles de conexión o credenciales.

Antes de crear un modelo externo, necesita una credencial con ámbito de base de datos que almacene los detalles de autenticación para el punto de conexión de IA. Los puntos de conexión de Azure OpenAI admiten dos opciones de autenticación:

  • Identidad administrada (recomendada para Azure SQL Database): la identidad administrada de la base de datos se autentica directamente con Azure OpenAI. Concédale el rol de usuario de OpenAI de Cognitive Services en el recurso Azure OpenAI.

    CREATE DATABASE SCOPED CREDENTIAL [https://<resource-name>.cognitiveservices.azure.com/]
        WITH IDENTITY = 'Managed Identity',
        SECRET = '{"resourceid":"https://cognitiveservices.azure.com"}';
    
  • Clave de API: almacene la clave en encabezados HTTP. Este enfoque funciona tanto para Azure SQL Database como para SQL Server 2025.

    CREATE DATABASE SCOPED CREDENTIAL [https://<resource-name>.cognitiveservices.azure.com/]
        WITH IDENTITY = 'HTTPEndpointHeaders',
        SECRET = '{"api-key":"<your-api-key>"}';
    

Evite codificar las claves de API de forma rígida en el código T-SQL. Use identidades administradas siempre que sea posible para mejorar la seguridad y facilitar la rotación de claves.

Importante

Conceda el EXECUTE ANY EXTERNAL ENDPOINT permiso a los usuarios o roles que necesitan llamar a puntos de conexión externos: GRANT EXECUTE ANY EXTERNAL ENDPOINT TO [user_or_role];

Con la credencial establecida, puede crear el modelo externo. En el ejemplo siguiente se muestra un flujo de trabajo mínimo.

CREATE EXTERNAL MODEL my_external_model
WITH (
    LOCATION   = 'https://<resource-name>.cognitiveservices.azure.com/openai/deployments/<deployment-name>/embeddings?api-version=<api-version>',
    API_FORMAT = 'Azure OpenAI',
    MODEL_TYPE = EMBEDDINGS,
    MODEL      = 'text-embedding-3-small',
    CREDENTIAL = [https://<resource-name>.cognitiveservices.azure.com/],
    PARAMETERS = '{"dimensions":<n>}'
);

Una vez creado el modelo externo, las funciones de IA pueden hacer referencia a él en consultas.

SELECT
    id,
    AI_GENERATE_EMBEDDINGS(
        description USE MODEL my_external_model
    ) AS embedding
FROM dbo.documents;

En este ejemplo, el modelo externo define cómo se conecta SQL Server al servicio de IA. La AI_GENERATE_EMBEDDINGS función usa esa definición para generar incrustaciones para la description columna sin insertar detalles de punto de conexión o autenticación en la consulta.

Al combinar modelos externos con funciones de IA, SQL Server habilita flujos de trabajo de INTELIGENCIA ARTIFICIAL definidos, ejecutados y mantenidos completamente a través de Transact-SQL.

Administración de modelos externos como objetos de base de datos

Dado que los modelos externos son objetos con ámbito de base de datos, encajan de forma natural en las prácticas de administración de bases de datos existentes. Puede controlar el acceso a través de permisos, incluirlos en canalizaciones de implementación y administrar su ciclo de vida junto con otros objetos de esquema.

El tratamiento de modelos externos como objetos de base de datos de primera clase ayuda a garantizar la coherencia, el mantenimiento y el comportamiento predecible al integrar funcionalidades de inteligencia artificial en soluciones basadas en SQL.

Conclusiones clave

Los modelos externos son objetos de base de datos que almacenan metadatos sobre los puntos de conexión del modelo de IA, lo que permite a SQL Server llamar a servicios de IA externos sin insertar detalles de conexión en el código de la aplicación. Los crea con CREATE EXTERNAL MODEL, actualícelos con ALTER EXTERNAL MODELy haga referencia a ellos en funciones integradas de inteligencia artificial como AI_GENERATE_EMBEDDINGS. Dado que tienen ámbito de base de datos, puede administrar los permisos, el ciclo de vida y la implementación junto con los demás objetos de esquema.