{"id":20363951,"url":"https://github.com/alexisbalayre/ragdocs","last_synced_at":"2025-09-23T16:31:03.229Z","repository":{"id":262874683,"uuid":"888543933","full_name":"AlexisBalayre/RagDocs","owner":"AlexisBalayre","description":"An AI-powered search engine to interact with documentation using RAG and local LLMs. Privately deployable with vector search and a modern frontend.","archived":false,"fork":false,"pushed_at":"2024-11-14T18:43:47.000Z","size":11296,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-03T17:16:11.354Z","etag":null,"topics":["chatbots","documentation","fastapi","information-retrieval","knowledge-base","llm","local-llm","machine-learning","milvus","natural-language-processing","nextjs","ollama","private-gpt","python","rag","retrieval-augmented-generation","self-hosted","technical-documentation","vector-database","vector-search"],"latest_commit_sha":null,"homepage":"","language":"MDX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlexisBalayre.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-11-14T15:24:31.000Z","updated_at":"2024-11-19T04:07:29.000Z","dependencies_parsed_at":"2024-11-14T19:44:17.158Z","dependency_job_id":null,"html_url":"https://github.com/AlexisBalayre/RagDocs","commit_stats":null,"previous_names":["alexisbalayre/ragdocs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexisBalayre%2FRagDocs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexisBalayre%2FRagDocs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexisBalayre%2FRagDocs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexisBalayre%2FRagDocs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexisBalayre","download_url":"https://codeload.github.com/AlexisBalayre/RagDocs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233985871,"owners_count":18761552,"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","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":["chatbots","documentation","fastapi","information-retrieval","knowledge-base","llm","local-llm","machine-learning","milvus","natural-language-processing","nextjs","ollama","private-gpt","python","rag","retrieval-augmented-generation","self-hosted","technical-documentation","vector-database","vector-search"],"created_at":"2024-11-15T00:09:04.049Z","updated_at":"2025-09-23T16:30:56.158Z","avatar_url":"https://github.com/AlexisBalayre.png","language":"MDX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RagDocs\n\n\u003cdiv align=\"center\"\u003e\n\n![License](https://img.shields.io/badge/license-MIT-blue.svg)\n![Python](https://img.shields.io/badge/python-3.12%2B-blue)\n![Node](https://img.shields.io/badge/node-20.17.0-green)\n![FastAPI](https://img.shields.io/badge/FastAPI-0.115.4-teal)\n![Next.js](https://img.shields.io/badge/Next.js-14-black)\n\n\u003c/div\u003e\n\n**RagDocs** is a cutting-edge open-source solution that revolutionizes how you interact with documentation. By combining the power of **local LLMs** with state-of-the-art **Retrieval-Augmented Generation (RAG)**, developers can instantly get accurate answers from their documentation without any API costs.\n\nSay goodbye to expensive API calls and privacy concerns. With **RagDocs**, all your documentation stays private while providing ChatGPT-like interactions. Built with Milvus vector search and Next.js, it's production-ready and easy to deploy. Experience the future of documentation search with complete data privacy and no usage fees.\n\nhttps://github.com/user-attachments/assets/24c25726-6599-4be5-9fa5-c7b8af6a4c55\n\n## 🌟 Features\n\n- **🤖 Intelligent Chat Interface**: Conversational interface tailored for technical documentation.\n- **🔍 Cutting-Edge Retrieval Augmented Generation**: Accurate and context-aware responses.\n- **💾 Local LLM Support**: Integrated with Ollama for privacy and efficiency.\n- **🎯 Vector Search Powered by Milvus**: Rapid and scalable document querying.\n- **🚀 Modern Next.js Frontend**: Sleek, real-time user experience.\n- **📚 Multi-Document Support**: Seamless handling of diverse tech stacks.\n- **⚡ Fast Document Processing**: Efficient ingestion and analysis of updates.\n- **🔄 Incremental Updates**: Keep your documentation in sync effortlessly.\n\n---\n\n## 🏗️ Architecture\n\n```\nragdocs/\n├── data/                         # Documentation storage\n│   ├── milvus_docs/              # Milvus documentation\n│   ├── qdrant_docs/              # Qdrant documentation\n│   └── weaviate_docs/            # Weaviate documentation\n├── milvus/                       # Milvus standalone setup\n│   └── standalone_embed.sh       # Milvus standalone script\n├── ragdocs_api/                  # FastAPI backend\n│   ├── conversation_api.py       # Chat API endpoints\n│   ├── file_tracker.py           # Document change tracking\n│   ├── llm_provider.py           # LLM integration (Ollama)\n│   ├── markdown_processor.py     # Markdown processing\n│   └── rag_system.py             # Core RAG implementation\n└── ragdocs_frontend/             # Next.js frontend\n    └── src/                      # Frontend source code\n```\n\n---\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Python 3.12+\n- Node.js 20.17.0\n- Milvus 2.0+\n- Ollama (for local LLM support)\n\nInstall Node.js with **nvm**:\n\n```bash\nnvm install 20.17.0\nnvm use 20.17.0\n```\n\n---\n\n### Installation\n\n1. **Clone the Repository**:\n\n```bash\ngit clone https://github.com/AlexisBalayre/RagDocs.git\ncd RagDocs\n```\n\n2. **Install Python Dependencies**:\n\n```bash\n# Install poetry if not already installed\ncurl -sSL https://install.python-poetry.org | python3 -\n\n# Install project dependencies\npoetry install\npoetry shell\n```\n\n\u003e **Key Dependencies:**\n\u003e - llama-index: 0.11.22\n\u003e - fastapi: 0.115.4\n\u003e - milvus-lite: 2.4.10\n\u003e - sentence-transformers: 2.7.0\n\u003e - torch: 2.5.1\n\n3. **Install Frontend Dependencies**:\n\n```bash\ncd ragdocs_frontend\nyarn\n```\n\n4. **Set Up Environment Variables**:\n\n```bash\ncp example.env.local .env.local\n# Edit .env.local with your configuration\n```\n\n5. **Start Milvus**:\n\n```bash\ncd milvus\nbash standalone_embed.sh start\n```\n\n6. **Run the Backend**:\n\n```bash\npoetry run uvicorn ragdocs_api.conversation_api:app --reload\n```\n\n7. **Run the Frontend**:\n\n```bash\ncd ragdocs_frontend\nyarn dev\n```\n\n---\n\n## 💡 Usage\n\n1. **Add Documentation**: Place files in the respective folders under `data/`.\n2. **Start Chatting**: Use the frontend to chat with and explore your documentation.\n3. **Compare Tech Stacks**: Leverage built-in comparison features for analysis.\n\n---\n\n## 🔧 Configuration\n\nEdit the `.env.local` file for key settings:\n\n```env\nMILVUS_HOST=localhost\nMILVUS_PORT=19530\nOLLAMA_MODEL=llama3.2\n```\n\n---\n\n## 🤝 Contributing\n\nContributions are encouraged! Follow these steps:\n\n1. Fork the repository.\n2. Create a feature branch:\n\n```bash\ngit checkout -b feature/AmazingFeature\n```\n\n3. Commit your changes:\n\n```bash\ngit commit -m 'Add some AmazingFeature'\n```\n\n4. Push your branch:\n\n```bash\ngit push origin feature/AmazingFeature\n```\n\n5. Open a Pull Request.\n\n---\n\n## 📝 License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n---\n\n## 🙏 Acknowledgments\n\n- [Vercel AI Chatbot](https://github.com/vercel/ai-chatbot) - Template inspiration for the frontend.\n- [LlamaIndex](https://github.com/jerryjliu/llama_index) - Powering RAG capabilities.\n- [Milvus](https://github.com/milvus-io/milvus) - Efficient vector search backend.\n- [Ollama](https://github.com/jmorganca/ollama) - Local LLM support.\n\n---\n\n## ⭐ Support\n\nIf this project adds value to your work, **please give it a star!**\n\nYour support makes a difference and encourages further development. Feedback and feature suggestions are always welcome!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexisbalayre%2Fragdocs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexisbalayre%2Fragdocs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexisbalayre%2Fragdocs/lists"}