- Il s’agissait d’un article, désormais supprimé, présentant le processus d’implémentation d’une application RAG basée sur SQL à partir d’un dataset Harry Potter mis en ligne illégalement sur Kaggle
- Azure SQL et Microsoft Fabric SQL DB prennent en charge la recherche vectorielle native, et
langchain-sqlserver permet la gestion d’un Vector Store
- Le flux couvre le chargement depuis Azure Blob Storage, le découpage du texte en chunks, la génération d’embeddings avec Azure OpenAI, puis le stockage des vecteurs dans SQL
- Utilisation de la recherche par similarité vectorielle et de filtres de métadonnées pour construire un système de Q&A précis
- Extension de l’implémentation jusqu’à une fonction de génération de fan fiction basée sur GPT4o en réutilisant le même vector store
- Lien Archive.is
Prise en charge vectorielle native d’Azure SQL et intégration avec LangChain
- Azure SQL et Microsoft Fabric SQL DB proposent en preview publique une fonction de recherche vectorielle native
- Avec la publication du package
langchain-sqlserver, SQL Server peut être géré comme LangChain Vector Store
- Installation et exemples de code fournis via les dépôts PyPI et GitHub
- En combinant Azure SQL DB, LangChain et un LLM, il est possible d’ajouter des fonctions d’IA générative avec seulement quelques lignes de code
Composition du dataset d’exemple
- Utilisation d’un dataset texte des 7 tomes de Harry Potter fourni sur Kaggle
- Contient 7 fichiers
.txt
- Dans la démo, seul le tome 1, Harry Potter and the Sorcerer’s Stone, est utilisé
- Un dataset largement connu est utilisé pour proposer un exemple facile à comprendre
Étapes de construction de l’application d’exemple
1. Installation du package langchain-sqlserver
- Installation du package d’intégration avec la commande
pip install langchain-sqlserver==0.1.1
- Activation des fonctionnalités de vector store basées sur SQL
2. Chargement des données depuis Azure Blob Storage et découpage en chunks
- Stockage puis chargement des fichiers texte Harry Potter dans Azure Blob Storage
- Utilisation de la fonction d’intégration AzureBlobStorage de LangChain
- Découpage des textes longs en petits chunks avec
langchain-text-splitter
- Pour répondre aux limites de tokens en entrée des embeddings Azure OpenAI
3. Définition des embeddings et de Chat Completion
- Utilisation d’Azure OpenAI pour générer des embeddings textuels pour chaque chunk
- Possibilité de remplacer par divers modèles d’embeddings proposés par LangChain
- Préparation du traitement question-réponse via la configuration de Chat Completion
4. Initialisation du Vector Store et insertion des documents
- Initialisation du Vector Store avec les embeddings AzureOpenAI
- Stockage des documents et des embeddings dans Azure SQL avec la fonction
add_documents
- Génération et stockage des vecteurs possibles avec peu de code
5. Exécution de la recherche par similarité
- Exécution d’une recherche par similarité vectorielle avec la fonction
similarity_search_with_score
- Prise en charge des filtres de métadonnées
- Possibilité de restreindre la portée de recherche selon des propriétés de métadonnées spécifiques
Cas d’usage 1 : construction d’un système de Q&A
- Implémentation d’un système de Q&A sur l’histoire basé sur SQL Vector Store et LangChain
- Pour chaque question utilisateur, recherche des 10 documents les plus pertinents avant génération de la réponse
- Création d’un retriever à partir de
vector_store
- Construction d’une chaîne question-réponse avec
create_stuff_documents_chain
- Définition d’un format de réponse structuré avec
ChatPromptTemplate
- Avec
create_retrieval_chain, les documents récupérés sont aussi renvoyés via la clé "context"
- Prise en charge de l’affichage des sources utilisées pour générer la réponse
Cas d’usage 2 : génération de fan fiction Harry Potter
- Implémentation d’une nouvelle fonction de génération de fan fiction par IA à partir du vector store
- Lorsqu’un utilisateur saisit un prompt, recherche de paragraphes pertinents
- Recherche de similarité contextuelle à partir des embeddings stockés dans le vector store SQL
- Regroupement des paragraphes retrouvés en une seule chaîne pour constituer le contexte d’entrée du modèle
- Transmission conjointe du contexte et du prompt utilisateur au modèle GPT4o
- Génération d’une nouvelle histoire intégrant des éléments du contexte existant
- Affichage également des informations sur les sources vectorielles référencées avec le résultat généré
Scénario d’utilisation intégré
- La combinaison du système de Q&A et de la génération de fan fiction permet d’offrir une expérience de lecture interactive
- Utilisation du Q&A lorsqu’il faut comprendre le contenu du livre
- Possibilité d’étendre une scène donnée ou de générer une fin alternative
Exemples de code et ressources
- Dépôt GitHub du notebook LangChain-SQL-RAG fourni
- Possibilité de demander des améliorations fonctionnelles via le portail de feedback Azure SQL et SQL Server
1 commentaires
Réactions sur Hacker News
Cette affaire chez Microsoft semble révéler un effondrement des processus plus fondamental qu’un simple problème de droit d’auteur
Si même les documents ne sont pas relus, on peut se demander dans quelle mesure le nouveau code l’est correctement
J’aimerais poser la question à la direction — parmi la sécurité, la qualité et l’innovation en IA, lequel de ces trois piliers compte vraiment
(Scott Hanselman, je vous apprécie, mais n’y répondez pas directement : faites absolument remonter ça au leadership)
À l’époque, on pouvait publier personnellement sans procédure d’approbation, et c’est ce qui faisait du blog un espace plus naturel et sincère
Cette affaire ressemble simplement à une erreur de jugement de quelqu’un, et le retrait du billet paraît être une mesure normale
Mais le plus important, c’est de savoir si l’équipe de l’auteur justifie une violation du droit d’auteur pour l’entraînement de l’IA
Non seulement les juristes internes, mais aussi des acteurs externes vont probablement se pencher sur la question
Le code peut causer de graves problèmes à cause de bugs, d’où l’existence de procédures de revue formelles,
alors que les documents n’affectent pas directement le fonctionnement du logiciel, ce qui explique qu’on n’y applique pas le même niveau de rigueur
Le fait qu’un document n’ait pas été relu ne signifie pas que le code ne l’est pas
Dans les grandes organisations, le niveau de vérification varie selon les équipes, et le code fait l’objet de contrôles bien plus stricts que la documentation
C’était presque du copier-coller de réponses Stack Overflow, et quand je suis tombé dessus en cherchant un message d’erreur,
je n’ai pas tant été en colère que simplement déçu
Le billet de blog de Microsoft renvoyait vers la page du dataset Harry Potter sur Kaggle
Cette page prétend être en CC0, donc dans le domaine public, mais elle pose manifestement un problème de droit d’auteur
En plus, le billet était en ligne depuis novembre 2024, et il est surprenant qu’il n’ait toujours pas été retiré
J’ai essayé de la signaler via la fonction « Report Dataset », mais j’ai été redirigé vers la page de signalement de copyright de Google
Là, ma demande a été rejetée avec le message disant que « si vous n’êtes pas l’ayant droit ou son représentant, vous ne pouvez pas signaler »
C’est une situation complètement ubuesque. Ce dataset est manifestement du vol
La responsabilité incombe peut-être surtout à la personne qui l’a mis en ligne avec une mauvaise licence
Mais quand on voit le nom « Harry Potter », n’importe qui sait que ce n’est pas dans le domaine public,
donc selon le bon sens, il sera difficile pour Microsoft d’échapper à toute responsabilité
Microsoft a fini par retirer la page concernée
Mais une copie conservée sur archive.is subsiste
C’était un exemple intitulé « Créer une app RAG en 5 minutes » avec Azure et GPT
C’est décevant de voir que ce site est encore utilisé
La vignette générée par IA du blog (lien vers l’image)
montrait un jeune Harry et son ami devant un logo Microsoft. C’est vraiment stupéfiant
Si le cadre avait été plus large, il n’y aurait sans doute pas eu de raccord entre les wagons
Je n’aime pas Microsoft, mais qualifier cet incident de « guide du piratage » me paraît excessif
Ce n’était qu’un exemple à visée de recherche, pas une intégration produit
La surréaction autour du monopole du copyright et du fair use est aussi embarrassante
Même pour de la recherche, l’entreprise a largement les moyens de payer une juste compensation pour les textes utilisés
La plupart des entreprises commerciales de LLM font des choses similaires
En pratique, une entreprise a donc publié sur son blog officiel un guide pour un acte illégal pour le grand public
Anthropic a déjà conclu un accord de 1,5 milliard de dollars dans une affaire de violation du droit d’auteur
Je n’aime pas non plus le système actuel du copyright, mais je ne peux pas accepter deux poids, deux mesures entre entreprises et particuliers
Ce n’était pas un guide du piratage, juste un article expliquant comment inclure un dataset dans SQL
Ce serait plutôt à Kaggle ou à l’uploader Shubham Maindola d’en répondre
La description de la source des données — « j’ai converti des ebooks Harry Potter en txt » — fait vraiment froid dans le dos
Et malgré ça, voir un score Kaggle de 10.0 est surprenant
Cet article date de 2024 et Kaggle héberge toujours les données
Je me demande pourquoi l’équipe de Rowling n’a encore rien fait
Avec environ 10 000 téléchargements sur Kaggle, il est possible que ça n’ait pas attiré l’attention
Mais c’est clairement allé trop loin
Il y avait déjà eu auparavant une affaire de plagiat liée à l’IA chez Microsoft,
et on avait déjà souligné à l’époque l’absence quasi totale de processus de validation interne
Fil connexe : « Microsoft morged my diagram »
Mais avec l’arrivée de modèles commerciaux, la situation a complètement changé
Des datasets comme Books3, contenant des centaines de milliers de livres sous droit d’auteur, ont aussi déjà été rendus publics
La page a déjà été supprimée, mais une copie dans le Web Archive subsiste
Il est inquiétant de voir que des personnes dépourvues de sens éthique fabriquent les technologies du futur
Si des gens passés par des processus de recrutement aussi stricts prennent ce genre de décision,
on peut se demander à quel point les décisions vraiment importantes sont risquées
Mais cela ne constitue en rien une excuse
On a maintenant l’impression d’être dans un monde où la propriété intellectuelle n’a plus de sens
D’où la blague : quelqu’un voudrait-il investir dans « une startup de romans où l’IA recrache Harry Potter tel quel »
Jusqu’ici, la seule chose que l’IA fait de manière fiable, c’est l’humour
Avec une ressemblance avec les produits existants présentée comme « purement fortuite »
Si une personne ordinaire le fait, elle perd toujours tout et finit en prison
Vu la trajectoire actuelle de Microsoft, ce genre d’incident n’a rien de surprenant
On a l’impression que, dans le Microsoft de 2026, le droit d’auteur et la propriété intellectuelle ne s’appliquent déjà plus