This repository houses a powerful tool that blends Streamlit, Elasticsearch, and cutting-edge language models like Llama3. It's designed to simplify querying documents via conversation vectors embedded into a dynamic, user-friendly web interface.
- Document Upload: Upload JSON files with ease.
- Efficient Search: Powered by Elasticsearch.
- Natural Language Queries: Harness models like Llama3 to query using everyday language.
- Interactive UI: Real-time updates and feedback.
- Scalable: Built to manage extensive data volumes and complex queries.
- Python 3.8+
- Elasticsearch 7.x+
- Ollama
- llama_index
- Streamlit
- poetry
Clone and set up the project:
git clone https://github.com/vitorhcsousa/rag-llama3-elasticsearch.git
cd rag-llama3-elasticsearch
poetry install
Launch the app:
poetry run streamlit run app.py
- app.py: The Streamlit application entry point.
- index.py: Handles document indexing in Elasticsearch.
- query.py: Manages the query engine setup and execution.
- assets/: Static files like images for the UI.
Interested in contributing? Great! Here's how:
- Fork the repo.
- Create your feature branch (git checkout -b feature-branch).
- Commit your changes (git commit -am 'Add some feature').
- Push to the branch (git push origin feature-branch).
- Create a new Pull Request.
This project has as reference:
"Using RAG with LlamaIndex and Elasticsearch", Elastic Search Labs Blog, available at: https://www.elastic.co/search-labs/blog/rag-with-llamaIndex-and-elasticsearch. ↩