{"id":32892686,"url":"https://github.com/ysocrius/diligent_jarvis","last_synced_at":"2026-04-11T01:04:08.934Z","repository":{"id":322936388,"uuid":"1091481987","full_name":"ysocrius/diligent_jarvis","owner":"ysocrius","description":"Personal AI Assistant with RAG (Retrieval-Augmented Generation) - OpenAI GPT-4 + Pinecone Vector DB + Flask. Live Demo: https://diligent-jarvis.onrender.com","archived":false,"fork":false,"pushed_at":"2025-11-07T06:15:10.000Z","size":16091,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-07T07:08:08.527Z","etag":null,"topics":["ai","chatbot","flask","langchain","machine-learning","openai","pinecone","python","rag","vector-database"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ysocrius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-07T04:33:31.000Z","updated_at":"2025-11-07T06:15:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ysocrius/diligent_jarvis","commit_stats":null,"previous_names":["ysocrius/diligent_jarvis"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ysocrius/diligent_jarvis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysocrius%2Fdiligent_jarvis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysocrius%2Fdiligent_jarvis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysocrius%2Fdiligent_jarvis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysocrius%2Fdiligent_jarvis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ysocrius","download_url":"https://codeload.github.com/ysocrius/diligent_jarvis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysocrius%2Fdiligent_jarvis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":283900033,"owners_count":26913495,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-11T02:00:06.610Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","chatbot","flask","langchain","machine-learning","openai","pinecone","python","rag","vector-database"],"created_at":"2025-11-10T05:01:43.836Z","updated_at":"2025-11-11T18:02:28.332Z","avatar_url":"https://github.com/ysocrius.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Build Your Own Jarvis - Personal AI Assistant\n\nA complete implementation of the \"Build Your Own Jarvis\" assignment requirements, featuring OpenAI API integration, Pinecone vector database, and a web-based chatbot interface.\n\n## 🌐 Live Demo\n\n**Try it now:** [https://diligent-jarvis.onrender.com](https://diligent-jarvis.onrender.com)\n\nThe application is deployed on Render with full RAG capabilities. Ask questions about the uploaded documents!\n\n## 🎥 Demo Video\n\n[![Watch the demo](https://img.youtube.com/vi/XngJYt-7AAg/maxresdefault.jpg)](https://www.youtube.com/watch?v=XngJYt-7AAg)\n\n**[▶️ Watch Full Demo on YouTube](https://www.youtube.com/watch?v=XngJYt-7AAg)**\n\n## 📸 Screenshots\n\n### Render Deployment Dashboard\n![Render Deployment Dashboard](screenshots/render-deployment.png)\n\n### Environment Configuration\n![Render Environment Variables](screenshots/render-env-vars.png)\n\n## 🎯 Assignment Requirements Met\n\n✅ **Cloud-based LLM via OpenAI API** - GPT-4o-mini integration for intelligent responses  \n✅ **Vector Database** - Pinecone for knowledge storage and retrieval  \n✅ **Conversational Interface** - Web-based chatbot UI with Flask  \n✅ **Query Understanding** - RAG system for contextual responses  \n✅ **SaaS Feature** - Ready for enterprise deployment\n\n## 🚀 Quick Start\n\n### Prerequisites\n- Python 3.8+\n- OpenAI API Key\n- Pinecone API Key\n- Web browser\n\n### Installation\n\n1. **Create virtual environment**\n```bash\ncd jarvis_assistant\npython -m venv venv\n\n# Windows\nvenv\\Scripts\\activate\n\n# Mac/Linux\nsource venv/bin/activate\n```\n\n2. **Install dependencies**\n```bash\npip install -r requirements.txt\n```\n\n3. **Configure environment variables**\n\nEdit the `.env` file with your API keys:\n```\nOPENAI_API_KEY=your_actual_openai_api_key_here\nPINECONE_API_KEY=your_actual_pinecone_api_key_here\nPINECONE_ENVIRONMENT=your_pinecone_environment_here\nPINECONE_INDEX_NAME=jarvis-assistant-index\n```\n\n4. **Set up Pinecone**\n- Log into [Pinecone Console](https://app.pinecone.io/)\n- Create a new index (suggested: `jarvis-assistant-index`)\n- Get your API key and environment name\n- Add them to your `.env` file\n\n5. **Add documents**\nPlace your PDF files in the `docs/` folder:\n```bash\n# Example: Add your documents\ncopy my_document.pdf docs/\ncopy another_file.pdf docs/\n```\n\n6. **Ingest documents**\n```bash\npython ingest.py\n```\n\n7. **Start Jarvis**\n```bash\npython jarvis_assistant.py\n```\n\n8. **Access the interface**\nOpen your browser to: `http://127.0.0.1:5000`\n\n## 🏗️ Architecture\n\n```\njarvis_assistant/\n├── docs/                      # Your PDF documents\n├── static/                    # CSS and JavaScript files\n│   ├── style.css\n│   └── app.js\n├── templates/                 # HTML templates\n│   └── index.html\n├── .env                       # Environment variables\n├── requirements.txt           # Python dependencies\n├── ingest.py                  # Document ingestion script\n├── jarvis_assistant.py        # Main Flask application\n└── README.md                  # This file\n```\n\n## 💬 Usage\n\n1. **Document Processing**: Run `ingest.py` to process your PDF files and store them in Pinecone\n\n2. **Chat Interface**: Access the web interface at `http://127.0.0.1:5000`\n\n3. **Ask Questions**: Type your questions about the document content in the chat interface\n\n4. **Get Contextual Answers**: Jarvis uses the stored document knowledge to provide accurate, contextual responses\n\n## 🎨 Features\n\n- **Clean Web Interface**: Modern responsive chat UI\n- **PDF Processing**: Automatic text extraction and chunking\n- **Vector Search**: Semantic similarity search with Pinecone\n- **Context-Aware Responses**: LLM-powered answers based on retrieved context\n- **Error Handling**: Comprehensive error messages and status indicators\n- **Real-time Feedback**: Typing indicators and response status\n\n## 🔧 Technical Stack\n\n- **Backend**: Flask web framework\n- **AI Models**: OpenAI gpt-4o-mini and embeddings\n- **Vector Database**: Pinecone\n- **Document Processing**: PyPDF2\n- **Frontend**: Bootstrap 5, vanilla JavaScript\n- **Orchestration**: LangChain\n\n## 📋 Example Questions\n\nBased on your documents, try questions like:\n- \"What is the main topic of these documents?\"\n- \"Summarize the key points about [topic]\"\n- \"What are the technical requirements mentioned?\"\n- \"Explain the concept of [specific term]\"\n\n## 🛠️ Troubleshooting\n\n**Pinecone Connection Issues:**\n- Verify your Pinecone API key and environment\n- Ensure the index name matches what's in your `.env` file\n- Check that you've created the Pinecone index\n\n**Document Ingestion Problems:**\n- Ensure PDF files are placed in the `docs/` folder\n- Add only accessible, non-encrypted PDF files\n- Check that Pinecone is properly configured\n\n**Web Interface Issues:**\n- Make sure Flask is running (stop with Ctrl+C and restart)\n- Clear your browser cache\n- Check browser console for JavaScript errors\n\n**API Key Problems:**\n- Verify OpenAI API key is valid and has credits\n- Check Pinecone API key permissions\n- Ensure `.env` file is correctly formatted\n\n## 🚀 Deployment\n\n### Live on Render\n\nThis application is deployed and running at: **https://diligent-jarvis.onrender.com**\n\n**Deployment Configuration:**\n- **Platform**: Render.com\n- **Runtime**: Python 3.10.13\n- **Web Server**: Gunicorn\n- **Auto-deploy**: Enabled from `main` branch\n- **Environment**: Production with full RAG stack\n\n### Deploy Your Own\n\n1. Fork this repository\n2. Sign up at [Render.com](https://render.com)\n3. Create a new Web Service\n4. Connect your GitHub repository\n5. Set environment variables:\n   - `OPENAI_API_KEY`\n   - `PINECONE_API_KEY`\n   - `PINECONE_ENVIRONMENT`\n   - `PINECONE_INDEX_NAME`\n6. Deploy!\n\n### Production Considerations\n\n- Using Gunicorn WSGI server for production\n- Environment variables for secure credential management\n- Auto-deployment on git push\n- Scalable architecture ready for load\n- Consider adding user authentication for multi-tenant use\n- Implement rate limiting for API protection\n\n## 🎓 Assignment Fulfillment\n\nThis implementation directly addresses all assignment requirements:\n1. ✅ Cloud-based LLM via OpenAI API (GPT-4o-mini)\n2. ✅ Vector database for knowledge storage (Pinecone)\n3. ✅ Conversational interface (Web chatbot)\n4. ✅ Query understanding (RAG pipeline)\n5. ✅ Contextual responses (Retrieval-augmented generation)\n6. ✅ SaaS-ready feature (Web app with proper architecture)\n\n**Built for:** Diligent India Workshop (Nov 6, 2025)  \n**Topics:** Agentic AI, RAG, MCP Servers in Enterprise Applications","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysocrius%2Fdiligent_jarvis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fysocrius%2Fdiligent_jarvis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysocrius%2Fdiligent_jarvis/lists"}