- Um texto que apresentava o processo de implementação de uma aplicação RAG baseada em SQL usando um dataset de Harry Potter enviado ilegalmente ao Kaggle, mas que já foi removido
- Azure SQL e Microsoft Fabric SQL DB oferecem suporte em prévia pública a busca vetorial nativa, e com
langchain-sqlserver é possível gerenciar um Vector Store
- Fluxo composto por carregamento a partir do Azure Blob Storage, divisão do texto em chunks, geração de embeddings com Azure OpenAI e armazenamento dos vetores no SQL
- Construção de um sistema preciso de perguntas e respostas usando busca por similaridade vetorial e filtros de metadados
- Expansão da implementação para incluir até mesmo um recurso de geração de fanfic baseado em GPT4o usando o mesmo armazenamento vetorial
- Link do Archive.is
Suporte vetorial nativo no Azure SQL e integração com LangChain
- Azure SQL e Microsoft Fabric SQL DB oferecem em prévia pública recursos nativos de busca vetorial
- Com o lançamento do pacote
langchain-sqlserver, é possível gerenciar o SQL Server como um LangChain Vector Store
- Instalação e exemplos de código disponíveis via repositórios no PyPI e GitHub
- Ao combinar Azure SQL DB, LangChain e LLM, é possível adicionar recursos de IA generativa com apenas algumas linhas de código
Estrutura do dataset de exemplo
- Uso do dataset de texto com os 7 livros de Harry Potter disponibilizado no Kaggle
- Inclui 7 arquivos
.txt
- Na demonstração, é usado apenas o livro 1, Harry Potter and the Sorcerer’s Stone
- Uso de um dataset amplamente conhecido para criar um exemplo fácil de entender
Etapas de construção da aplicação de exemplo
1. Instalação do pacote langchain-sqlserver
- Instalação do pacote de integração com o comando
pip install langchain-sqlserver==0.1.1
- Ativação dos recursos de armazenamento vetorial baseados em SQL
2. Carregamento e chunking dos dados no Azure Blob Storage
- Armazenamento e carregamento dos arquivos de texto de Harry Potter no Azure Blob Storage
- Uso do recurso de integração com AzureBlobStorage do LangChain
- Divisão de textos longos em pequenos chunks com
langchain-text-splitter
- Objetivo de contornar o limite de tokens de entrada dos embeddings do Azure OpenAI
3. Definição de embeddings e Chat Completion
- Uso do Azure OpenAI para gerar embeddings de texto para cada chunk
- Possibilidade de substituir por vários outros modelos de embedding oferecidos pelo LangChain
- Preparação do processamento de perguntas e respostas por meio da configuração de Chat Completion
4. Inicialização do Vector Store e inserção de documentos
- Inicialização do Vector Store junto com embeddings do AzureOpenAI
- Armazenamento de documentos e embeddings no Azure SQL com a função
add_documents
- Geração e armazenamento dos vetores com pouco código
5. Execução da busca por similaridade
- Execução da busca por similaridade vetorial com a função
similarity_search_with_score
- Suporte a filtros de metadados
- Permite limitar o escopo da busca com base em atributos específicos de metadados
Caso de uso 1: construção de um sistema de perguntas e respostas
- Implementação de um sistema de perguntas e respostas sobre a história com base em SQL Vector Store e LangChain
- Geração de respostas após buscar os 10 documentos mais relevantes para a pergunta do usuário
- Criação de um retriever baseado em
vector_store
- Montagem da cadeia de perguntas e respostas com
create_stuff_documents_chain
- Definição de um formato de resposta estruturado com
ChatPromptTemplate
- Ao usar
create_retrieval_chain, os documentos recuperados também são retornados na chave "context"
- Suporte ao recurso de exibição das fontes usadas na geração da resposta
Caso de uso 2: geração de fanfic de Harry Potter
- Implementação de um novo recurso de geração de fanfic por IA com base no armazenamento vetorial
- Quando o usuário insere um prompt, são buscados parágrafos relacionados
- Busca por similaridade de contexto com base nos embeddings armazenados no armazenamento vetorial SQL
- Organização dos parágrafos recuperados em uma única string para formar o contexto de entrada do modelo
- Envio do contexto junto com o prompt do usuário ao modelo GPT4o
- Geração de uma nova história refletindo elementos do contexto existente
- Exibição das informações das fontes vetoriais consultadas junto com o resultado gerado
Cenário de uso integrado
- Combinação do sistema de perguntas e respostas com o recurso de geração de fanfic para oferecer uma experiência de leitura interativa
- Uso do Q&A quando é necessário entender o conteúdo do livro
- Possibilidade de expandir cenas específicas ou criar finais alternativos
Exemplos de código e recursos
- Repositório GitHub do notebook LangChain-SQL-RAG disponível
- É possível solicitar melhorias do recurso por meio do portal de feedback do Azure SQL e SQL Server
1 comentários
Comentários do Hacker News
Este caso da Microsoft parece mostrar um colapso de processo mais fundamental do que uma simples questão de direitos autorais
Se nem um documento é revisado, fica a dúvida de qual é a chance de código novo estar sendo revisado corretamente
Dá vontade de perguntar à liderança — qual dos três pilares ela pretende escolher: segurança, qualidade ou inovação em IA
(Scott Hanselman, gosto de você, mas por favor não responda pessoalmente; só garanta que isso chegue à liderança)
Na época, eu podia publicar por conta própria sem processo de aprovação, e por isso o blog era um espaço mais natural e sincero
Este caso parece simplesmente resultado do mau julgamento de alguém, e remover o post parece ter sido a medida óbvia
Mais importante, porém, é saber se a equipe dessa pessoa está justificando violação de direitos autorais para treinamento de IA
Parece provável que não só os advogados internos, mas também gente de fora, vá examinar essa questão
No código, existe um processo formal de revisão porque bugs podem causar problemas graves,
mas documentos não afetam diretamente o comportamento do software, então o mesmo nível de rigor não costuma ser aplicado
O fato de um documento não ter sido revisado não significa que o código também não seja
Em organizações grandes, níveis de validação diferentes são aplicados entre departamentos, e o código sofre controles bem mais rígidos do que a documentação
Era praticamente uma cópia de uma resposta do Stack Overflow, e quando encontrei isso pesquisando uma mensagem de erro,
em vez de ficar com raiva, fiquei só decepcionado
O post do blog da Microsoft estava linkando para a página do dataset Harry Potter no Kaggle
A página afirma ser CC0, ou seja, domínio público, mas claramente há potencial problema de direitos autorais
Além disso, o post estava no ar desde novembro de 2024, e ainda não ter sido removido é surpreendente
Tentei denunciar pela função “Report Dataset”, mas fui redirecionado para a página de denúncia de direitos autorais do Google
Só que fui barrado com a mensagem de que “se você não for o titular dos direitos autorais ou seu representante, não pode denunciar”
Situação totalmente cômica. Esse dataset é claramente roubado
É mais provável que a responsabilidade seja de quem fez o upload com licença incorreta
Ainda assim, qualquer pessoa que veja o nome “Harry Potter” sabe que isso não é domínio público,
então, pelo senso comum, é difícil a Microsoft escapar de responsabilidade
A Microsoft acabou removendo a página em questão
Mas ainda existe uma cópia preservada no archive.is
Era um exemplo com Azure e GPT sob o título “Build a RAG app in 5 minutes”
Ainda é decepcionante ver gente usando esse site
A miniatura gerada por IA do blog (link da imagem)
mostrava um Harry jovem e um amigo na frente de um logo da Microsoft. Realmente impressionante
Se o quadro fosse mais aberto, provavelmente não haveria engate entre os vagões
Eu não gosto da Microsoft, mas chamar isso de “guia de pirataria” é exagerado
Isto é apenas um exemplo para pesquisa, não uma integração de produto
O excesso de reação em torno de monopólio autoral e uso justo também chega a ser vergonhoso
Mesmo para pesquisa, ela tem plena condição de pagar uma compensação justa pelos textos que usou
A maioria das empresas comerciais de LLM está fazendo algo parecido
Uma empresa acabou orientando, em seu blog oficial, uma conduta que seria ilegal para uma pessoa comum
Há também o caso da Anthropic, que fechou acordo de 1,5 bilhão de dólares por violação de direitos autorais
Eu também detesto o sistema atual de direitos autorais, mas não dá para aceitar dois pesos e duas medidas para empresas e indivíduos
Isso não era um guia de pirataria, mas simplesmente um post explicando como incluir o dataset em SQL
Na verdade, quem deveria responder por isso é o Kaggle ou o uploader, Shubham Maindola
A descrição da origem dos dados — “converti os ebooks de Harry Potter para txt” — é assustadora demais
E ainda assim o Kaggle score é 10.0, o que é espantoso
O post foi publicado em 2024 e o Kaggle continua hospedando os dados
Fico me perguntando por que o lado da Rowling ainda não tomou nenhuma medida
O número de downloads no Kaggle era na casa dos 10 mil, então talvez não tenha chamado atenção
Mas isso claramente passou dos limites
Já houve antes um caso de plágio relacionado a IA na Microsoft,
e na época também apontaram que quase não havia processo de revisão interna
Tópico relacionado: “Microsoft morged my diagram”
Agora, com a chegada de modelos comerciais, a situação mudou completamente
Datasets como o Books3, contendo centenas de milhares de livros protegidos por direitos autorais, também já foram divulgados publicamente
A página já foi apagada, mas ainda há uma cópia no Web Archive
É preocupante pensar que pessoas sem senso ético estão construindo a tecnologia do futuro
Se pessoas que passaram por processos seletivos tão rigorosos fazem esse tipo de julgamento,
fico imaginando o quão arriscadas podem ser as decisões realmente importantes
Mas isso não serve de absolvição
Agora parece que vivemos num mundo em que propriedade intelectual perdeu o sentido
Daí surgiu, em tom de brincadeira, a proposta de procurar investidores para “uma startup de romances em que a IA cospe Harry Potter exatamente como é”
Até agora, a única coisa que a IA faz consistentemente bem é humor
satirizando que qualquer semelhança com produtos existentes seria “mera coincidência”
Se uma pessoa comum fizer isso, ainda perde tudo e vai para a prisão
Dado o rumo atual da Microsoft, esse tipo de caso não surpreende nem um pouco
A atmosfera é de que, na Microsoft de 2026, lei de direitos autorais e propriedade intelectual simplesmente não se aplicam mais