An AI-powered task manager built with Streamlit, LangChain, Google Gemini, and ChromaDB.
This app lets users upload an Excel file of tasks, then interact with it using natural language to add, update, delete, or ask questions about tasks.
- 📁 Upload
.xlsxtask files - 🧠 Ask natural language instructions like:
- "Add task to finish blog post due next Friday"
- "Update task 'Build UI mockup' to Completed"
- "Delete task 'Team Meeting'"
- 🗃️ Ask questions like:
- "What tasks are due this week?"
- "Which tasks are marked Completed?"
- 💾 Download the updated task file after edits
- 🔍 Uses RAG (Retrieval-Augmented Generation) for smart question-answering from task data
| Tool/Library | Purpose |
|---|---|
| 🐍 Python | Core programming language |
| 🧱 Streamlit | UI and app framework |
| 📊 Pandas | Excel/CSV data manipulation |
| 🔗 LangChain | Prompt templates, LLM chains, RAG |
| 💬 Google Gemini (via LangChain) | LLM for natural language understanding |
| 🔎 ChromaDB | Vector database for semantic retrieval |
| 🔤 Google GenerativeAI Embeddings | Convert task text into vector embeddings for search |
User uploads an Excel sheet with task information (e.g. Task Name, Due Date, Status).
You can tell the assistant what to do using plain English (e.g., "Add a task to finalize report").
LangChain uses a prompt template to structure this into a valid JSON instruction, which is parsed and applied to the table using pandas.
- Task descriptions are converted into chunks
- Chunks are embedded using Google GenerativeAI Embeddings
- Embeddings are stored in ChromaDB
- When a question is asked, LangChain retrieves the most relevant chunks using semantic similarity
- Gemini answers based on the retrieved context