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 AzureBanco de DadosSQL do Azure Banco de Dados SQL banco de dados SQL do Banco de Dados SQL do Azure
banco de dados SQL 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 Mecanismo de Banco de Dados SQL no SQL Server e na Instância Gerenciada de SQL do Azure.
Para o Banco de Dados SQL do Azure, examine os aplicativos inteligentes e a IA.
Para obter exemplos e exemplos, visite o repositório de Exemplos 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 Mecanismo de Banco de Dados SQL 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 |
|---|---|
| Azure OpenAI | Gere inserções para RAG e integre-se a qualquer modelo compatível com o Azure OpenAI. |
| Vetores | Saiba como armazenar vetores e usar funções de vetor no banco de dados. |
| Azure AI Search | Use seu banco de dados junto com o Azure AI Search para treinar o 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. |
Principais conceitos para implementar o RAG com o Azure OpenAI
Esta seção inclui os principais conceitos que são fundamentais para implementar o RAG com o Azure OpenAI no Mecanismo de Banco de Dados 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 Mecanismo de Banco de Dados SQL pode ser:
- Insira dados em uma tabela.
- Vincule sua instância ao Azure AI Search.
- Crie um modelo GPT4 openai do Azure e conecte-o ao Azure AI Search.
- Converse e faça perguntas sobre seus dados usando o modelo treinado do Azure OpenAI de seu aplicativo e de 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. O RAG permite que o modelo aplique uma base de dados de conhecimento mais ampla incorporando fontes externas relevantes ao processo de geração, resultando em respostas mais abrangentes e informadas. Para obter mais informações sobre como aterrar LLMs, consulte Aterramento de LLMs – Microsoft Community Hub.
Solicitações e engenharia dos prompts
Um prompt refere-se a textos ou informações específicas que servem como uma instrução para uma LLM ou como dados contextuais que a LLM pode criar. Um prompt pode assumir várias formas, como uma pergunta, uma declaração ou até mesmo um trecho de código.
Prompts de exemplo que podem ser usados para gerar uma resposta de uma LLM:
- 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 boas solicitações para um cenário é chamado de engenharia de prompt. 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 seria dividida em tokens como ham, bure ger enquanto uma palavra curta e comum como pear seria considerada um único token.
No Azure OpenAI, o texto de entrada fornecido para a API é transformado em tokens (tokenizado). 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. Há limites para o número de tokens que cada modelo pode receber em uma única solicitação/resposta do Azure OpenAI. Para saber mais, confira as cotas e os limites do Azure OpenAI no Azure AI Foundry Models.
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 incorporações são frequentemente aprendidas pelo uso de um modelo de aprendizado profundo, e os modelos de aprendizado de máquina e IA as utilizam 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, esperaríamos que suas inserções (representação vetorial) fossem semelhantes em valor, pois as palavras também são semanticamente semelhantes.
O OpenAI do Azure apresenta modelos para criar incorporações de dados de texto. O serviço divide o texto em tokens e gera incorporações utilizando modelos pré-treinados da OpenAI. Para saber mais, confira Noções básicas sobre inserções no Azure OpenAI nos Modelos de Descoberta de IA do Azure.
Busca em vetores
A pesquisa de vetor refere-se ao processo de localizar todos os vetores em um conjunto de dados semanticamente semelhante 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. Os vetores mais próximos estão em similaridade, o menor é 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 o 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 pesquisa de vetor em alguns exemplos é 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, tudo isso depende dos requisitos do aplicativo.
Os vetores no Mecanismo de Banco de Dados SQL podem ser armazenados e consultados com eficiência, conforme descrito nas próximas seções, permitindo a pesquisa exata mais próxima do vizinho com grande 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.
OpenAI do Azure
A inserção é o processo de representar o mundo real como dados. Texto, imagens ou sons podem ser convertidos em inserções. Os modelos do Azure OpenAI são capazes de transformar informações reais em inserções. Os modelos estão disponíveis como pontos de extremidade REST e, portanto, podem ser facilmente consumidos do Mecanismo de Banco de Dados SQL usando o procedimento armazenado sp_invoke_external_rest_endpoint, disponível a partir do SQL Server 2025 (17.x) e da Instância Gerenciada de SQL do Azure configurada 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 a Instância Gerenciada de SQL e o OpenAI. Você pode permitir que qualquer um dos modelos disponíveis acesse os dados armazenados no Mecanismo de Banco de Dados 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 o SQL do Azure e o OpenAI, consulte os seguintes artigos, que também se aplicam ao SQL Server e à Instância Gerenciada de SQL do Azure:
- Gerar imagens com o Serviço OpenAI do Azure (DALL-E) e o SQL do Azure
- Usando pontos de extremidade REST do OpenAI com o SQL do Azure
Exemplos de vetor
O tipo de dados de vetor dedicado permite o armazenamento eficiente e otimizado de dados de vetor e vem com um conjunto de funções para ajudar os desenvolvedores a simplificar a implementação de pesquisa de vetor e similaridade. O cálculo da distância entre dois vetores pode ser feito em uma linha de código usando a nova VECTOR_DISTANCE função. Para obter mais informações e exemplos, examine a pesquisa de vetores e índices de vetor no Mecanismo 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 com o Mecanismo de Banco de Dados SQL e o Azure AI Search. Você pode executar modelos de chat com suporte em dados armazenados no Mecanismo de Banco de Dados SQL, sem precisar treinar ou ajustar modelos, graças à integração do Azure AI Search ao Azure OpenAI e ao Mecanismo de Banco de Dados SQL. A execução de modelos em seus dados permite que você converse e analise seus dados com maior precisão e velocidade.
Para saber mais sobre a integração do Azure AI Search com o Azure OpenAI e o Mecanismo de Banco de Dados SQL, consulte os seguintes artigos, que também se aplicam ao SQL Server e à Instância Gerenciada de SQL do Azure:
- Azure OpenAI em seus dados
- RAG (Geração Aumentada de Recuperação) no Azure AI Search
- Vector Search com o SQL do Azure e o Azure AI Search
Aplicativos inteligentes
O Mecanismo de Banco de Dados SQL pode ser usado para criar aplicativos inteligentes que incluem recursos de IA, como recomendadores, e RAG (Recuperação de Geração Aumentada), como demonstra o diagrama a seguir:
Para obter um exemplo de ponta a ponta para 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.
- Usando a Geração Aumentada de Recuperação para criar um assistente de sessão de conferência
Observação
A integração do LangChain e a integração semântica do Kernel dependem do tipo de dados de vetor, 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.
Integração do LangChain
LangChain é uma estrutura conhecida para o desenvolvimento de aplicativos alimentados por modelos de linguagem. Para obter exemplos que mostram como o LangChain pode ser usado para criar um Chatbot em seus próprios dados, consulte:
- langchain-sqlserver Pacote PyPI
Alguns exemplos sobre como usar o SQL do Azure com LangChain:
Exemplos de ponta a ponta:
- Crie um chatbot em seus próprios dados em 1 hora com SQL do Azure, Langchain e Chainlit: crie um chatbot usando o padrão RAG em seus próprios dados usando Langchain para orquestrar chamadas LLM e Chainlit para a interface do usuário.
Integração semântica do Kernel
O Kernel Semântico é um SDK de software livre que permite criar facilmente agentes que podem chamar 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 o código C#, Python e Java existentes com esses modelos, você pode criar agentes que respondem a perguntas e automatizam processos.
Um exemplo de quão facilmente o Kernel Semântico ajuda a criar soluções habilitadas para IA está aqui:
- 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.