Dog Love is a Retrieval-Augmented Generation (RAG) application built with Streamlit, LlamaIndex, and OpenAI. It retrieves information about popular dog breeds from Wikipedia, creates a searchable vector index, and answers user questions using an LLM.
- Ask natural language questions about dog breeds.
- Retrieves relevant information from Wikipedia.
- Uses vector embeddings for semantic search.
- Generates accurate, context-aware responses with OpenAI.
- Displays the retrieved context used to answer each question.
- Automatically caches the index for faster subsequent runs.
- Python
- Streamlit
- LlamaIndex
- OpenAI API
- Wikipedia API
- python-dotenv
- Labrador Retriever
- Golden Retriever
- Afghan Hound
- Australian Cattle Dog
- Beagle
- Border Collie
- Chihuahua
- Dachshund
- Dobermann
- German Shepherd
- Indian Pariah Dog
- Siberian Husky
-
Clone the repository.
-
Install dependencies:
pip install -r requirements.txt- Create a
.envfile in the project directory:
OPENAI_API_KEY=your_api_key_here- Run the application:
streamlit run main.py.
├── main.py
├── .env
├── wiki_rag/
└── README.md
- Downloads Wikipedia articles for selected dog breeds.
- Converts the articles into documents.
- Creates vector embeddings and stores them locally.
- Retrieves the most relevant documents for a user's question.
- Uses an OpenAI language model to generate an answer from the retrieved context.
- Add support for more dog breeds.
- Include breed images.
- Filter results by breed.
- Allow users to select different language models.
- Support additional knowledge sources beyond Wikipedia.
This project is intended for educational and learning purposes.