{"id":13405592,"url":"https://github.com/zylon-ai/private-gpt","last_synced_at":"2025-05-12T20:43:09.703Z","repository":{"id":160585462,"uuid":"635240594","full_name":"zylon-ai/private-gpt","owner":"zylon-ai","description":"Interact with your documents using the power of GPT, 100% privately, no data leaks","archived":false,"fork":false,"pushed_at":"2024-11-13T19:30:32.000Z","size":2778,"stargazers_count":55741,"open_issues_count":269,"forks_count":7470,"subscribers_count":471,"default_branch":"main","last_synced_at":"2025-05-05T16:05:34.148Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://privategpt.dev","language":"Python","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/zylon-ai.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-05-02T09:15:31.000Z","updated_at":"2025-05-05T11:44:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"54dee884-81ba-47f7-9411-cb57a2b1c98c","html_url":"https://github.com/zylon-ai/private-gpt","commit_stats":null,"previous_names":["zylon-ai/private-gpt","imartinez/privategpt"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zylon-ai%2Fprivate-gpt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zylon-ai%2Fprivate-gpt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zylon-ai%2Fprivate-gpt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zylon-ai%2Fprivate-gpt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zylon-ai","download_url":"https://codeload.github.com/zylon-ai/private-gpt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253102628,"owners_count":21854501,"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":[],"created_at":"2024-07-30T19:02:06.141Z","updated_at":"2025-05-12T20:43:09.658Z","avatar_url":"https://github.com/zylon-ai.png","language":"Python","funding_links":[],"categories":["Python","AI应用","🛡️ Security \u0026 Compliance","others","Text","NLP","5. Retrieval-Augmented Generation (RAG) \u0026 Knowledge","Community Projects","HarmonyOS","AI Coding Agents","SDK, Libraries, Frameworks","\u003ca name=\"Python\"\u003e\u003c/a\u003ePython","Runtime","1. Local Agents","🤖 AI \u0026 Machine Learning","Security \u0026 Privacy Agents","RAG Tools"],"sub_categories":["3. The Enterprise / High-Scale Stack (The 1%)","Local search engines","RAG \u0026 Knowledge Management","Windows Manager","General Purpose","Python library, sdk or frameworks","Chatbot","General-Purpose Local Agents","Runtime Analysis Tools"],"readme":"# PrivateGPT \n\n\u003ca href=\"https://trendshift.io/repositories/2601\" target=\"_blank\"\u003e\u003cimg src=\"https://trendshift.io/api/badge/repositories/2601\" alt=\"imartinez%2FprivateGPT | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/\u003e\u003c/a\u003e\n\n[![Tests](https://github.com/zylon-ai/private-gpt/actions/workflows/tests.yml/badge.svg)](https://github.com/zylon-ai/private-gpt/actions/workflows/tests.yml?query=branch%3Amain)\n[![Website](https://img.shields.io/website?up_message=check%20it\u0026down_message=down\u0026url=https%3A%2F%2Fdocs.privategpt.dev%2F\u0026label=Documentation)](https://docs.privategpt.dev/)\n[![Discord](https://img.shields.io/discord/1164200432894234644?logo=discord\u0026label=PrivateGPT)](https://discord.gg/bK6mRVpErU)\n[![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/ZylonPrivateGPT)](https://twitter.com/ZylonPrivateGPT)\n\n![Gradio UI](/fern/docs/assets/ui.png?raw=true)\n\nPrivateGPT is a production-ready AI project that allows you to ask questions about your documents using the power\nof Large Language Models (LLMs), even in scenarios without an Internet connection. 100% private, no data leaves your\nexecution environment at any point.\n\n\u003e[!TIP]\n\u003e If you are looking for an **enterprise-ready, fully private AI workspace**\n\u003e check out [Zylon's website](https://zylon.ai)  or [request a demo](https://cal.com/zylon/demo?source=pgpt-readme).\n\u003e Crafted by the team behind PrivateGPT, Zylon is a best-in-class AI collaborative\n\u003e workspace that can be easily deployed on-premise (data center, bare metal...) or in your private cloud (AWS, GCP, Azure...).\n\nThe project provides an API offering all the primitives required to build private, context-aware AI applications.\nIt follows and extends the [OpenAI API standard](https://openai.com/blog/openai-api),\nand supports both normal and streaming responses.\n\nThe API is divided into two logical blocks:\n\n**High-level API**, which abstracts all the complexity of a RAG (Retrieval Augmented Generation)\npipeline implementation:\n- Ingestion of documents: internally managing document parsing,\nsplitting, metadata extraction, embedding generation and storage.\n- Chat \u0026 Completions using context from ingested documents:\nabstracting the retrieval of context, the prompt engineering and the response generation.\n\n**Low-level API**, which allows advanced users to implement their own complex pipelines:\n- Embeddings generation: based on a piece of text.\n- Contextual chunks retrieval: given a query, returns the most relevant chunks of text from the ingested documents.\n\nIn addition to this, a working [Gradio UI](https://www.gradio.app/)\nclient is provided to test the API, together with a set of useful tools such as bulk model\ndownload script, ingestion script, documents folder watch, etc.\n\n## 🎞️ Overview\n\u003e[!WARNING]\n\u003e  This README is not updated as frequently as the [documentation](https://docs.privategpt.dev/).\n\u003e  Please check it out for the latest updates!\n\n### Motivation behind PrivateGPT\nGenerative AI is a game changer for our society, but adoption in companies of all sizes and data-sensitive\ndomains like healthcare or legal is limited by a clear concern: **privacy**.\nNot being able to ensure that your data is fully under your control when using third-party AI tools\nis a risk those industries cannot take.\n\n### Primordial version\nThe first version of PrivateGPT was launched in May 2023 as a novel approach to address the privacy\nconcerns by using LLMs in a complete offline way.\n\nThat version, which rapidly became a go-to project for privacy-sensitive setups and served as the seed\nfor thousands of local-focused generative AI projects, was the foundation of what PrivateGPT is becoming nowadays;\nthus a simpler and more educational implementation to understand the basic concepts required\nto build a fully local -and therefore, private- chatGPT-like tool.\n\nIf you want to keep experimenting with it, we have saved it in the\n[primordial branch](https://github.com/zylon-ai/private-gpt/tree/primordial) of the project.\n\n\u003e It is strongly recommended to do a clean clone and install of this new version of\nPrivateGPT if you come from the previous, primordial version.\n\n### Present and Future of PrivateGPT\nPrivateGPT is now evolving towards becoming a gateway to generative AI models and primitives, including\ncompletions, document ingestion, RAG pipelines and other low-level building blocks.\nWe want to make it easier for any developer to build AI applications and experiences, as well as provide\na suitable extensive architecture for the community to keep contributing.\n\nStay tuned to our [releases](https://github.com/zylon-ai/private-gpt/releases) to check out all the new features and changes included.\n\n## 📄 Documentation\nFull documentation on installation, dependencies, configuration, running the server, deployment options,\ningesting local documents, API details and UI features can be found here: https://docs.privategpt.dev/\n\n## 🧩 Architecture\nConceptually, PrivateGPT is an API that wraps a RAG pipeline and exposes its\nprimitives.\n* The API is built using [FastAPI](https://fastapi.tiangolo.com/) and follows\n  [OpenAI's API scheme](https://platform.openai.com/docs/api-reference).\n* The RAG pipeline is based on [LlamaIndex](https://www.llamaindex.ai/).\n\nThe design of PrivateGPT allows to easily extend and adapt both the API and the\nRAG implementation. Some key architectural decisions are:\n* Dependency Injection, decoupling the different components and layers.\n* Usage of LlamaIndex abstractions such as `LLM`, `BaseEmbedding` or `VectorStore`,\n  making it immediate to change the actual implementations of those abstractions.\n* Simplicity, adding as few layers and new abstractions as possible.\n* Ready to use, providing a full implementation of the API and RAG\n  pipeline.\n\nMain building blocks:\n* APIs are defined in `private_gpt:server:\u003capi\u003e`. Each package contains an\n  `\u003capi\u003e_router.py` (FastAPI layer) and an `\u003capi\u003e_service.py` (the\n  service implementation). Each *Service* uses LlamaIndex base abstractions instead\n  of specific implementations,\n  decoupling the actual implementation from its usage.\n* Components are placed in\n  `private_gpt:components:\u003ccomponent\u003e`. Each *Component* is in charge of providing\n  actual implementations to the base abstractions used in the Services - for example\n  `LLMComponent` is in charge of providing an actual implementation of an `LLM`\n  (for example `LlamaCPP` or `OpenAI`).\n\n## 💡 Contributing\nContributions are welcomed! To ensure code quality we have enabled several format and\ntyping checks, just run `make check` before committing to make sure your code is ok.\nRemember to test your code! You'll find a tests folder with helpers, and you can run\ntests using `make test` command.\n\nDon't know what to contribute? Here is the public \n[Project Board](https://github.com/users/imartinez/projects/3) with several ideas. \n\nHead over to Discord \n#contributors channel and ask for write permissions on that GitHub project.\n\n## 💬 Community\nJoin the conversation around PrivateGPT on our:\n- [Twitter (aka X)](https://twitter.com/PrivateGPT_AI)\n- [Discord](https://discord.gg/bK6mRVpErU)\n\n## 📖 Citation\nIf you use PrivateGPT in a paper, check out the [Citation file](CITATION.cff) for the correct citation.  \nYou can also use the \"Cite this repository\" button in this repo to get the citation in different formats.\n\nHere are a couple of examples:\n\n#### BibTeX\n```bibtex\n@software{Zylon_PrivateGPT_2023,\nauthor = {Zylon by PrivateGPT},\nlicense = {Apache-2.0},\nmonth = may,\ntitle = {{PrivateGPT}},\nurl = {https://github.com/zylon-ai/private-gpt},\nyear = {2023}\n}\n```\n\n#### APA\n```\nZylon by PrivateGPT (2023). PrivateGPT [Computer software]. https://github.com/zylon-ai/private-gpt\n```\n\n## 🤗 Partners \u0026 Supporters\nPrivateGPT is actively supported by the teams behind:\n* [Qdrant](https://qdrant.tech/), providing the default vector database\n* [Fern](https://buildwithfern.com/), providing Documentation and SDKs\n* [LlamaIndex](https://www.llamaindex.ai/), providing the base RAG framework and abstractions\n\nThis project has been strongly influenced and supported by other amazing projects like \n[LangChain](https://github.com/hwchase17/langchain),\n[GPT4All](https://github.com/nomic-ai/gpt4all),\n[LlamaCpp](https://github.com/ggerganov/llama.cpp),\n[Chroma](https://www.trychroma.com/)\nand [SentenceTransformers](https://www.sbert.net/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzylon-ai%2Fprivate-gpt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzylon-ai%2Fprivate-gpt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzylon-ai%2Fprivate-gpt/lists"}