- Aunque era un artículo que mostraba el proceso para implementar una aplicación RAG basada en SQL usando un dataset de Harry Potter subido ilegalmente a Kaggle, ya fue eliminado
- Azure SQL y Microsoft Fabric SQL DB ofrecen soporte en vista previa pública para búsqueda vectorial nativa, y con
langchain-sqlserver es posible gestionar un Vector Store
- Se plantea un flujo de cargar desde Azure Blob Storage, dividir texto en chunks, generar embeddings con Azure OpenAI y luego guardar los vectores en SQL
- Aprovecha búsqueda por similitud vectorial y filtros de metadatos para construir un sistema preciso de preguntas y respuestas
- También amplía la implementación para incluir una función de generación de fan fiction basada en GPT4o usando el mismo almacén vectorial
- Enlace de Archive.is
Soporte vectorial nativo de Azure SQL e integración con LangChain
- Azure SQL y Microsoft Fabric SQL DB ofrecen en vista previa pública una función de búsqueda vectorial nativa
- Con la publicación del paquete
langchain-sqlserver, SQL Server puede gestionarse como un LangChain Vector Store
- Hay instalación y código de ejemplo disponibles a través de los repositorios de PyPI y GitHub
- Al combinar Azure SQL DB, LangChain y LLM, es posible agregar funciones de IA generativa con solo unas pocas líneas de código
Configuración del dataset de ejemplo
- Se usa el dataset de texto de los 7 libros de Harry Potter disponible en Kaggle
- Incluye 7 archivos
.txt
- En la demo solo se usa el libro 1, Harry Potter and the Sorcerer’s Stone
- Se construye un ejemplo fácil de entender usando un dataset ampliamente conocido
Etapas para construir la aplicación de ejemplo
1. Instalar el paquete langchain-sqlserver
- Instalar el paquete de integración con el comando
pip install langchain-sqlserver==0.1.1
- Activa las funciones de almacén vectorial basadas en SQL
2. Cargar datos desde Azure Blob Storage y dividir en chunks
- Guardar y cargar los archivos de texto de Harry Potter en Azure Blob Storage
- Usar la integración AzureBlobStorage de LangChain
- Dividir textos largos en chunks pequeños con
langchain-text-splitter
- Para ajustarse al límite de tokens de entrada de los embeddings de Azure OpenAI
3. Definir embeddings y Chat Completion
- Usar Azure OpenAI para generar embeddings de texto para cada chunk
- También se pueden sustituir por distintos modelos de embeddings compatibles con LangChain
- Preparar el procesamiento de preguntas y respuestas mediante la configuración de Chat Completion
4. Inicializar el Vector Store e insertar documentos
- Inicializar el Vector Store junto con los embeddings de AzureOpenAI
- Guardar documentos y embeddings en Azure SQL con la función
add_documents
- Permite generar y almacenar vectores con poco código
5. Ejecutar búsqueda por similitud
- Ejecutar búsqueda de similitud vectorial con la función
similarity_search_with_score
- Soporta filtros de metadatos
- Permite limitar el rango de búsqueda con base en atributos específicos de metadatos
Caso de uso 1: construir un sistema de preguntas y respuestas
- Implementación de un sistema de preguntas y respuestas sobre la historia basado en SQL Vector Store y LangChain
- Para cada pregunta del usuario, recupera los 10 documentos más relevantes y luego genera una respuesta
- Crear un retriever basado en
vector_store
- Construir la cadena de preguntas y respuestas con
create_stuff_documents_chain
- Definir un formato de respuesta estructurado con
ChatPromptTemplate
- Al usar
create_retrieval_chain, los documentos recuperados también se devuelven bajo la clave "context"
- Soporta una función para mostrar las fuentes usadas en la generación de la respuesta
Caso de uso 2: generación de fan fiction de Harry Potter
- Implementación de una nueva función de generación de fan fiction con IA basada en el almacén vectorial
- Cuando el usuario introduce un prompt, se recuperan los párrafos relacionados
- Se busca similitud de contexto con base en los embeddings almacenados en el almacén vectorial SQL
- Los párrafos recuperados se organizan en una sola cadena para construir el contexto de entrada del modelo
- Se envían juntos el contexto y el prompt del usuario al modelo GPT4o
- Genera una nueva historia reflejando elementos del contexto existente
- Junto con el resultado generado, también se muestra la información de las fuentes vectoriales referenciadas
Escenario de uso integrado
- Al combinar el sistema de preguntas y respuestas con la generación de fan fiction, se ofrece una experiencia de lectura interactiva
- Si hace falta entender el contenido del libro, se usa el sistema de preguntas y respuestas
- También permite expandir una escena específica o generar un final alternativo
Código de ejemplo y recursos
- Se ofrece el repositorio de GitHub del notebook LangChain-SQL-RAG
- A través del portal de feedback de Azure SQL y SQL Server se pueden solicitar mejoras a la función
1 comentarios
Opiniones en Hacker News
Este incidente de Microsoft parece mostrar un colapso de procesos más fundamental que un simple problema de derechos de autor
Si ni siquiera se revisan los documentos, uno se pregunta qué tan probable es que el código nuevo esté siendo revisado correctamente
Dan ganas de preguntarle a la directiva cuál de estos tres pilares van a elegir: seguridad, calidad o innovación en IA
(Scott Hanselman, me caes bien, pero no respondas esto tú mismo; por favor asegúrate de hacérselo llegar al liderazgo)
En ese entonces podía publicar por mi cuenta sin proceso de aprobación, y por eso el blog era un espacio más natural y auténtico
Esto parece simplemente el resultado de una mala decisión de alguien, y bajar la publicación parece una medida totalmente razonable
Pero lo más importante es si el equipo de esa persona está justificando la infracción de copyright para entrenar IA
Parece probable que no solo los abogados internos, sino también gente de fuera, vayan a examinar este asunto
El código puede causar problemas graves por errores, por eso existe un proceso formal de revisión,
mientras que la documentación no afecta directamente el funcionamiento del software y por eso no se le aplica el mismo nivel de rigor
Que un documento no haya sido revisado no significa que el código tampoco lo haya sido
En organizaciones grandes, el nivel de validación varía entre departamentos, y el código tiene controles mucho más estrictos que la documentación
Eran prácticamente una copia de respuestas de Stack Overflow, y cuando me topé con eso buscando un mensaje de error,
más que enojarme, me sentí decepcionado
La publicación del blog de Microsoft enlazaba a la página del dataset de Harry Potter en Kaggle
Esa página afirma que es CC0, es decir, dominio público, pero claramente hay un posible problema de copyright
Además, sorprende que esa publicación hubiera estado arriba desde noviembre de 2024 y que todavía no la hubieran bajado
Traté de reportarla con la función “Report Dataset”, pero me redirigió a la página de reporte de copyright de Google
Pero me rechazó con el mensaje de que “si no eres el titular de los derechos o su representante, no puedes reportarlo”
Es una situación totalmente ridícula. Ese dataset es robo descarado
Más bien, es muy probable que la responsabilidad recaiga en quien lo subió con una licencia incorrecta
Aun así, cualquiera que vea el nombre “Harry Potter” sabe que no está en dominio público,
así que por sentido común a Microsoft le costará librarse de responsabilidad
Microsoft finalmente bajó la página
Pero quedó una copia preservada en archive.is
Era un ejemplo usando Azure y GPT con el título “Build a RAG app in 5 minutes”
Sigue siendo decepcionante que la gente use ese sitio
La miniatura generada por IA del blog (enlace a la imagen)
mostraba a un Harry joven y a un amigo frente al logo de Microsoft. Increíble de verdad
Supongo que si el encuadre hubiera sido más amplio, ni siquiera habrían aparecido las uniones entre vagones
No me gusta Microsoft, pero decir que esto era una “guía pirata” me parece excesivo
Esto era solo un ejemplo de investigación, no una integración de producto
El exceso de reacción en torno al monopolio del copyright y el uso justo también da hasta pena ajena
Incluso si era para investigación, tiene de sobra para pagar una compensación justa por el texto utilizado
La mayoría de las empresas de LLM comerciales están haciendo cosas parecidas
En otras palabras, una empresa publicó en su blog oficial instrucciones para hacer algo que sería ilegal para una persona común
Anthropic ya tuvo un caso de acuerdo por 1.5 mil millones de dólares por infracción de copyright
Yo también detesto el sistema actual de copyright, pero no se puede aceptar que se use una vara distinta para empresas y particulares
Esto no era una guía pirata, sino una publicación que simplemente explicaba cómo meter un dataset en SQL
Más bien, la responsabilidad debería recaer en Kaggle o en el uploader, Shubham Maindola
La descripción del origen de los datos, “convertí los ebooks de Harry Potter a txt”, da escalofríos
Y aun así, sorprende que Kaggle le dé una calificación de 10.0
La publicación es de 2024 y Kaggle sigue alojando los datos
Da curiosidad por qué el equipo de Rowling todavía no ha tomado ninguna medida
Es posible que no llamara la atención porque Kaggle tenía unas 10 mil descargas
Pero esto claramente cruzó la línea
Microsoft ya había tenido antes un caso de plagio relacionado con IA,
y en ese momento también se señaló que casi no había proceso interno de revisión
Hilo relacionado: “Microsoft morged my diagram”
Pero ahora que existen modelos comerciales, la situación cambió por completo
Incluso se han publicado datasets como Books3 con cientos de miles de libros protegidos por copyright
La página ya fue eliminada, pero queda una copia en Web Archive
Preocupa que personas sin sentido ético estén construyendo la tecnología del futuro
Si personas que pasaron por procesos de contratación tan estrictos toman este tipo de decisiones,
da miedo pensar qué tan arriesgadas serán las decisiones realmente importantes
Pero eso no puede servirles de excusa
Parece que ya vivimos en un mundo donde la propiedad intelectual dejó de importar
Así que alguien bromea con buscar inversionistas para una “startup de novelas donde la IA escupe Harry Potter tal cual”
Hasta ahora, lo único que la IA hace de forma consistente y bien es el humor
satirizando que cualquier parecido con productos existentes sería “mera coincidencia”
Si lo hace una persona común, todavía puede perderlo todo e ir a la cárcel
Viendo cómo actúa Microsoft hoy en día, esto ya no sorprende para nada
En el Microsoft de 2026 da la impresión de que las leyes de copyright y propiedad intelectual ya no aplican