Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2025 (17.x)
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
SQL em Banco de Dados no Microsoft Fabric
Este artigo fornece uma visão geral do uso de opções de IA (inteligência artificial), como OpenAI e vetores, para criar aplicativos inteligentes com o SQL Mecanismo de Banco de Dados em SQL Server e Instância Gerenciada de SQL do Azure.
Para Banco de Dados SQL do Azure e Banco de Dados SQL no Fabric, consulte Aplicativos inteligentes e IA.
Para obter amostras e exemplos, visite o repositório de Amostras de IA do SQL.
Visão geral
Os LLMs (modelos de linguagem grande) permitem que os desenvolvedores criem aplicativos alimentados por IA com uma experiência familiar do usuário.
O uso de LLMs em aplicativos traz maior valor e uma experiência aprimorada do usuário quando os modelos podem acessar os dados certos, no momento certo, do banco de dados do aplicativo. Esse processo é conhecido como RAG (Recuperação de Geração Aumentada) e o SQL Mecanismo de Banco de Dados tem muitos recursos que dão suporte a esse novo padrão, tornando-se um ótimo banco de dados para criar aplicativos inteligentes.
Os links a seguir fornecem um código de exemplo de várias opções para criar aplicativos inteligentes:
| Opção de IA | Description |
|---|---|
| SQL MCP Server | Uma interface estável e governada para seu banco de dados, definindo um conjunto de ferramentas e configuração. |
| Azure OpenAI | Gere inserções para RAG e integre-se a qualquer modelo compatível com Azure OpenAI. |
| Vetores | Saiba como armazenar vetores e usar funções de vetor no banco de dados. |
| Pesquisa de IA do Azure | Use seu banco de dados junto com Pesquisa de IA do Azure para treinar LLM em seus dados. |
| Aplicativos inteligentes | Saiba como criar uma solução de ponta a ponta usando um padrão comum que pode ser replicado em qualquer cenário. |
SQL MCP Server em aplicativos de IA
O SQL MCP Server fica diretamente no caminho de dados para agentes de IA.
- À medida que os modelos geram solicitações, o servidor fornece uma interface estável e governada para seu banco de dados.
- Em vez de expor o esquema bruto ou depender do SQL gerado, ele roteia todo o acesso por meio de um conjunto definido de ferramentas apoiadas por sua configuração.
Essa abordagem mantém as interações previsíveis e garante que todas as operações estejam alinhadas com as permissões e a estrutura definidas. Para obter mais informações, consulte aka.ms/sql/mcp.
Ao separar o raciocínio da execução, os modelos se concentram na intenção enquanto o SQL MCP Server manipula como essa intenção se torna consultas válidas. Como a área de superfície é restrita e descrita, os agentes podem descobrir recursos disponíveis, entender entradas e saídas e operar sem adivinhar. Este projeto reduz erros e elimina a necessidade de uma engenharia de prompts complexa para compensar a ambiguidade do esquema.
Para os desenvolvedores, essa abordagem significa que a IA pode participar com segurança de cargas de trabalho reais.
É possível:
- Definir entidades uma vez
- Aplicar funções e restrições
Em seguida, a plataforma:
- Impõe entidades, funções e restrições consistentemente
- Cria uma base confiável para aplicativos controlados por agente por meio de dados SQL.
A mesma configuração que alimenta REST e GraphQL também rege o MCP, portanto, não há duplicação de regras ou lógica. Para obter mais informações, consulte aka.ms/dab/docs.
Principais conceitos para implementar o RAG com Azure OpenAI
Esta seção inclui os principais conceitos que são fundamentais para implementar o RAG com Azure OpenAI no Mecanismo de Banco de Dados do SQL.
RAG (geração aumentada de recuperação)
O RAG é uma técnica que aprimora 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 contêm conhecimentos específicos do domínio relacionados à pergunta ou ao prompt do usuário. Em seguida, o LLM pode usar esses dados recuperados como referência ao gerar sua resposta. Por exemplo, um padrão RAG simples usando o sql Mecanismo de Banco de Dados pode ser:
- Insira dados em uma tabela.
- Vincule sua instância ao Pesquisa de IA do Azure .
- Crie um modelo Azure OpenAI GPT-4 e conecte-o ao Pesquisa de IA do Azure .
- Converse e faça perguntas sobre seus dados usando o modelo Azure OpenAI treinado tanto a partir do seu aplicativo quanto dos dados em sua instância.
O padrão de RAG, com engenharia de prompts, serve ao propósito de melhorar a qualidade da resposta, oferecendo mais informações contextuais ao modelo. A RAG habilita o modelo a aplicar uma base de conhecimento mais ampla ao incorporar fontes externas relevantes no processo de geração, resultando em respostas mais abrangentes e informadas. Para obter mais informações sobre grounding LLMs, consulte Grounding LLMs – Microsoft Community Hub.
Solicitações e engenharia dos prompts
Um prompt é um texto específico ou informação que serve como uma instrução para um LLM (modelo de linguagem grande) ou como dados contextuais que o LLM pode usar. Um prompt pode assumir várias formas, como uma pergunta, uma declaração ou até mesmo um trecho de código.
Os prompts de exemplo que você pode usar para gerar uma resposta de uma LLM incluem:
- Instruções: fornecer diretivas ao LLM
- Conteúdo primário: fornece informações ao LLM para processamento
- Exemplos: ajuda a condicioná-lo a uma tarefa ou processo específico
- Indicações: direcione a saída da LLM na direção certa
- Conteúdo de suporte: representa informações complementares que o LLM pode usar para gerar saída
O processo de criação de bons prompts para um cenário é chamado de engenharia de prompts. Para obter mais informações sobre prompts e melhores 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 a uma palavra inteira. Por exemplo, a palavra hamburger é dividida em tokens como ham, bure 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 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 em uma única solicitação e resposta de Azure OpenAI. Para saber mais, consulte cotas e limites de modelos do Azure OpenAI no Fábrica de IA do Azure.
Vectors
Vetores são matrizes ordenadas de números (normalmente floats) 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 de vetor é mais fácil com a introdução do tipo de dados vetor e das funções de vetor.
Embeddings
As inserções são vetores que representam características importantes dos dados. As inserções geralmente são aprendidas usando um modelo de aprendizado profundo, e o aprendizado de máquina e os modelos de IA os usam como recursos. As inserções também podem capturar a semelhança semântica entre conceitos semelhantes. Por exemplo, ao gerar uma inserção para as palavras person e human, você pode esperar que suas inserções (representação de vetor) sejam semelhantes em valor, pois as palavras também são semanticamente semelhantes.
Azure OpenAI apresenta modelos para criar incorporações a partir de dados de texto. O serviço divide o texto em tokens e gera inserções usando modelos pré-treinados pelo OpenAI. Para saber mais, consulte Entenda embeddings no Azure OpenAI em Modelos Fábrica de IA do Azure.
Busca em vetores
A pesquisa de vetor é o processo de localizar todos os vetores em um conjunto de dados que são semanticamente semelhantes a um vetor de consulta específico. Portanto, um vetor de consulta para a palavra human pesquisa todo o dicionário em busca de palavras semanticamente semelhantes e deve encontrar a palavra person como uma correspondência próxima. Essa proximidade ou distância é medida usando uma métrica de similaridade, como similaridade de cosseno. Quanto mais próximos os vetores estiverem em similaridade, menor será a distância entre eles.
Considere um cenário em que você executa uma consulta em milhões de documentos para encontrar os documentos mais semelhantes em seus dados. Você pode criar inserções para seus dados e consultar documentos usando Azure OpenAI. Em seguida, você pode executar uma pesquisa de vetor para encontrar os documentos mais semelhantes do seu conjunto de dados. No entanto, executar uma busca vetorial em alguns casos é trivial. Executar essa mesma pesquisa em milhares ou milhões de pontos de dados torna-se desafiador. Também há compensações entre a pesquisa exaustiva e os métodos de pesquisa aproximados de vizinhos mais próximos (ANN), incluindo latência, taxa de transferência, precisão e custo. Todas essas compensações dependem dos requisitos do aplicativo.
Você pode armazenar e consultar vetores com eficiência no Mecanismo de Banco de Dados do SQL, conforme descrito nas próximas seções. Essa funcionalidade permite a pesquisa exata do vizinho mais próximo com um ótimo desempenho. Você não precisa decidir entre precisão e velocidade: você pode ter ambos. Armazenar inserções de vetor junto com os 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 inserção é o processo de representar o mundo real como dados. Você pode converter texto, imagens ou sons em inserções. Modelos OpenAI do Azure podem transformar informações reais em incorporações. Você pode acessar os modelos como endpoints REST, para que possa consumi-los facilmente do mecanismo de banco 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 Instância Gerenciada de SQL do Azure configurado 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 inserções é apenas uma das opções de integração que você tem ao trabalhar com Instância Gerenciada de SQL e OpenAI. Você pode permitir que qualquer um dos modelos disponíveis acesse os dados armazenados na Mecanismo de Banco de Dados do SQL para criar soluções em que os usuários possam interagir com os dados, como o exemplo a seguir:
Para obter exemplos adicionais sobre como usar SQL do Azure e OpenAI, consulte os seguintes artigos, que também se aplicam a SQL Server e Instância Gerenciada de SQL do Azure:
- Gerar imagens com Serviço OpenAI do Azure (DALL-E) e SQL do Azure
- Uso de Endpoints REST do OpenAI com SQL do Azure
Exemplos de vetores
O tipo de dados de vetor dedicado armazena dados de vetor com eficiência e inclui um conjunto de funções para ajudar os desenvolvedores a simplificar a implementação de pesquisa de vetores e de similaridade. Você pode calcular a distância entre dois vetores em uma linha de código usando a nova VECTOR_DISTANCE função. Para obter mais informações e exemplos, consulte Vector search and vector indexes in the SQL Mecanismo de Banco de Dados.
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 usando o mecanismo de banco de dados SQL e o Pesquisa de IA do Azure . Você pode executar modelos de chat com suporte em dados armazenados no Mecanismo de Banco de Dados do SQL sem precisar treinar ou ajustar modelos integrando Pesquisa de IA do Azure com Azure OpenAI e o SQL Mecanismo de Banco de Dados. Ao executar modelos em seus dados, você pode conversar sobre seus dados e analisá-los com maior precisão e velocidade.
Para saber mais sobre a integração do Pesquisa de IA do Azure com o Azure OpenAI e a Mecanismo de Banco de Dados do SQL, consulte os artigos a seguir. Estes artigos também se aplicam a SQL Server e Instância Gerenciada de SQL do Azure:
- Azure OpenAI nos seus dados
- Retrieval Augmented Generation (RAG) em Pesquisa de IA do Azure
- Vector Search com SQL do Azure e Pesquisa de IA do Azure
Aplicativos inteligentes
Você pode usar a Mecanismo de Banco de Dados SQL para criar aplicativos inteligentes que incluem recursos de IA, como recomendadores e RAG (Geração Aumentada de Recuperação), como demonstra o diagrama a seguir:
Para obter um exemplo de ponta a ponta que mostra como criar um aplicativo habilitado para IA usando sessões abstratas como um conjunto de dados de exemplo, consulte:
- Como compilei um recomendador de sessão em 1 hora usando o OpenAI.
- Utilize a Recuperação Aumentada por Geração para criar um assistente de sessão de conferência.
Observação
As integrações do LangChain e do Kernel semântico dependem do tipo de dados vetorial, que está disponível a partir do SQL Server 2025 (17.x) e na Instância Gerenciada de SQL do Azure configurada com a política de atualização Always-up-to-date ou SQL Server 2025, Banco de Dados SQL do Azure, e banco de dados SQL no Microsoft Fabric.
Integração do LangChain
LangChain é uma estrutura conhecida para o desenvolvimento de aplicativos alimentados por modelos de linguagem. Para obter exemplos que mostram como você pode usar LangChain para criar um chatbot em seus próprios dados, consulte:
- langchain-sqlserver Pacote PyPI.
Alguns exemplos de como usar SQL do Azure com LangChain:
Exemplos de ponta a ponta:
- Construa um chatbot em seus próprios dados em 1 hora com SQL do Azure, LangChain e Chainlit: Crie um chatbot utilizando o padrão RAG em seus próprios dados, usando o LangChain para orquestrar chamadas LLM e o Chainlit para a interface do usuário.
A integração do Kernel semântico
Kernel semântico é um SDK de software livre que você pode usar para criar facilmente agentes que chamam seu código existente. Como um SDK altamente extensível, você pode usar Kernel semântico com modelos do OpenAI, Azure OpenAI, Hugging Face e muito mais. Combinando seu código C#, Python e Java existentes com esses modelos, você pode criar agentes que respondam a perguntas e automatizem processos.
Um exemplo de quão facilmente Kernel semântico ajuda você a criar soluções habilitadas para IA é:
- O chatbot final?: crie um chatbot em seus próprios dados usando padrões NL2SQL e RAG para a experiência final do usuário.