Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Applies to:Azure SQL Database
SQL database in Fabric
En este artículo se proporciona información general sobre el uso de opciones de inteligencia artificial (IA), como OpenAI y vectores, para compilar aplicaciones inteligentes con la SQL Motor de base de datos en Azure SQL Database y Fabric SQL Database.
Vea este vídeo en la serie Azure SQL Database essentials para un breve resumen sobre la creación de una aplicación lista para IA.
Para obtener muestras y ejemplos, visite el repositorio de ejemplos de SQL AI.
Información general
Los grandes modelos de lenguaje (LLM) permiten a los desarrolladores crear aplicaciones con tecnología de IA con una experiencia de usuario familiar.
El uso de LLM en aplicaciones aporta un mayor valor y una experiencia de usuario mejorada cuando los modelos pueden acceder a los datos adecuados, en el momento adecuado, desde la base de datos de la aplicación. Este proceso se conoce como Generación aumentada de recuperación (RAG). Azure SQL Database y Fabric SQL Database tienen muchas características que admiten este nuevo patrón, lo que las convierte en bases de datos excelentes para crear aplicaciones inteligentes.
Los vínculos siguientes proporcionan código de ejemplo de varias opciones para compilar aplicaciones inteligentes:
| Opción de IA | Descripción |
|---|---|
| SQL MCP Server | Interfaz estable y regulada para la base de datos, que define un conjunto de herramientas y configuración. |
| Azure OpenAI | Genere incrustaciones para RAG e integre con cualquier modelo compatible con Azure OpenAI. |
| Vectores | Obtenga información sobre cómo almacenar vectores y usar funciones vectoriales en la base de datos. |
| Búsqueda de Azure AI | Usa tus bases de datos junto con Búsqueda de Azure AI para entrenar modelos de lenguaje grande (LLM) con tus datos. |
| Aplicaciones inteligentes | Aprenda a crear una solución de un extremo a otro mediante un patrón común que se pueda replicar en cualquier escenario. |
| Habilidades de Copilot en Azure SQL Database | Obtenga información sobre el conjunto de experiencias asistidas por inteligencia artificial diseñadas para simplificar el diseño, la operación, la optimización y el estado de las aplicaciones controladas por Azure SQL Database. |
| Habilidades de Copilot en la base de datos SQL de Fabric | Obtenga información sobre el conjunto de experiencias asistidas por IA diseñadas para simplificar el diseño, la operación, la optimización y el estado de las aplicaciones controladas por bases de datos sql de Fabric. |
SQL MCP Server en aplicaciones de IA
SQL MCP Server se encuentra directamente en la ruta de acceso de datos de los agentes de inteligencia artificial.
- A medida que los modelos generan solicitudes, el servidor proporciona una interfaz estable y controlada a la base de datos.
- En lugar de exponer el esquema sin procesar o confiar en SQL generado, enruta todo el acceso a través de un conjunto definido de herramientas respaldado por la configuración.
Este enfoque mantiene la predicción de las interacciones y garantiza que todas las operaciones se alinean con los permisos y la estructura que defina. Para obtener más información, consulte aka.ms/sql/mcp.
Al separar el razonamiento de la ejecución, los modelos se centran en la intención, mientras que SQL MCP Server controla cómo esa intención se convierte en consultas válidas. El área expuesta permanece restringida, ya que los agentes pueden detectar funcionalidades disponibles, comprender las entradas y salidas, y operar sin adivinar. Este diseño reduce los errores y elimina la necesidad de ingeniería compleja de avisos para compensar la ambigüedad del esquema.
Para los desarrolladores, este enfoque significa que la inteligencia artificial puede participar de forma segura en cargas de trabajo reales.
Ustedes pueden:
- Definir entidades una vez
- Aplicación de roles y restricciones
A continuación, la plataforma:
- Aplica entidades, roles y restricciones de forma coherente
- Crea una base confiable para las aplicaciones controladas por agentes a través de datos SQL.
La misma configuración que impulsa REST y GraphQL también rige MCP, por lo que no hay duplicación de reglas ni lógicas. Para obtener más información, consulte aka.ms/dab/docs.
Conceptos clave para implementar RAG con Azure OpenAI
En esta sección se incluyen conceptos clave que son fundamentales para implementar RAG con Azure OpenAI en Azure SQL Database o Fabric SQL Database.
Generación aumentada por recuperación (RAG)
RAG es una técnica que mejora la capacidad del LLM para generar respuestas relevantes e informativas mediante la recuperación de datos adicionales de orígenes externos. Por ejemplo, RAG puede consultar artículos o documentos que contengan conocimientos específicos del dominio relacionados con la pregunta o solicitud del usuario. A continuación, el LLM puede usar estos datos recuperados como referencia al generar su respuesta. Por ejemplo, un patrón RAG simple con Azure SQL Database podría ser:
- Insertar datos en una tabla.
- Vincule Azure SQL Database a Búsqueda de Azure AI.
- Cree un modelo Azure OpenAI GPT-4 y conéctelo a Búsqueda de Azure AI.
- Haz preguntas y chatea sobre tus datos mediante el modelo Azure OpenAI entrenado desde tu aplicación y desde Azure SQL Database.
El patrón RAG, junto con la ingeniería de avisos, mejora la calidad de la respuesta al ofrecer información más contextual al modelo. RAG permite al modelo aplicar una knowledge base más amplia al incorporar orígenes externos relevantes en el proceso de generación, lo que da lugar a respuestas más completas e informadas. Para obtener más información sobre la conexión a tierra de los LLM, consulte Grounding LLMs - Microsoft Community Hub.
Indicaciones e ingeniería de indicaciones
Un mensaje es texto o información específicos que actúa como una instrucción para un modelo de lenguaje grande (LLM) o como datos contextuales en los que el LLM puede basarse. Una solicitud puede adoptar varias formas, como una pregunta, una instrucción o incluso un fragmento de código.
Los mensajes de ejemplo que puede usar para generar una respuesta a partir de un LLM incluyen:
- Instrucciones: proporcionan indicaciones al LLM
- Contenido principal: proporciona información al LLM para su procesamiento
- Ejemplos: condicionan el modelo para una tarea o proceso determinados
- Direcciones: dirigen la salida del LLM a la dirección correcta
- Contenido auxiliar: representa la información complementaria que puede usar el LLM para generar la salida
El proceso de crear indicaciones efectivas se denomina ingeniería de indicaciones. Para obtener más información sobre los prompts y las mejores prácticas para la ingeniería de prompts, consulte Azure OpenAI Service.
Tokens
Los tokens son pequeños fragmentos de texto que se generan al dividir el texto de entrada en segmentos más pequeños. Estos segmentos pueden ser palabras o grupos de caracteres, que varían en longitud de un solo carácter a una palabra completa. Por ejemplo, la palabra hamburger se divide en tokens como ham, bury ger mientras que una palabra corta y común como pear se considera un único token.
En Azure OpenAI, la API tokeniza el texto de entrada. El número de tokens que se procesan en cada solicitud API depende de factores como la longitud de los parámetros de entrada, salida y solicitud. La cantidad de tokens que se procesan también afecta al tiempo de respuesta y al rendimiento de los modelos. Cada modelo tiene límites en el número de tokens que puede tomar en una sola solicitud y respuesta de Azure OpenAI. Para más información, consulte Azure OpenAI Service cuotas y límites.
Vectores
Los vectores son matrices ordenadas de números (normalmente floats) que pueden representar información sobre algunos datos. Por ejemplo, una imagen se puede representar como un vector de valores de píxeles o una cadena de texto se puede representar como un vector de valores ASCII. El proceso para convertir los datos en un vector se denomina vectorización. Para obtener más información, vea Ejemplos de vectores.
Trabajar con datos vectoriales es más fácil con la introducción del tipo de datos vectorial y las funciones vectoriales.
Inserciones
Las incrustaciones son vectores que representan características importantes de los datos. Las incrustaciones a menudo se aprenden mediante un modelo de aprendizaje profundo y los modelos de aprendizaje automático e inteligencia artificial los usan como características. Las incrustaciones también pueden capturar la similitud semántica entre conceptos similares. Por ejemplo, al generar una representación embebida para las palabras person y human, puede esperar que sus vectores embebidos sean similares en valor, ya que las palabras también son semánticamente similares.
Azure OpenAI ofrece modelos para crear embeddings a partir de datos de texto. El servicio divide el texto en tokens y genera incrustaciones mediante modelos entrenados previamente por OpenAI. Para obtener más información, consulte Creación de incrustaciones con Azure OpenAI.
Para obtener una lista de respuestas a preguntas comunes sobre vectores e incrustaciones, consulte:
Búsqueda de vectores
La búsqueda vectorial es el proceso de buscar todos los vectores en un conjunto de datos que son semánticamente similares a un vector de consulta específico. Por lo tanto, un vector de consulta para la palabra human busca en todo el diccionario palabras semánticamente similares y debe encontrar la palabra person como una coincidencia cercana. Una métrica de similitud, como la similitud de coseno, mide esta proximidad o distancia. Los vectores más cercanos están en similitud, cuanto menor sea la distancia entre ellos.
Considere un escenario en el que se ejecuta una consulta en millones de documentos para buscar los documentos más similares en los datos. Puede crear incrustaciones para los datos y consultar documentos mediante Azure OpenAI. Luego, puede realizar una búsqueda de vectores para encontrar los documentos más similares del conjunto de datos. Realizar una búsqueda de vectores en unos pocos ejemplos es trivial. Sin embargo, realizar esta misma búsqueda en miles o millones de puntos de datos es más complicado. También hay inconvenientes entre los métodos de búsqueda exhaustivos y los métodos de búsqueda vecinos más cercanos (ANN), incluida la latencia, el rendimiento, la precisión y el costo. Todas estas ventajas y desventajas dependen de los requisitos de la aplicación.
Puede almacenar y consultar vectores de forma eficaz en Azure SQL Database, lo que permite una búsqueda de vecinos exactamente más cercana con un gran rendimiento. No tiene que decidir entre precisión y velocidad: puede tener ambos. El almacenamiento de incrustaciones de vectores junto con los datos de una solución integrada minimiza la necesidad de administrar la sincronización de datos y acelera el tiempo de comercialización en el desarrollo de aplicaciones de IA.
Para obtener más información sobre vectores e incrustaciones, consulte:
Azure OpenAI
La inserción es el proceso de representar el mundo real como datos. Puede convertir texto, imágenes o sonidos en incrustaciones. Los modelos Azure de OpenAI pueden transformar la información real en embeddings. Puede acceder a los modelos como puntos de conexión REST, por lo que puede usarlos fácilmente desde Azure SQL Database mediante el procedimiento almacenado del sistema de sp_invoke_external_rest_endpoint:
DECLARE @retval INT, @response NVARCHAR(MAX);
DECLARE @payload NVARCHAR(MAX);
SET @payload = JSON_OBJECT('input': @text);
EXEC @retval = sp_invoke_external_rest_endpoint @url = 'https://<openai-url>/openai/deployments/<model-name>/embeddings?api-version=2023-03-15-preview',
@method = 'POST',
@credential = [https://<openai-url>/openai/deployments/<model-name>],
@payload = @payload,
@response = @response OUTPUT;
SELECT CAST([key] AS INT) AS [vector_value_id],
CAST([value] AS FLOAT) AS [vector_value]
FROM OPENJSON(JSON_QUERY(@response, '$.result.data[0].embedding'));
El uso de una llamada a un servicio REST para obtener incrustaciones es solo una de las opciones de integración que tiene al trabajar con SQL Database y OpenAI. Puede permitir que cualquiera de los modelos available acceda a los datos almacenados en Azure SQL Database para crear soluciones en las que los usuarios puedan interactuar con los datos, como el ejemplo siguiente.
Para obtener ejemplos adicionales sobre el uso de SQL Database y OpenAI, consulte los siguientes artículos:
- Generar imágenes con Azure OpenAI Service (DALL-E) y Azure SQL Database
- Uso de puntos de conexión REST de OpenAI con Azure SQL Database
Ejemplos de vectores
El tipo de datos de vector dedicado permite almacenar datos vectoriales eficientes y optimizados. Incluye un conjunto de funciones para ayudar a los desarrolladores a simplificar la implementación de búsqueda de vectores y similitudes. Puede calcular la distancia entre dos vectores en una línea de código mediante la VECTOR_DISTANCE función . Para obtener más información y ejemplos, vea Vector search and vector indexes in the SQL Motor de base de datos.
Por ejemplo:
CREATE TABLE [dbo].[wikipedia_articles_embeddings_titles_vector]
(
[article_id] [int] NOT NULL,
[embedding] [vector](1536) NOT NULL,
)
GO
SELECT TOP(10)
*
FROM
[dbo].[wikipedia_articles_embeddings_titles_vector]
ORDER BY
VECTOR_DISTANCE('cosine', @my_reference_vector, embedding)
Búsqueda de Azure AI
Implemente patrones RAG con Azure SQL Database y Búsqueda de Azure AI. Puede ejecutar modelos de chat compatibles en los datos almacenados en Azure SQL Database, sin tener que entrenar o ajustar modelos, gracias a la integración de Búsqueda de Azure AI con Azure OpenAI y Azure SQL Database. Al ejecutar modelos en los datos, puede chatear sobre los datos y analizarlos con mayor precisión y velocidad.
- Azure OpenAI en tus datos
- Generación Aumentada por Recuperación (RAG) en Búsqueda de Azure AI
- Vector Search con Azure SQL Database y Búsqueda de Azure AI
Aplicaciones inteligentes
Puede usar Azure SQL Database para crear aplicaciones inteligentes que incluyan características de inteligencia artificial, como los recomendadores y la generación aumentada de recuperación (RAG), como se muestra en el diagrama siguiente:
Para obtener un ejemplo completo para construir una aplicación impulsada por IA usando sesiones abstractas como conjunto de datos de muestra, consulte:
- Cómo he creado un recomendador de sesión en 1 hora mediante OpenAI.
- Uso de la generación aumentada de recuperación para crear un asistente de sesión de conferencia.
Para obtener más información sobre las aplicaciones inteligentes, consulte:
- Aplicaciones inteligentes e IA.
- Preguntas más frecuentes sobre aplicaciones inteligentes e inteligencia artificial.
Integración de LangChain
LangChain es un marco conocido para desarrollar aplicaciones con tecnología de modelos de lenguaje. Para ver ejemplos que muestran cómo se puede usar LangChain para crear un bot de chat en sus propios datos, consulte:
- langchain-sqlserver Paquete PyPI
Algunos ejemplos sobre el uso de Azure SQL con LangChain:
Ejemplos de un extremo a otro:
- Cree un chatbot en sus propios datos en 1 hora con Azure SQL, Langchain y Chainlit: cree un chatbot con el patrón RAG en sus propios datos mediante Langchain para orquestar llamadas LLM y Chainlit para la UI.
Integración con Kernel semántico
Kernel semántico es un SDK de código abierto que puede usar para compilar fácilmente agentes que llaman al código existente. Como SDK altamente extensible, puede usar Kernel semántico con modelos de OpenAI, Azure OpenAI, Hugging Face, etc. Al combinar el código de C#, Python y Java existentes con estos modelos, puede crear agentes que respondan a preguntas y automaticen procesos.
El siguiente es un ejemplo que muestra la facilidad con la que Kernel semántico le ayuda a crear una solución habilitada para IA:
- ¿El bot de chat definitivo?: cree un bot de chat en sus propios datos con patrones NL2SQL y RAG para la experiencia del usuario final.
aptitudes de Microsoft Copilot en Azure SQL Database
Microsoft Copilot en Azure SQL Database (versión preliminar) es un conjunto de experiencias asistidas por IA diseñadas para simplificar el diseño, la operación, la optimización y el estado de las aplicaciones controladas por Azure SQL Database.
Copilot proporciona respuestas relevantes a las preguntas del usuario, lo que simplifica la administración de bases de datos mediante el contexto de la base de datos, la documentación, las vistas de administración dinámica, los Almacén de consultas y otros orígenes de conocimiento. Por ejemplo:
- Los administradores de bases de datos pueden administrar de forma independiente las bases de datos y resolver problemas u obtener más información sobre el rendimiento y las funcionalidades de la base de datos.
- Los desarrolladores pueden formular preguntas sobre los datos como lo haría en texto o conversación para generar una consulta T-SQL. Los desarrolladores también pueden aprender a escribir consultas más rápido mediante explicaciones detalladas de la consulta generada.
Nota:
Las habilidades de Microsoft Copilot en Azure SQL Database están actualmente en versión preliminar para un número limitado de adoptantes tempranos. Para suscribirse a este programa, visite Request Access to Copilot in Azure SQL Database: Preview.
Microsoft Copilot en Fabric SQL Database (versión preliminar)
Copilot para SQL Database en Microsoft Fabric incluye asistencia integrada de inteligencia artificial con las siguientes características:
Codificación de código: Empiece a escribir T-SQL en el editor de consultas SQL y Copilot genere automáticamente una sugerencia de código para ayudar a completar la consulta. Presione Tab para aceptar la sugerencia de código o seguir escribiendo para omitirla.
Acciones rápidas: en la cinta de opciones del editor de consultas SQL, las opciones de Corregir y Explicar son acciones rápidas. Resalte una consulta SQL y seleccione uno de los botones de acción rápida para realizar la acción seleccionada en la consulta.
Fix: Copilot corrige los errores en el código a medida que surgen mensajes de error. Los escenarios de error pueden incluir código T-SQL incorrecto o no admitido, ortografías incorrectas y mucho más. Copilot también proporciona comentarios que explican los cambios y sugieren procedimientos recomendados de SQL.
Explain: Copilot proporciona explicaciones en lenguaje natural de la consulta SQL y el esquema de base de datos en formato de comentarios.
Panel Chat: Use el panel de chat para formular preguntas a Copilot a través del lenguaje natural. Copilot responde con una consulta SQL generada o un lenguaje natural basado en la pregunta que se hace.
Lenguaje natural a SQL: genere código T-SQL a partir de solicitudes de texto sin formato y obtenga sugerencias de preguntas para acelerar el flujo de trabajo.
Q&A basado en documentos: Hazle preguntas a Copilot sobre las capacidades generales de bases de datos SQL, y responde en lenguaje natural. Copilot también ayuda a encontrar documentación relacionada con la solicitud.
Copilot para la base de datos SQL usa los nombres de tabla y vista, los nombres de columna, la clave principal y los metadatos de clave externa para generar código T-SQL. Copilot para SQL Database no usa datos en tablas para generar sugerencias de T-SQL.
Contenido relacionado
- Crear e implementar un recurso de Azure OpenAI Service
- Modelos de incrustación
- Muestras y ejemplos de IA para SQL
- Preguntas frecuentes sobre las habilidades de Microsoft Copilot en Azure SQL Database (versión preliminar)
- Preguntas frecuentes sobre IA responsable para Microsoft Copilot para Azure (versión preliminar)