Partilhar via


Aplicações inteligentes e IA

Aplica-se a: SQL Server 2025 (17.x) Azure SQL Database AzureSQL Managed InstanceSQL database in Microsoft Fabric

Este artigo fornece uma visão geral do uso de opções de inteligência artificial (IA), como OpenAI e vetores, para criar aplicativos inteligentes com o Mecanismo de Banco de Dados SQL no SQL Server e na Instância Gerenciada SQL do Azure.

Para Azure SQL Database, consulte aplicações inteligentes e IA.

Para exemplos 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. Esse processo é conhecido como RAG (Retrieval Augmented Generation) e o Mecanismo de Banco de Dados SQL tem muitos recursos que suportam esse novo padrão, tornando-o um ótimo banco de dados para criar aplicativos inteligentes.

Os links a seguir fornecem código de exemplo de várias opções para criar aplicativos inteligentes:

Opção AI Description
Azure OpenAI Gere incorporações para RAG e integre 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 Use seu banco de dados junto com a Pesquisa de IA do Azure para treinar o LLM em 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.

Principais conceitos para implementar o RAG com o Azure OpenAI

Esta seção inclui conceitos-chave que são críticos para implementar o RAG com o Azure OpenAI no Mecanismo de Banco de Dados SQL.

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 Mecanismo de Banco de Dados SQL pode ser:

  1. Insira dados em uma tabela.
  2. Vincule sua instância ao Azure AI Search.
  3. Crie um modelo do Azure OpenAI GPT4 e conecte-o ao Azure AI Search.
  4. Converse por chat e faça perguntas sobre seus dados usando o modelo Treinado do Azure OpenAI do seu aplicativo e dos dados em 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. A RAG permite que o modelo aplique uma base de conhecimentos mais ampla, incorporando fontes externas relevantes no processo de geração, resultando em respostas mais abrangentes e informadas. Para obter mais informações sobre o aterramento de LLMs, consulte Aterramento de LLMs - Microsoft Community Hub.

Prompts e engenharia de prompts

Um prompt refere-se a texto ou informações específicas que servem como uma instrução para um LLM, ou como dados contextuais nos quais o LLM pode se basear. 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 podem ser usados para gerar uma resposta de um LLM:

  • 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 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 à 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 que estão 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, consulte as quotas e limites dos Modelos de Fundição Azure OpenAI no Azure AI Foundry.

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. As incorporações geralmente são aprendidas usando um modelo de aprendizado profundo, e os modelos de aprendizado de máquina e IA os utilizam como recursos. As incorporações também podem capturar semelhança semântica entre conceitos semelhantes. Por exemplo, ao gerar uma incorporação para as palavras person e human, esperaríamos que suas incorporações (representação vetorial) fossem semelhantes em valor, uma vez que as palavras também são semanticamente semelhantes.

O Azure OpenAI apresenta modelos para criar incorporações a partir de dados de texto. O serviço divide o texto em tokens e gera incorporações usando modelos pré-treinados pela OpenAI. Para saber mais, consulte Compreender embeddings em Azure OpenAI em Azure AI Foundry Models.

A pesquisa vetorial refere-se ao processo de encontrar 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 palavras semanticamente semelhantes em todo o dicionário e deve encontrar a palavra person como uma correspondência próxima. Essa proximidade, ou distância, é medida usando uma métrica de semelhança, como a semelhança de cosseno. Quanto mais próximos os vetores estiverem em semelhança, menor é a distância entre eles.

Considere um cenário em que você executa uma consulta sobre milhões de documentos para encontrar os documentos mais semelhantes em seus dados. Você pode criar incorporações para seus dados e consultar documentos 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. Também há compensações entre a pesquisa exaustiva e os métodos de pesquisa do vizinho mais próximo aproximado (ANN), incluindo latência, taxa de transferência, precisão e custo, tudo isso depende dos requisitos do seu aplicativo.

Os vetores no Mecanismo de Banco de Dados SQL podem ser armazenados e consultados de forma eficiente, conforme descrito nas próximas seções, permitindo a pesquisa exata do vizinho mais próximo com ótimo 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. Texto, imagens ou sons podem ser convertidos em incorporações. Os modelos OpenAI do Azure são capazes de transformar informações do mundo real em incorporações. Os modelos estão disponíveis como endpoints REST e assim podem ser facilmente consumidos a partir do SQL Database Engine usando o procedimento armazenado do sistema sp_invoke_external_rest_endpoint, disponível a partir do SQL Server 2025 (17.x) e Azure SQL Managed Instance 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 incorporações é apenas uma das opções de integração que você tem ao trabalhar com SQL Managed Instance e OpenAI. Você pode permitir que qualquer um dos modelos disponíveis acesse dados armazenados no Mecanismo de Banco de Dados SQL para criar soluções onde os usuários possam interagir com os dados, como o exemplo a seguir:

Captura de tela de um bot de IA respondendo à pergunta usando dados armazenados no SQL Server.

Para obter exemplos adicionais sobre como usar o Azure SQL e o OpenAI, consulte os seguintes artigos, que também se aplicam ao SQL Server e à Instância Gerenciada SQL do Azure:

Exemplos de vetores

O tipo de dados vetoriais dedicados permite o armazenamento eficiente e otimizado de dados vetoriais e vem com um conjunto de funções para ajudar os desenvolvedores a agilizar a implementação de pesquisa vetorial e de 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, revise Pesquisa vetorial e índices vetoriais 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)

Implemente padrões RAG com o Mecanismo de Banco de Dados SQL e a Pesquisa de IA do Azure. 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 da Pesquisa de IA do Azure com o Azure OpenAI e o 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 SQL do Azure:

Aplicações inteligentes

O Mecanismo de Banco de Dados SQL pode ser usado para criar aplicativos inteligentes que incluem recursos de IA, como recomendadores, e Geração Aumentada de Recuperação (RAG), como demonstra o diagrama a seguir:

Diagrama de diferentes recursos de IA para criar aplicativos inteligentes com o Banco de Dados SQL do Azure.

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:

Observação

A integração do LangChain e do Semantic Kernel baseiam-se no tipo de dados vetorial, 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 Sempre-atualizado.

Integração LangChain

LangChain é uma estrutura bem conhecida para o desenvolvimento de aplicações alimentadas 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:

Alguns exemplos sobre como usar o SQL do Azure com LangChain:

Exemplos de ponta a ponta:

Integração com Kernel Semântico

O Kernel Semântico é um SDK de código aberto que permite criar facilmente agentes que podem chamar seu código existente. Como um SDK altamente extensível, você pode usar o Kernel Semântico com modelos do OpenAI, Azure OpenAI, Hugging Face e muito mais. Ao combinar seu código C#, Python e Java existente com esses modelos, você pode criar agentes que respondem a perguntas e automatizam processos.

Um exemplo de como facilmente o Kernel Semântico ajuda a construir soluções habilitadas para IA está aqui:

  • 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.