Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2025 (17.x)
Base de Dados SQL do Azure
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Este artigo apresenta uma visão geral da utilização de opções de inteligência artificial (IA), como o OpenAI e vetores, para construir aplicações inteligentes com o SQL Database Engine em SQL Server e Azure SQL Managed Instance.
Para Base de Dados SQL do Azure e Base de Dados SQL em Fabric, veja Aplicações inteligentes e IA.
Para amostras e exemplos, visite o repositório SQL AI Samples.
Visão geral
Os modelos de linguagem grande (LLMs) permitem que os desenvolvedores criem aplicativos baseados em IA com uma experiência de usuário familiar.
O uso de LLMs em aplicativos traz maior valor e uma experiência de usuário aprimorada quando os modelos podem acessar os dados certos, no momento certo, do banco de dados do seu aplicativo. Este processo é conhecido como Geração Aumentada de Recuperação (RAG) e o SQL Database Engine possui muitas funcionalidades que suportam este novo padrão, tornando-o uma excelente base de dados para construir aplicações inteligentes.
Os links a seguir fornecem código de exemplo de várias opções para criar aplicativos inteligentes:
| Opção AI | Description |
|---|---|
| SQL MCP Server | Uma interface estável e governada para a sua base de dados, definindo um conjunto de ferramentas e configuração. |
| Azure OpenAI | Gerar embeddings para RAG e integrar com qualquer modelo suportado pelo Azure OpenAI. |
| Vetores | Saiba como armazenar vetores e usar funções vetoriais no banco de dados. |
| Pesquisa de IA do Azure | Utilize a sua base de dados juntamente com o Pesquisa de IA do Azure para treinar o LLM com os seus dados. |
| Aplicações inteligentes | Saiba como criar uma solução completa usando um padrão comum que pode ser replicado em qualquer cenário. |
SQL MCP Server em aplicações de IA
O SQL MCP Server situa-se diretamente no caminho de dados para agentes de IA.
- À medida que os modelos geram pedidos, o servidor fornece uma interface estável e governada para a sua base de dados.
- Em vez de expor o esquema bruto ou depender de SQL gerado, encaminha todo o acesso através de um conjunto definido de ferramentas apoiadas pela sua configuração.
Esta abordagem mantém as interações previsíveis e garante que cada operação está alinhada com as permissões e a estrutura que define. Para mais informações, consulte aka.ms/sql/mcp.
Ao separar o raciocínio da execução, os modelos focam-se na intenção, enquanto o SQL MCP Server trata de como essa intenção se torna consultas válidas. Como a área de superfície é limitada e descrita, os agentes podem descobrir as capacidades disponíveis, compreender entradas e saídas, e operar sem adivinhar. Este design reduz erros e elimina a necessidade de engenharia de prompts complexa para compensar a ambiguidade do esquema.
Para os programadores, esta abordagem significa que a IA pode participar com segurança em cargas de trabalho reais.
É possível:
- Defina entidades uma vez
- Aplicar funções e restrições
A plataforma então:
- Impõe consistentemente entidades, funções e restrições.
- Cria uma base fiável para aplicações orientadas por agentes sobre dados SQL.
A mesma configuração que alimenta o REST e o GraphQL também governa o MCP, por isso não há duplicação de regras ou lógica. Para mais informações, consulte aka.ms/dab/docs.
Conceitos-chave para implementar o RAG com o Azure OpenAI
Esta secção inclui conceitos-chave que são críticos para implementar o RAG com o Azure OpenAI no SQL Database Engine.
Geração de Recuperação Aumentada (RAG)
RAG é uma técnica que aumenta a capacidade do LLM de produzir respostas relevantes e informativas, recuperando dados adicionais de fontes externas. Por exemplo, o RAG pode consultar artigos ou documentos que contenham conhecimento específico do domínio relacionado à pergunta ou prompt do usuário. O LLM pode então usar esses dados recuperados como referência ao gerar sua resposta. Por exemplo, um padrão RAG simples usando o SQL Database Engine poderia ser:
- Insira dados em uma tabela.
- Liga a tua instância ao Pesquisa de IA do Azure.
- Crie um modelo Azure OpenAI GPT-4 e ligue-o ao Pesquisa de IA do Azure.
- Converse e faça perguntas sobre os seus dados utilizando o modelo Azure OpenAI treinado da sua aplicação e dos dados da sua instância.
O padrão RAG, com engenharia rápida, serve o propósito de melhorar a qualidade da resposta, oferecendo mais informações contextuais ao modelo. O RAG permite que o modelo aplique uma base de conhecimento mais ampla, incorporando fontes externas relevantes no processo de geração, resultando em respostas mais abrangentes e informadas. Para mais informações sobre LLMs grounding, consulte Grounding LLMs - Microsoft Community Hub.
Prompts e engenharia de prompts
Um prompt é texto ou informação específica que serve como instrução para um grande modelo de linguagem (LLM), ou como dados contextuais sobre os quais o LLM pode construir. Um prompt pode assumir várias formas, como uma pergunta, uma instrução ou até mesmo um trecho de código.
Exemplos de prompts que pode usar para gerar uma resposta a partir de um LLM incluem:
- Instruções: fornecer diretrizes para o LLM
- Conteúdo primário: fornece informações ao LLM para processamento
- Exemplos: ajudar a condicionar o modelo a uma tarefa ou processo específico
- Cues: direcione a saída do LLM na direção certa
- Conteúdo de suporte: representa informações suplementares que o LLM pode usar para gerar resultados
O processo de criação de bons prompts para um cenário é chamado de engenharia de prompt. Para mais informações sobre prompts e boas práticas para a engenharia de prompts, consulte Técnicas de engenharia de prompts.
Tokens
Os tokens são pequenos pedaços de texto gerados pela divisão do texto de entrada em segmentos menores. Esses segmentos podem ser palavras ou grupos de caracteres, variando em comprimento de um único caractere para uma palavra inteira. Por exemplo, a palavra hamburger é dividida em tokens como ham, bur, e ger enquanto uma palavra curta e comum como pear é considerada um único token.
No Azure OpenAI, a API tokeniza o texto de entrada. O número de tokens processados em cada solicitação de API depende de fatores como o comprimento dos parâmetros de entrada, saída e solicitação. A quantidade de tokens que estão sendo processados também afeta o tempo de resposta e a taxa de transferência dos modelos. Cada modelo tem limites no número de tokens que pode receber num único pedido e resposta do Azure OpenAI. Para saber mais, consulte Azure OpenAI em Azure AI Foundry modelos de quotas e limites.
Vectors
Vetores são matrizes ordenadas de números (normalmente flutuadores) que podem representar informações sobre alguns dados. Por exemplo, uma imagem pode ser representada como um vetor de valores de pixel ou uma cadeia de caracteres de texto pode ser representada como um vetor de valores ASCII. O processo para transformar dados em um vetor é chamado de vetorização. Para obter mais informações, consulte Exemplos de vetor.
Trabalhar com dados vetoriais é mais fácil com a introdução do tipo de dados vetoriais e funções vetoriais.
Incorporações
As incorporações são vetores que representam características importantes dos dados. Os embeddings são frequentemente aprendidos através de um modelo de deep learning, e modelos de aprendizagem automática e IA utilizam-nos como funcionalidades. As incorporações também podem capturar semelhança semântica entre conceitos semelhantes. Por exemplo, ao gerar uma imersão para as palavras person e human, pode-se esperar que as suas imersão (representação vetorial) sejam semelhantes em valor, uma vez que as palavras também são semanticamente semelhantes.
O Azure OpenAI apresenta modelos para criar embeddings a partir de dados de texto. O serviço divide o texto em tokens e gera embeddings usando modelos pré-treinados pela OpenAI. Para saber mais, consulte Understand embeddings in Azure OpenAI em Azure AI Foundry Models.
Pesquisa vetorial
A pesquisa vetorial é o processo de encontrar todos os vetores num conjunto de dados que são semanticamente semelhantes a um vetor de consulta específico. Assim, um vetor de consulta para a pesquisa de palavras human percorre todo o dicionário em busca de palavras semanticamente semelhantes, e deve encontrar a palavra person como uma correspondência próxima. Esta proximidade, ou distância, é medida usando uma métrica de similaridade como a similaridade do cosseno. Quanto mais próximos estiverem os vetores em semelhança, menor a distância entre eles.
Considere um cenário em que faz uma consulta sobre milhões de documentos para encontrar os documentos mais semelhantes nos seus dados. Pode criar embeddings para os seus dados e documentos de consulta usando o Azure OpenAI. Em seguida, você pode realizar uma pesquisa vetorial para encontrar os documentos mais semelhantes do seu conjunto de dados. No entanto, realizar uma pesquisa vetorial em alguns exemplos é trivial. Realizar essa mesma pesquisa em milhares, ou milhões, de pontos de dados torna-se um desafio. Existem também compromissos entre a pesquisa exaustiva e os métodos de pesquisa aproximada do vizinho mais próximo (ANN), incluindo latência, rendimento, precisão e custo. Todos estes compromissos dependem dos requisitos da sua candidatura.
Pode armazenar e consultar vetores de forma eficiente no SQL Database Engine, conforme descrito nas secções seguintes. Esta capacidade permite uma pesquisa exata de vizinhos mais próximos com excelente desempenho. Você não precisa decidir entre precisão e velocidade: você pode ter ambos. Armazenar incorporações vetoriais ao lado dos dados em uma solução integrada minimiza a necessidade de gerenciar a sincronização de dados e acelera seu tempo de comercialização para o desenvolvimento de aplicativos de IA.
Azure OpenAI
A incorporação é o processo de representar o mundo real como dados. Podes converter texto, imagens ou sons em embeddings. Os modelos OpenAI do Azure podem transformar informação do mundo real em embeddings. Pode aceder aos modelos como endpoints REST, portanto pode consumi-los facilmente a partir do Motor de Base de Dados SQL usando o procedimento armazenado do sistema sp_invoke_external_rest_endpoint. Este procedimento está disponível a partir do SQL Server 2025 (17.x) e das Azure SQL Managed Instances configuradas com a política de atualização Always-up-to-date.
DECLARE @retval AS INT,
@response AS NVARCHAR (MAX),
@payload AS NVARCHAR (MAX);
SET @payload = JSON_OBJECT('input':@text);
EXECUTE
@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;
DECLARE @e AS VECTOR(1536) = JSON_QUERY(@response, '$.result.data[0].embedding');
Usar uma chamada para um serviço REST para obter embeddings é apenas uma das opções de integração que tens ao trabalhar com SQL Managed Instance e OpenAI. Pode permitir que qualquer um dos modelos disponíveis aceda a dados armazenados no Database Engine SQL para criar soluções onde os seus utilizadores possam interagir com os dados, como o seguinte exemplo:
Para exemplos adicionais sobre a utilização de SQL do Azure e OpenAI, consulte os seguintes artigos, que também se aplicam ao SQL Server e ao Azure SQL Managed Instance:
- Gerar imagens com Azure OpenAI Service (DALL-E) e SQL do Azure
- Usando endpoints OpenAI REST com SQL do Azure
Exemplos de vetores
O tipo de dado vetorial dedicado armazena eficientemente os dados vetoriais e inclui um conjunto de funções para ajudar os programadores a simplificar a implementação de pesquisas vetoriais e de similaridade. Pode calcular a distância entre dois vetores numa linha de código usando a nova VECTOR_DISTANCE função. Para mais informações e exemplos, veja Pesquisa por vetores e índices vetoriais no Motor de Banco de Dados SQL.
Por exemplo:
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)
Pesquisa de IA do Azure
Implemente padrões RAG utilizando o SQL Database Engine e o Pesquisa de IA do Azure. Pode executar modelos de chat suportados em dados armazenados no SQL Database Engine sem ter de treinar ou ajustar modelos ao integrar o Pesquisa de IA do Azure com o Azure OpenAI e o SQL Database Engine. Quando executa modelos nos seus dados, pode interagir com eles e analisá-los com maior precisão e rapidez.
Para saber mais sobre a integração do Pesquisa de IA do Azure com o Azure OpenAI e o SQL Database Engine, consulte os seguintes artigos. Estes artigos aplicam-se também ao SQL Server e ao Azure SQL Managed Instance:
- Azure OpenAI aplicado aos seus dados
- Geração Aumentada de Recuperação (RAG) em Pesquisa de IA do Azure
- Pesquisa Vetorial com SQL do Azure e Pesquisa de IA do Azure
Aplicações inteligentes
Pode usar o SQL Database Engine para construir aplicações inteligentes que incluam funcionalidades de IA, como recomendadores e Geração Aumentada de Recuperação (RAG), como demonstra o diagrama seguinte:
Para uma amostra de ponta a ponta que mostra como construir uma aplicação habilitada por IA usando o resumo de sessões como conjunto de dados de exemplo, veja:
- Como construí um recomendador de sessão em 1 hora usando OpenAI.
- Utilize a Geração Aumentada por Recuperação para construir um assistente de sessão de conferência.
Observação
As integrações LangChain e Kernel Semântico dependem do tipo de dados vetor, que está disponível a partir do SQL Server 2025 (17.x) e no Azure SQL Managed Instance configurado com a política de atualização Always-up-to-date ou SQL Server 2025, Base de Dados SQL do Azure e base de dados SQL no Microsoft Fabric.
Integração LangChain
LangChain é uma estrutura bem conhecida para o desenvolvimento de aplicações alimentadas por modelos de linguagem. Para exemplos que mostram como pode usar o LangChain para criar um chatbot com base nos seus próprios dados, veja:
- langchain-sqlserver Pacote PyPI.
Alguns exemplos de utilização do SQL do Azure com LangChain:
Exemplos de ponta a ponta:
- Constrói um chatbot com os teus próprios dados em 1 hora com SQL do Azure, Langchain e Chainlit: Constrói um chatbot usando o padrão RAG nos teus próprios dados, usando LangChain para orquestrar chamadas LLM e Chainlit para a interface.
Integração "Kernel Semântico"
Kernel Semântico é um SDK open-source que podes usar para construir facilmente agentes que chamam o teu código existente. Como um SDK altamente extensível, pode usar o Kernel Semântico com modelos da OpenAI, Azure OpenAI, Hugging Face e mais. Ao combinar o seu código existente em C#, Python e Java com estes modelos, pode construir agentes que respondam a perguntas e automatizam processos.
Um exemplo de como o Kernel Semântico ajuda facilmente a construir soluções com IA é:
- O melhor chatbot?: Crie um chatbot em seus próprios dados usando os padrões NL2SQL e RAG para a melhor experiência do usuário.