description = """ ## 🕉️ **Project Title: Epic-Minds 🏹🛞** --- ### 🔍 **Project Overview** **RamayanaGPT** and **GitaGPT** are intelligent chatbots designed to answer spiritual and literary questions from the *Valmiki Ramayana* and the *Bhagavad Gita* respectively. They follow a **Retrieval-Augmented Generation (RAG)** pipeline to ensure that the responses are contextually grounded in the scriptures. These tools integrate: - **MongoDB Atlas Vector Search** for semantic document retrieval - **Hugging Face embeddings** (`intfloat/multilingual-e5-base`) - **Gemini Flash 1.5 API** as the large language model - **LlamaIndex** for orchestration and query handling - **Gradio** for a clean and simple user interface --- ### 🏗️ **Key Components** #### 1. **Vector Store: MongoDB Atlas** - Two collections are created in the `RAG` database: - `ramayana` for **Valmiki Ramayana** - `bhagavad_gita` for **Bhagavad Gita** - Each collection has an associated vector index: - `ramayana_vector_index` - `gita_vector_index` Each document includes: - **Ramayana**: `kanda`, `sarga`, `shloka`, `shloka_text`, `explanation` - **Gita**: `Title`, `Chapter`, `Verse`, `explanation` #### 2. **Vector Embedding: Hugging Face** - Model used: `intfloat/multilingual-e5-base` - Text format for embedding: `shloka_text + explanation` or `verse + explanation` - Indexed into MongoDB for fast semantic retrieval #### 3. **Language Model: Gemini Flash** - Model: `gemini-1.5-flash` - Integrated via `llama_index.llms.gemini.Gemini` - API key loaded from environment variables - No user input required for keys—simplifies interface and experience #### 4. **Prompt Engineering** Custom **PromptTemplates** for each chatbot to guide structured, scripture-faithful responses. - **RamayanaGPT Prompt**: - Intro or overview of the query - Related Sanskrit shloka(s) with explanation - Summary of the topic - **GitaGPT Prompt**: - Spiritual or contextual introduction - Relevant verse(s) and meaning - Reflective conclusion #### 5. **Index Initialization** - Vector indices are initialized **once** at app startup: ```python ramayana_index = get_vector_index("RAG", "ramayana", "ramayana_vector_index") gita_index = get_vector_index("RAG", "bhagavad_gita", "gita_vector_index") ```` * Shared across sessions for efficiency #### 6. **User Interface: Gradio** * Built using `gr.Blocks` with the `Soft` theme and `Roboto Mono` font * Clean tabbed interface: * 🕉️ **RamayanaGPT** * 🕉️ **GitaGPT** * Each tab features: * Overview accordion * Chat window powered by `gr.ChatInterface` --- ### ⚙️ **Technical Stack** | Component | Technology | | --------------- | ------------------------------------- | | Backend LLM | Gemini Flash 1.5 (via API) | | Embedding Model | Hugging Face (`multilingual-e5-base`) | | Vector Store | MongoDB Atlas Vector Search | | Vector Engine | LlamaIndex VectorStoreIndex | | Prompt Engine | LlamaIndex PromptTemplate | | Query Engine | LlamaIndex Query Engine | | UI Framework | Gradio (Blocks + ChatInterface) | | Deployment | Python app using `app.py` | --- ### ✅ **Features Implemented** * [x] Vector search using MongoDB Atlas * [x] Hugging Face embedding integration * [x] Gemini Flash 1.5 LLM integration * [x] Structured prompts per scripture * [x] Tabbed Gradio UI for easy switching * [x] Collapsible summaries for each section * [x] Query logging with timestamp --- """ groq_api_key = """ ### 🔑 How to Get a Groq API Key 1. **Go to** [https://console.groq.com/keys](https://console.groq.com/keys) 2. **Log in or Sign Up** for a Groq account. 3. Click **"API Keys"** from the dashboard. 4. Click **"Create Key"**, name it, and generate. 5. **Copy the API key** and store it securely. 6. **Paste** the key into the RamayanaGPT app to start chatting. --- ⚠️ **Don't share** your API key. Revoke and regenerate if needed. """ RamayanaGPT=''' ## 🕉️ **RamayanaGPT – Overview and Dataset Summary** ### 📖 **Introduction** **RamayanaGPT** is a RAG-based chatbot that draws upon the **Valmiki Ramayana**, the original Sanskrit epic, to answer user queries with reference to shlokas and their commentaries. It aims to offer precise, contextual, and respectful responses using advanced retrieval and generation technologies. ### 🗂️ **Dataset Structure** The uploaded Ramayana dataset includes the following columns: | Column | Description | | ------------- | ------------------------------------------------------------------------------ | | `kanda` | One of the 7 books (kandas) of the Ramayana (e.g., Bala Kanda, Ayodhya Kanda). | | `sarga` | The chapter number within each kanda. | | `shloka` | The shloka (verse) number within the sarga. | | `shloka_text` | Original Sanskrit verse. | | `explanation` | English explanation or interpretation of the shloka. | ### 🔍 **Example** ```text kanda: Bala Kanda sarga: 1 shloka: 1 shloka_text: तपस्स्वाध्यायनिरतं तपस्वी वाग्विदां वरम् । explanation: Ascetic Valmiki enquired of Narada, preeminent among sages, who was engaged in penance and study of the Vedas. ``` ### 💡 **Insights** * The data is well-structured with nearly **1,400+** records. * Each record reflects a deep philosophical or narrative moment from the epic. * Metadata (`kanda`, `sarga`, `shloka`) allows precise retrieval and organization. * Used for vector indexing and semantic retrieval. ''' GitaGPT=''' ## 🕉️ **GitaGPT – Overview and Dataset Summary** ### 📖 **Introduction** **GitaGPT** is a chatbot built to answer spiritual and philosophical questions using the **Bhagavad Gita** as its primary source. It references verses (slokas) directly from the Gita, delivering insights supported by both Sanskrit, Hindi, and English explanations. ### 🗂️ **Dataset Structure** The uploaded Gita dataset contains the following fields: | Column | Description | | --------------------- | --------------------------------------------------- | | `S.No.` | Serial number of the verse. | | `Title` | Title of the chapter (e.g., Arjuna's Vishada Yoga). | | `Chapter` | Gita chapter number (e.g., Chapter 1). | | `Verse` | Verse ID (e.g., Verse 1.1). | | `Sanskrit Anuvad` | Original verse in Devanagari Sanskrit. | | `Hindi Anuvad` | Hindi translation/interpretation. | | `Enlgish Translation` | English translation/interpretation. | ### 🔍 **Example** ```text Chapter: Chapter 1 Verse: Verse 1.1 Sanskrit: धृतराष्ट्र उवाच । धर्मक्षेत्रे कुरुक्षेत्रे समवेता युयुत्सवः... Hindi: धृतराष्ट्र बोले- हे संजय! धर्मभूमि कुरुक्षेत्र में एकत्र हुए युद्ध की इच्छा रखने वाले... English: Dhrtarashtra asked of Sanjaya: O SANJAYA, what did my sons and the sons of Pandu do? ``` ### 💡 **Insights** * The dataset contains **700+ verses** from all 18 chapters. * Multilingual representation (Sanskrit, Hindi, English) enhances usability for diverse users. * The verse structure (`Chapter`, `Verse`) aids in precise referencing and response generation. * Perfectly suited for semantic search via vector embeddings. ''' footer = """

© 2025

This website is made with ❤ by SARATH CHANDRA

"""