{
 "schema_version": 1,
 "generated": "2026-10-26",
 "url": "https://dedupedai.com/best-ai-repos-for/rag-and-chat-with-documents/",
 "task": "RAG and chatting with your documents",
 "question": "What is the best open-source repo for RAG and chatting with your own documents?",
 "answer": "The best open-source AI repos for RAG and chatting with your documents right now are Dify, Open WebUI and Graphify. Dify is the most complete builder (visual workflows plus a RAG pipeline); Open WebUI is the quickest way to chat with local documents next to a local model; Graphify is built for codebases and their docs.",
 "md": "https://dedupedai.com/best-ai-repos-for/rag-and-chat-with-documents/index.md",
 "repos": [
  {
   "repo": "langgenius/dify",
   "title": "Dify",
   "url": "https://dedupedai.com/use-cases/langgenius-dify/",
   "github": "https://github.com/langgenius/dify",
   "what": "Dify is an open-source platform for building LLM apps. It combines a visual workflow canvas, a RAG pipeline that ingests PDFs and slides, agents with their own sandbox, support for hundreds of models, a prompt IDE, observability and a backend-as-a-service API, so a team can go from prototype to production in one workspace. It runs in Dify Cloud or self-hosted with Docker Compose.",
   "who": "Teams and builders who want to ship chatbots, internal assistants and AI workflows without hand-writing the whole stack.",
   "stars": 159456,
   "language": "Python",
   "requirements": [
    "Docker and Docker Compose v2.24.0 or later for self-hosting",
    "A machine with at least 2 CPU cores and 4 GiB RAM",
    "API keys for the model providers you use"
   ],
   "uc_count": 3,
   "use_cases": [
    {
     "title": "Self-host Dify with Docker Compose",
     "url": "https://dedupedai.com/use-cases/langgenius-dify/self-host-dify-with-docker-compose/"
    },
    {
     "title": "Build a chatbot over your PDFs and slides",
     "url": "https://dedupedai.com/use-cases/langgenius-dify/build-a-docs-chatbot-with-the-rag-pipeline/"
    },
    {
     "title": "Give a Dify agent tools from MCP servers and the marketplace",
     "url": "https://dedupedai.com/use-cases/langgenius-dify/run-a-sandboxed-dify-agent-with-mcp-tools/"
    }
   ],
   "best": {
    "title": "Self-host Dify with Docker Compose",
    "url": "https://dedupedai.com/use-cases/langgenius-dify/self-host-dify-with-docker-compose/",
    "difficulty": "Beginner",
    "time": "20 minutes",
    "agents": [],
    "steps": [
     "Clone the repo, then cd dify and cd docker",
     "Run cp .env.example .env",
     "Start it with docker compose up -d",
     "Open http://localhost/install and complete initialization",
     "Add your model provider keys in settings"
    ],
    "md": "https://dedupedai.com/use-cases/langgenius-dify/self-host-dify-with-docker-compose/index.md"
   }
  },
  {
   "repo": "open-webui/open-webui",
   "title": "Open WebUI",
   "url": "https://dedupedai.com/use-cases/open-webui-open-webui/",
   "github": "https://github.com/open-webui/open-webui",
   "what": "Open WebUI is a self-hosted AI platform with a chat interface for Ollama and OpenAI-compatible APIs that can run entirely offline. It adds local RAG over your documents with hybrid search, web search from many providers, custom models and agents with tools and knowledge, voice and video calls, role-based access control for teams, and SQLite or PostgreSQL storage. It installs with pip, Docker or Kubernetes.",
   "who": "Individuals and teams who want a ChatGPT-style interface for local or cloud models on their own server.",
   "stars": 156670,
   "language": "Python",
   "requirements": [
    "Docker, or Python with pip",
    "Ollama for local models, or an OpenAI-compatible API key",
    "A GPU is optional (the :cuda image uses it)"
   ],
   "uc_count": 3,
   "use_cases": [
    {
     "title": "Run a private ChatGPT-style app for your local models",
     "url": "https://dedupedai.com/use-cases/open-webui-open-webui/run-a-private-chatgpt-style-ui-for-local-models/"
    },
    {
     "title": "Chat with your own documents using local RAG",
     "url": "https://dedupedai.com/use-cases/open-webui-open-webui/chat-with-your-documents-using-local-rag/"
    },
    {
     "title": "Share one AI workspace with your team, with roles and groups",
     "url": "https://dedupedai.com/use-cases/open-webui-open-webui/share-one-ai-workspace-with-your-team/"
    }
   ],
   "best": {
    "title": "Run a private ChatGPT-style app for your local models",
    "url": "https://dedupedai.com/use-cases/open-webui-open-webui/run-a-private-chatgpt-style-ui-for-local-models/",
    "difficulty": "Beginner",
    "time": "10 minutes",
    "agents": [],
    "steps": [
     "With Docker: docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main",
     "Or with Python: pip install open-webui, then open-webui serve",
     "Open http://localhost:3000 and create the admin account",
     "Pick an Ollama model, or add an OpenAI-compatible API in settings"
    ],
    "md": "https://dedupedai.com/use-cases/open-webui-open-webui/run-a-private-chatgpt-style-ui-for-local-models/index.md"
   }
  },
  {
   "repo": "Graphify-Labs/graphify",
   "title": "Graphify",
   "url": "https://dedupedai.com/use-cases/graphify-labs-graphify/",
   "github": "https://github.com/Graphify-Labs/graphify",
   "what": "Graphify is a tool that turns a codebase, its docs, configs, and PDFs into a knowledge graph that an AI coding assistant can query instead of grepping files.",
   "who": "Developers and engineering leads who work in an unfamiliar or large codebase and use Claude Code, Cursor, Codex, Gemini CLI, or another supported assistant.",
   "stars": 132336,
   "language": "Python",
   "requirements": [
    "Python 3.10 or newer",
    "uv (recommended) or pipx",
    "A supported AI coding assistant, such as Claude Code, Cursor, Codex, or Gemini CLI",
    "A local copy of the repository you want to map"
   ],
   "uc_count": 4,
   "use_cases": [
    {
     "title": "Map an unfamiliar codebase in one run",
     "url": "https://dedupedai.com/use-cases/graphify-labs-graphify/map-unfamiliar-codebase-in-one-run/"
    },
    {
     "title": "Answer architecture questions from the graph",
     "url": "https://dedupedai.com/use-cases/graphify-labs-graphify/answer-architecture-questions-from-graph/"
    },
    {
     "title": "Trace how two components connect before a change",
     "url": "https://dedupedai.com/use-cases/graphify-labs-graphify/trace-links-between-two-components/"
    }
   ],
   "best": {
    "title": "Map an unfamiliar codebase in one run",
    "url": "https://dedupedai.com/use-cases/graphify-labs-graphify/map-unfamiliar-codebase-in-one-run/",
    "difficulty": "Intermediate",
    "time": "15 minutes",
    "agents": [
     "claude-code",
     "cursor",
     "codex",
     "gemini-cli"
    ],
    "steps": [
     "Run uv tool install graphifyy (or pipx install graphifyy) to install the CLI.",
     "Run graphify install once so it registers the skill with your assistant.",
     "Open your AI assistant in the repository and type /graphify .",
     "Open graphify-out/graph.html in a browser and read graphify-out/GRAPH_REPORT.md."
    ],
    "md": "https://dedupedai.com/use-cases/graphify-labs-graphify/map-unfamiliar-codebase-in-one-run/index.md"
   }
  },
  {
   "repo": "deeplethe/utopia",
   "title": "Utopia",
   "url": "https://dedupedai.com/use-cases/deeplethe-utopia/",
   "github": "https://github.com/deeplethe/utopia",
   "what": "Utopia is an open-source, self-hosted enterprise knowledge base in Rust that stores facts with time awareness, so you can ask what was true at a given date and what the base knew then.",
   "who": "Engineers and knowledge or operations staff at a company who need dated, evidence-backed answers from their own documents and can run Docker and configure chat and embedding model endpoints.",
   "stars": 8543,
   "language": "Rust",
   "requirements": [
    "Docker installed (local development also needs Rust 1.85+, Node 20+, pnpm)",
    "A chat model endpoint and an embedding model endpoint, for example any OpenAI-compatible endpoint",
    "Business documents to ingest, such as PDF or Word contracts and amendments"
   ],
   "uc_count": 4,
   "use_cases": [
    {
     "title": "Find which contract terms applied on a given date",
     "url": "https://dedupedai.com/use-cases/deeplethe-utopia/answer-dated-contract-terms/"
    },
    {
     "title": "Show who held a role in a past quarter and what was known then",
     "url": "https://dedupedai.com/use-cases/deeplethe-utopia/trace-who-held-role-over-time/"
    },
    {
     "title": "Connect a coding agent to a knowledge base over MCP",
     "url": "https://dedupedai.com/use-cases/deeplethe-utopia/let-agent-read-knowledge-base-over-mcp/"
    }
   ],
   "best": {
    "title": "Find which contract terms applied on a given date",
    "url": "https://dedupedai.com/use-cases/deeplethe-utopia/answer-dated-contract-terms/",
    "difficulty": "Intermediate",
    "time": "1 hour",
    "agents": [],
    "steps": [
     "Run git clone https://github.com/deeplethe/utopia.git and then cd utopia.",
     "Run docker compose --profile app up -d and open http://localhost:1516 to register; the first account becomes the administrator.",
     "Under Administration, go to Models and configure the chat and embedding endpoints before extracting business documents.",
     "Create a knowledge base, upload the agreement and its amendments as PDF or Word, and let extraction finish.",
     "Ask the chat which payment terms applied on the date you need and which parties were named, then open the citations to check the source passage."
    ],
    "md": "https://dedupedai.com/use-cases/deeplethe-utopia/answer-dated-contract-terms/index.md"
   }
  },
  {
   "repo": "MattiaIppoliti/ciele",
   "title": "Ciele",
   "url": "https://dedupedai.com/use-cases/mattiaippoliti-ciele/",
   "github": "https://github.com/MattiaIppoliti/ciele",
   "what": "Ciele is a self-hostable TypeScript platform for building embeddable AI chat assistants that answer from your own websites, files, and FAQs, with escalation to human help desks and conversation analytics.",
   "who": "Developers, support leads, and operations teams who want a private AI assistant grounded in their own content and need to run it themselves or hand the setup to an agent.",
   "stars": 327,
   "language": "TypeScript",
   "requirements": [
    "A shell on a machine where ./deploy/bootstrap.sh can run",
    "Git to clone the repository",
    "Docker Desktop, if you use the Ciele Desktop app on macOS",
    "Optional: an OpenAI chat and embeddings compatible server, such as a local model runner, if you do not want to use a hosted AI vendor"
   ],
   "uc_count": 4,
   "use_cases": [
    {
     "title": "Run a private AI assistant on your own machine",
     "url": "https://dedupedai.com/use-cases/mattiaippoliti-ciele/self-host-private-assistant-in-one-command/"
    },
    {
     "title": "Build a support assistant from your website and FAQs",
     "url": "https://dedupedai.com/use-cases/mattiaippoliti-ciele/build-website-faq-assistant-with-escalation/"
    },
    {
     "title": "Audit assistant answers from conversation transcripts",
     "url": "https://dedupedai.com/use-cases/mattiaippoliti-ciele/review-assistant-answer-quality-from-transcripts/"
    }
   ],
   "best": {
    "title": "Run a private AI assistant on your own machine",
    "url": "https://dedupedai.com/use-cases/mattiaippoliti-ciele/self-host-private-assistant-in-one-command/",
    "difficulty": "Intermediate",
    "time": "45 minutes",
    "agents": [],
    "steps": [
     "Clone the Ciele repository from GitHub (the README clone line is truncated here, so use the repo URL shown on the GitHub page), then run cd ciele.",
     "Run ./deploy/bootstrap.sh to generate secrets, start the database, apply migrations, and boot the app.",
     "Open the app address shown in the output, sign up, and keep the account you create as the organization owner.",
     "Optional: run ./deploy/bootstrap.sh --seed to start from populated demo content.",
     "Point the app at a local server that speaks the OpenAI chat and embeddings API, using the settings described in the self-hosting docs at docs.ciele.app."
    ],
    "md": "https://dedupedai.com/use-cases/mattiaippoliti-ciele/self-host-private-assistant-in-one-command/index.md"
   }
  }
 ]
}
