Skip to content

attarazonad-stack/rag_wikipedia-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rag_wikipedia-lab

LangChain + ChromaDB + SentenceTransformers

Este proyecto implementa un sistema de retrieval-augmented generation (RAG) utilizando datos de Wikipedia para generar un resumen factual mediante recuperación vectorial.

🎯 Objetivo

Construir un pipeline RAG usando herramientas open-source.

Extraer, procesar y almacenar texto de Wikipedia.

Generar un resumen factual basado en retrieval.

Comparar el enfoque RAG con el enfoque multiagente (Tarea 1).

⚙️ Pasos del Proyecto 0️⃣ Configuración del entorno

Instalar dependencias:

pip install wikipedia-api sentence-transformers chromadb langchain langchain-community pip install transformers torch pandas numpy markdown

1️⃣ Creación de conjuntos de datos

Extraer datos desde Wikipedia usando:

import wikipediaapi wiki = wikipediaapi.Wikipedia('en') page = wiki.page("Federated_learning")

Procesos:

Extraer el texto principal.

Dividirlo en fragmentos de ~300 palabras.

Guardarlo en:

/data/wiki_corpus.csv

Columnas: id, title, text

2️⃣ Embeddings + Almacén vectorial (ChromaDB)

Crear embeddings e insertar:

from sentence_transformers import SentenceTransformer import chromadb

model = SentenceTransformer("all-MiniLM-L6-v2") client = chromadb.Client() collection = client.create_collection("wiki_ai")

Insertar todos los fragmentos con:

texto

metadatos

embeddings generados

3️⃣ Canalización de consultas (LangChain + Ollama)

Crear la cadena RAG:

from langchain.chains import RetrievalQA from langchain.llms import Ollama from langchain.vectorstores import Chroma

Ejemplo:

qa = RetrievalQA.from_chain_type( llm=Ollama(model="mistral"), chain_type="stuff", retriever=Chroma(...).as_retriever() )

qa.run("Explain federated learning challenges in healthcare.")

4️⃣ Generar y guardar resumen

A partir de los mejores fragmentos recuperados, generar un resumen coherente de 400–500 palabras y guardarlo como:

/outputs/rag_summary.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published