Spaces:
Sleeping
title: Multilingual RAG Question-Answering System
emoji: πβοΈπ€
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 4.7.1
app_file: app.py
pinned: false
license: ecl-2.0
Multilingual RAG Question-Answering System
This project implements a Retrieval-Augmented Generation (RAG) system for question answering in multiple languages. It uses advanced language models and embeddings to provide accurate answers based on provided texts.
Developer
Developed by Ramon Mayor Martins (2024)
- Email: rmayormartins@gmail.com
- Homepage: https://rmayormartins.github.io/
- Twitter: @rmayormartins
- GitHub: https://github.com/rmayormartins
- Space: https://huggingface.co/rmayormartins
Technologies Used
LangChain: Framework for developing applications powered by language models, providing tools for document loading, text splitting, and creating chains of operations.
Sentence Transformers: Library for state-of-the-art text embeddings, using the multilingual-e5-large model for superior multilingual understanding.
Flan-T5: Advanced language model from Google that excels at various NLP tasks, particularly strong in multilingual text generation and understanding.
Chroma DB: Lightweight vector database for storing and retrieving text embeddings efficiently, enabling semantic search capabilities.
Gradio: Framework for creating user-friendly web interfaces for machine learning models, providing an intuitive way to interact with the RAG system.
HuggingFace Transformers: Library providing access to state-of-the-art transformer models, tokenizers, and pipelines.
PyTorch: Deep learning framework that powers the underlying models and computations.
Key Features
- Multilingual Support: Process and answer questions in multiple languages (English, Spanish, Portuguese, and more)
- Document Chunking: Smart text splitting for handling long documents
- Semantic Search: Uses advanced embeddings for accurate information retrieval
- Source Attribution: Provides references to the relevant text passages used for answers
- User-Friendly Interface: Simple web interface for text input and question answering
How it Works
Text Processing:
- User inputs a text document
- System splits text into manageable chunks
- Chunks are converted into embeddings using multilingual-e5-large
Knowledge Base Creation:
- Embeddings are stored in Chroma vector database
- Document metadata is preserved for source attribution
Question Answering:
- User asks a question in any supported language
- System retrieves relevant document chunks
- Flan-T5 generates a coherent answer based on retrieved context
- Sources are displayed for transparency
How to Use
- Open the application interface
- Paste your reference text in the "Base Text" field
- Enter your question in any supported language
- Receive an answer along with relevant source excerpts
Example Use Cases
- Document analysis and comprehension
- Educational Q&A systems
- Multilingual information retrieval
- Research assistance
- Content summarization
Technical Architecture
- Embedding Model: intfloat/multilingual-e5-large
- Language Model: google/flan-t5-large
- Vector Store: Chroma
- Chunk Size: 500 characters
- Context Window: 4 documents
Local Development
pip install -r requirements.txt
python app.py
Deployment
This application is deployed on Hugging Face Spaces. You can access it at [https://huggingface.co/spaces/rmayormartins/nlp-rag-langchain].
Note
The system's responses are generated solely based on the provided text. The quality of answers depends on the content and clarity of the input text.