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.
Applies to:Banco de Dados SQL do Azure
SQL database in Fabric
- Banco de Dados SQL do Azure
SQL Server & Instância Gerenciada de SQL do Azure
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 Banco de Dados SQL do Azure e Fabric banco de dados SQL.
Assista a este vídeo na série Banco de Dados SQL do Azure essentials para obter uma breve visão geral da criação de um aplicativo pronto para IA:
Para obter amostras e exemplos, visite o repositório de Exemplos de IA do SQL.
Visão geral
Os grandes modelos de linguagem (LLMs) permitem que os desenvolvedores criem aplicativos alimentados por IA com uma experiência do usuário familiar.
O uso de LLMs em aplicativos traz maior valor e uma experiência do usuário aprimorada quando os modelos podem acessar os dados certos, no momento certo, do seu banco de dados do aplicativo. Esse processo é conhecido como RAG (Geração Aumentada de Recuperação). Banco de Dados SQL do Azure e Fabric banco de dados SQL têm muitos recursos que dão suporte a esse novo padrão, tornando-os ótimos bancos de dados para a criação de aplicativos inteligentes.
Os links a seguir fornecem uma amostra de código de várias opções para compilar aplicativos inteligentes:
| Opção de IA | Descrição |
|---|---|
| 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 completa usando um padrão comum que pode ser replicado em qualquer cenário. |
| Habilidades do Copilot no Banco de Dados SQL do Azure | Saiba mais sobre o conjunto de experiências assistidas por IA projetadas para simplificar o design, a operação, a otimização e a integridade de aplicativos controlados por Banco de Dados SQL do Azure. |
| Habilidades do Copilot no Fabric SQL banco de dados | Saiba mais sobre o conjunto de experiências assistidas por IA projetadas para simplificar o design, a operação, a otimização e a integridade de Fabric aplicativos controlados pelo banco de dados SQL. |
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. A área de superfície permanece restrita, pois 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 críticos para implementar o RAG com Azure OpenAI em Banco de Dados SQL do Azure ou Fabric banco de dados SQL.
Geração aumentada de recuperação (RAG)
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 contenham conhecimento específico do domínio relacionado à pergunta ou solicitação 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 Banco de Dados SQL do Azure pode ser:
- Inserir dados em uma tabela.
- Vincule Banco de Dados SQL do Azure 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 do seu aplicativo quanto do Banco de Dados SQL do Azure.
O padrão RAG, juntamente com a engenharia de prompt, aprimora a qualidade da resposta oferecendo informações mais 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
- Dicas: encaminhe a saída do LLM para a 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 prompt engineering. Para obter mais informações sobre prompts e práticas recomendadas para engenharia de prompts, consulte Serviço OpenAI do Azure.
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 que está sendo processada 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 Serviço OpenAI do Azure cotas e limites.
Vetores
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.
Inserções
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 Criando inserções com Azure OpenAI.
Para obter uma lista de respostas a perguntas comuns sobre vetores e inserções, consulte:
Pesquisa de vetor
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. Uma métrica de similaridade, como a similaridade de cosseno, mede essa proximidade ou distância. 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, pode realizar uma busca em vetores para encontrar os documentos mais semelhantes do seu conjunto de dados. No entanto, realizar uma busca em vetores 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 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 com eficiência vetores em Banco de Dados SQL do Azure, o que permite a pesquisa exata de vizinhos mais próxima com um ótimo desempenho. Você não precisa decidir entre precisão e velocidade: você pode ter ambos. O armazenamento de incorporações de vetores junto com os dados em uma solução integrada minimiza a necessidade de gerenciar a sincronização de dados e acelera o tempo de colocação no mercado para o desenvolvimento de aplicativos de IA.
Para obter mais detalhes sobre vetores e inserções, consulte:
Azure OpenAI
A incorporação é o processo de representação do 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 pontos de extremidade REST, para poder usá-los facilmente a partir do Banco de Dados SQL do Azure, usando o procedimento armazenado do sistema 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'));
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 o Banco de dados SQL e o OpenAI. Você pode permitir que qualquer um dos modelos disponíveis acesse os dados armazenados em Banco de Dados SQL do Azure 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 Banco de dados SQL e o OpenAI, confira os seguintes artigos:
- Gerar imagens com Serviço OpenAI do Azure (DALL-E) e Banco de Dados SQL do Azure
- Usando os Pontos de Extremidade REST do OpenAI com Banco de Dados SQL do Azure
Exemplos de vetores
O tipo de dados de vetor dedicado permite o armazenamento eficiente e otimizado de dados de vetor. Ele vem com um conjunto de funções para ajudar os desenvolvedores a simplificar a implementação de pesquisa de vetor e similaridade. Você pode calcular a distância entre dois vetores em uma linha de código usando a 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 com Banco de Dados SQL do Azure e Pesquisa de IA do Azure . Você pode executar modelos de chat com suporte em dados armazenados em Banco de Dados SQL do Azure, sem precisar treinar ou ajustar modelos, graças à integração de Pesquisa de IA do Azure com Azure OpenAI e Banco de Dados SQL do Azure. Executando modelos em seus dados, você pode conversar e analisar seus dados com maior precisão e velocidade.
- Azure OpenAI nos seus dados
- Retrieval Augmented Generation (RAG) em Pesquisa de IA do Azure
- Vector Search com Banco de Dados SQL do Azure e Pesquisa de IA do Azure
Aplicativos inteligentes
Você pode usar Banco de Dados SQL do Azure 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 Retrieval Augmented Generation para criar um assistente de sessão de conferência.
Para obter mais detalhes sobre aplicativos inteligentes, consulte:
Integração do LangChain
O LangChain é uma estrutura bem 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 SQL do Azure com LangChain:
- Exemplos LangChain com langchain_sqlserver
- Getting Started with LangChain and Banco de Dados SQL do Azure
Exemplos de ponta a ponta:
- Construa um chatbot nos seus próprios dados em 1 hora com SQL do Azure, Langchain e Chainlit: Use o padrão RAG para criar um chatbot nos seus próprios dados usando Langchain para orquestrar chamadas LLM e 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 que mostra a facilidade com que Kernel semântico ajuda você a criar uma solução habilitada 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.
Recursos do Microsoft Copilot no Banco de Dados SQL do Azure
Microsoft Copilot no Banco de Dados SQL do Azure (versão prévia) é um conjunto de experiências assistidas por IA projetadas para simplificar o design, a operação, a otimização e a integridade de aplicativos controlados por Banco de Dados SQL do Azure.
Copilot fornece respostas relevantes para perguntas do usuário, simplificando o gerenciamento de banco de dados usando contexto de banco de dados, documentação, exibições de gerenciamento dinâmico, Repositório de Consultas e outras fontes de conhecimento. Por exemplo:
- Os administradores de banco de dados podem gerenciar os bancos de dados de forma independente e resolver problemas ou saber mais sobre o desempenho e os recursos do banco de dados.
- Os desenvolvedores podem fazer perguntas sobre seus dados como fariam em texto ou conversa para gerar uma consulta T-SQL. Os desenvolvedores também podem aprender a escrever consultas mais rapidamente por meio de explicações detalhadas da consulta gerada.
Observação
As funcionalidades do Microsoft Copilot no Banco de Dados SQL do Azure estão em fase de prévia atualmente para um número limitado de adotantes iniciais. Para se inscrever neste programa, visite Request Access to Copilot in Banco de Dados SQL do Azure: Preview.
Microsoft Copilot no banco de dados SQL Fabric (versão prévia)
Copilot para o banco de dados SQL no Microsoft Fabric inclui assistência de IA integrada com os seguintes recursos:
Code completion: comece a escrever T-SQL no editor de consultas SQL e o Copilot automaticamente gera uma sugestão de código que ajuda a completar sua consulta. Pressione Tab para aceitar a sugestão de código ou continue digitando para ignorá-la.
Ações rápidas: na faixa de opções do editor de consultas SQL, as opções Correção e Explicação são ações rápidas. Realce uma consulta SQL e selecione um dos botões de ação rápida para executar a ação selecionada em sua consulta.
Fix: Copilot corrige erros no código à medida que surgem mensagens de erro. Cenários de erro podem incluir código T-SQL incorreto ou sem suporte, ortografias incorretas e muito mais. Copilot também fornece comentários que explicam as alterações e sugerem as práticas recomendadas do SQL.
Explain: Copilot fornece explicações de linguagem natural do esquema de consulta e banco de dados SQL no formato de comentários.
Chat: use o painel de chat para fazer perguntas para Copilot por meio da linguagem natural. Copilot responde com uma consulta SQL gerada ou linguagem natural com base na pergunta feita.
Linguagem Natural para SQL: gere código T-SQL a partir de solicitações de texto sem formatação e obtenha sugestões de perguntas a serem feitas para acelerar seu fluxo de trabalho.
Q&A baseado em
Documento : Faça perguntas ao Copilot sobre as capacidades gerais do banco de dados SQL, e ele responde em linguagem natural. Copilot também ajuda a localizar a documentação relacionada à sua solicitação.
Copilot para o banco de dados SQL usa nomes de tabela e exibição, nomes de coluna, chave primária e metadados de chave estrangeira para gerar código T-SQL. Copilot para o banco de dados SQL não usa dados em tabelas para gerar sugestões de T-SQL.
Conteúdo relacionado
- Criar e implantar um recurso Serviço OpenAI do Azure
- Modelos de inserções
- Exemplos e exemplos de IA do SQL
- Perguntas frequentes sobre as habilidades do Microsoft Copilot no Banco de Dados SQL do Azure (versão prévia)
- Perguntas frequentes sobre IA Responsável do Microsoft Copilot para Azure (versão prévia)