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:Banco de Dados SQL do Azure
Banco de Dados SQL no 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 Banco de Dados SQL do Azure e o Banco de Dados SQL do Fabric, que compartilha muitos desses recursos do Banco de Dados SQL do Azure.
Para obter amostras e exemplos, visite o repositório de Exemplos de IA do SQL.
Assista a este vídeo na série essentials do Banco de Dados SQL do Azure para obter uma breve visão geral da criação de um aplicativo pronto para IA:
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 Geração Aumentada de Recuperação (RAG), e tanto o Banco de Dados SQL do Azure quanto o Banco de Dados SQL do Fabric têm muitos recursos que dão suporte a esse novo padrão, o que os torna um banco de dados excelente para compilar 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 |
---|---|
Azure OpenAI | Gere incorporações para o RAG e integre a qualquer modelo compatível com o OpenAI do Azure. |
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 com 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 de 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 pelo Banco de Dados SQL do Azure. |
Habilidades de copilot no Banco de Dados SQL do Fabric | 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 dos aplicativos orientados pelo Banco de Dados SQL do Fabric. |
Conceitos importantes para implementar o RAG com o OpenAI do Azure
Esta seção inclui os conceitos importantes que são críticos para implementar o RAG com o OpenAI do Azure no Banco de Dados SQL do Azure ou no Banco de Dados SQL do Fabric.
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 simples de RAG utilizando o Banco de Dados SQL do Azure poderia ser:
- Inserir dados em uma tabela.
- Vincule o Banco de Dados SQL do Azure à Pesquisa de IA do Azure.
- Crie um modelo GPT4 do Azure OpenAI e conecte-o à Pesquisa de IA do Azure.
- Converse e faça perguntas sobre seus dados usando o modelo treinado do OpenAI do Azure de seu aplicativo e do Banco de Dados SQL do Azure.
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 habilita o modelo para 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 os LLMs de fundamento, veja LLMs de fundamento – Microsoft Community Hub.
Solicitações e engenharia dos prompts
Uma solicitação refere-se a um texto ou uma informação específica que serve 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 declaração ou até mesmo um trecho de código.
Solicitações de exemplo que podem ser usadas para gerar uma resposta de um 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
- 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 a engenharia dos 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
seria dividida em tokens como ham
, bur
e ger
, enquanto uma palavra curta e comum como pear
seria considerada um único token.
No OpenAI do Azure, 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á sendo processada também afeta o tempo de resposta e a taxa de transferência dos modelos. Existem limites para a quantidade de tokens que cada modelo pode receber em uma única solicitação/resposta do OpenAI do Azure. Para saber mais, confira as cotas e os limites do Serviço OpenAI do Azure.
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 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 inserções usando modelos pré-treinados pelo OpenAI. Para saber mais, confira Como criar inserções com o Azure OpenAI.
Pesquisa de vetor
A busca em vetores refere-se ao processo de encontrar todos os vetores em um conjunto de dados que sejam semanticamente semelhantes a um vetor de consulta específico. Portanto, um vetor de consulta para a palavra human
pesquisa em todo o dicionário 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 semelhantes forem os vetores, 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 incorporações para seus dados e documentos de consulta usando o OpenAI do Azure. 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 de aproximação 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 Banco de Dados SQL do Azure podem ser armazenados e consultados com eficiência, conforme descrito nas próximas seções, permitindo a pesquisa exata de vizinhos mais próxima com ó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.
OpenAI do Azure
A incorporação é o processo de representação do mundo real como dados. Texto, imagens ou sons podem ser convertidos em incorporações. Os modelos do 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, portanto, podem ser facilmente consumidos do Banco de Dados SQL do Azure usando o procedimento armazenado no 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 dados armazenados no Banco de Dados SQL do Azure para criar soluções em que seus 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 o Serviço OpenAI do Azure (DALL-E) e o Banco de Dados SQL do Azure
- Usando endpoints REST do OpenAI com o 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 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 função VECTOR_DISTANCE
. Para obter mais informações e exemplos, consulte a pesquisa vetor 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 de RAG com o Banco de Dados SQL do Azure e Pesquisa de IA do Azure. Graças à integração da Pesquisa de IA do Azure com o Azure OpenAI e o Banco de Dados SQL do Azure, você pode executar modelos de chat compatíveis em dados armazenados no Banco de Dados SQL do Azure sem precisar treinar ou ajustar modelos. Executar modelos em seus dados permite analisar e conversar sobre seus dados com mais precisão e velocidade.
- Azure OpenAI aplicado aos seus dados
- RAG (Geração Aumentada de Recuperação) no Azure AI Search
- Vector Search com o Banco de Dados SQL do Azure e o Azure AI Search
Aplicativos inteligentes
É possível usar o Banco de Dados SQL do Azure para criar aplicativos inteligentes que incluem recursos de IA, como recomendadores, e a Geração Aumentada de Recuperação (RAG) conforme apresentado no 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.
- Usar a Geração Aumentada de Recuperação para criar um assistente de sessão de conferência
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 com base em seus dados, consulte:
- langchain-sqlserver Pacote PyPI
Alguns exemplos sobre como usar o SQL do Azure com LangChain:
- Exemplos de LangChain com langchain_sqlserver
- Introdução ao LangChain e ao Banco de Dados SQL do Azure
Exemplos de ponta a ponta:
- Crie um chatbot com seus próprios dados em 1 hora com SQL do Azure, Langchain e Chainlit: Crie um chatbot usando o padrão RAG com seus próprios dados usando Langchain para orquestrar chamadas LLM e usando Chainlit para a interface do usuário.
Integração do Kernel Semântico
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 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 quão facilmente o Kernel Semântico ajuda 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.
Habilidades do Copilot da Microsoft no Azure SQL Database
O 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 dos aplicativos controlados pelo Banco de Dados SQL do Azure.
O 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 habilidades do Microsoft Copilot no Banco de Dados SQL do Azure estão no momento em versão Preview para um número limitado de usuários pioneiros. Para se inscrever neste programa, visite Solicitar acesso ao Copilot no Banco de Dados SQL do Azure: versão prévia.
Microsoft Copilot no Banco de Dados SQL do Fabric (versão prévia)
O Copilot para banco de dados SQL no Microsoft Fabric (versão prévia) inclui assistência integrada de IA com os seguintes recursos:
Preenchimento de código: comece a escrever T-SQL no editor de consultas SQL e o Copilot gerará automaticamente uma sugestão de código para ajudar a concluir sua consulta. A tecla Tab aceita a sugestão de código ou continua digitando para ignorar a sugestão.
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 de sua escolha e selecione um dos botões de ação rápida para executar a ação selecionada em sua consulta.
Correção: O Copilot pode corrigir erros no seu código enquanto surgem mensagens de erro. Os cenários de erro podem incluir código T-SQL incorreto/sem suporte, ortografias incorretas e muito mais. O Copilot também fornecerá comentários que explicam as alterações e sugerem práticas recomendadas de SQL.
Explicar: O Copilot pode fornecer explicações de linguagem natural de sua consulta SQL e esquema de banco de dados no formato de comentários.
Painel de chat: use o painel de chat para fazer perguntas ao Copilot por meio da linguagem natural. O Copilot responde com uma consulta SQL gerada ou linguagem natural dependendo da pergunta.
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 do Copilot sobre os recursos gerais do banco de dados SQL e ele responde em linguagem natural. O Copilot também ajuda a encontrar a documentação relacionada à sua solicitação.
O Copilot para banco de dados SQL utiliza nomes de tabelas e exibições, nomes de coluna, chave primária e metadados de chave estrangeira para gerar código T-SQL. O Copilot para 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 do 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 para o Microsoft Copilot para Azure (versão prévia)