Git Product home page Git Product logo

🔒 PrivateGPT 📑

Tests Website

Discord X (formerly Twitter) Follow

Install & usage docs: https://docs.privategpt.dev/

Join the community: Twitter & Discord

Gradio UI

PrivateGPT is a production-ready AI project that allows you to ask questions about your documents using the power of Large Language Models (LLMs), even in scenarios without an Internet connection. 100% private, no data leaves your execution environment at any point.

The project provides an API offering all the primitives required to build private, context-aware AI applications. It follows and extends the OpenAI API standard, and supports both normal and streaming responses.

The API is divided into two logical blocks:

High-level API, which abstracts all the complexity of a RAG (Retrieval Augmented Generation) pipeline implementation:

  • Ingestion of documents: internally managing document parsing, splitting, metadata extraction, embedding generation and storage.
  • Chat & Completions using context from ingested documents: abstracting the retrieval of context, the prompt engineering and the response generation.

Low-level API, which allows advanced users to implement their own complex pipelines:

  • Embeddings generation: based on a piece of text.
  • Contextual chunks retrieval: given a query, returns the most relevant chunks of text from the ingested documents.

In addition to this, a working Gradio UI client is provided to test the API, together with a set of useful tools such as bulk model download script, ingestion script, documents folder watch, etc.

👂 Need help applying PrivateGPT to your specific use case? Let us know more about it and we'll try to help! We are refining PrivateGPT through your feedback.

🎞️ Overview

DISCLAIMER: This README is not updated as frequently as the documentation. Please check it out for the latest updates!

Motivation behind PrivateGPT

Generative AI is a game changer for our society, but adoption in companies of all sizes and data-sensitive domains like healthcare or legal is limited by a clear concern: privacy. Not being able to ensure that your data is fully under your control when using third-party AI tools is a risk those industries cannot take.

Primordial version

The first version of PrivateGPT was launched in May 2023 as a novel approach to address the privacy concerns by using LLMs in a complete offline way.

That version, which rapidly became a go-to project for privacy-sensitive setups and served as the seed for thousands of local-focused generative AI projects, was the foundation of what PrivateGPT is becoming nowadays; thus a simpler and more educational implementation to understand the basic concepts required to build a fully local -and therefore, private- chatGPT-like tool.

If you want to keep experimenting with it, we have saved it in the primordial branch of the project.

It is strongly recommended to do a clean clone and install of this new version of PrivateGPT if you come from the previous, primordial version.

Present and Future of PrivateGPT

PrivateGPT is now evolving towards becoming a gateway to generative AI models and primitives, including completions, document ingestion, RAG pipelines and other low-level building blocks. We want to make it easier for any developer to build AI applications and experiences, as well as provide a suitable extensive architecture for the community to keep contributing.

Stay tuned to our releases to check out all the new features and changes included.

📄 Documentation

Full documentation on installation, dependencies, configuration, running the server, deployment options, ingesting local documents, API details and UI features can be found here: https://docs.privategpt.dev/

🧩 Architecture

Conceptually, PrivateGPT is an API that wraps a RAG pipeline and exposes its primitives.

The design of PrivateGPT allows to easily extend and adapt both the API and the RAG implementation. Some key architectural decisions are:

  • Dependency Injection, decoupling the different components and layers.
  • Usage of LlamaIndex abstractions such as LLM, BaseEmbedding or VectorStore, making it immediate to change the actual implementations of those abstractions.
  • Simplicity, adding as few layers and new abstractions as possible.
  • Ready to use, providing a full implementation of the API and RAG pipeline.

Main building blocks:

  • APIs are defined in private_gpt:server:<api>. Each package contains an <api>_router.py (FastAPI layer) and an <api>_service.py (the service implementation). Each Service uses LlamaIndex base abstractions instead of specific implementations, decoupling the actual implementation from its usage.
  • Components are placed in private_gpt:components:<component>. Each Component is in charge of providing actual implementations to the base abstractions used in the Services - for example LLMComponent is in charge of providing an actual implementation of an LLM (for example LlamaCPP or OpenAI).

💡 Contributing

Contributions are welcomed! To ensure code quality we have enabled several format and typing checks, just run make check before committing to make sure your code is ok. Remember to test your code! You'll find a tests folder with helpers, and you can run tests using make test command.

Don't know what to contribute? Here is the public Project Board with several ideas.

Head over to Discord #contributors channel and ask for write permissions on that GitHub project.

💬 Community

Join the conversation around PrivateGPT on our:

📖 Citation

If you use PrivateGPT in a paper, check out the Citation file for the correct citation.
You can also use the "Cite this repository" button in this repo to get the citation in different formats.

Here are a couple of examples:

BibTeX

@software{Martinez_Toro_PrivateGPT_2023,
author = {Martínez Toro, Iván and Gallego Vico, Daniel and Orgaz, Pablo},
license = {Apache-2.0},
month = may,
title = {{PrivateGPT}},
url = {https://github.com/imartinez/privateGPT},
year = {2023}
}

APA

Martínez Toro, I., Gallego Vico, D., & Orgaz, P. (2023). PrivateGPT [Computer software]. https://github.com/imartinez/privateGPT

🤗 Partners & Supporters

PrivateGPT is actively supported by the teams behind:

  • Qdrant, providing the default vector database
  • Fern, providing Documentation and SDKs
  • LlamaIndex, providing the base RAG framework and abstractions

This project has been strongly influenced and supported by other amazing projects like LangChain, GPT4All, LlamaCpp, Chroma and SentenceTransformers.

private-gpt's Projects

agentgpt icon agentgpt

🤖 Assemble, configure, and deploy autonomous AI Agents in your browser.

ai-template icon ai-template

Mercury - Train your own custom GPT. Chat with any file, or website.

anchoring-ai icon anchoring-ai

An open-source no-code tool for teams to collaborate on building, evaluating, and hosting applications leveraging GPT and other large language models. You could easily build and share LLM-powered apps, manage your budget and run batch jobs.

api-for-open-llm icon api-for-open-llm

Openai style api for open large language models, using LLMs just as chatgpt! Support for LLaMA, LLaMA-2, BLOOM, Falcon, Baichuan, Qwen, Xverse, SqlCoder, CodeLLaMA, ChatGLM, ChatGLM2, ChatGLM3 etc. 开源大模型的统一后端接口

awesome-aim-index icon awesome-aim-index

An index of all of our weekly concepts + code events for aspiring AI Engineers and Business Leaders!!

awesome-langchain icon awesome-langchain

😎 Awesome list of tools and projects with the awesome LangChain framework

aws-openai icon aws-openai

Example ChatGPT chatbots using Langchain and OpenAI

big-agi icon big-agi

💬 Personal AI application powered by GPT-4 and beyond, with AI personas, AGI functions, text-to-image, voice, response streaming, code highlighting and execution, PDF import, presets for developers, much more. Deploy and gift #big-AGI-energy! Using Next.js, React, Joy.

cloudbot icon cloudbot

A simple langchain demo containing an agent to help you with everything kubernetes and aws.

cloudgpt icon cloudgpt

cloudGPT: One line to generate all cloud infrastructure

cloudwhiz icon cloudwhiz

CloudWhiz is a chatbot built with Streamlit, Langchain, Hugging Face's LLM, and Faiss. It serves as a helpful Amazon Web Service assistant, capable of answering questions regarding AWS solutions based on an AWS Solutions Architect PDF.

code-llama-for-vscode icon code-llama-for-vscode

Use Code Llama with Visual Studio Code and the Continue extension. A local LLM alternative to GitHub Copilot.

codebear icon codebear

Codebear: A fast and memory efficient code completion system based on CodeLlama

codegpt icon codegpt

JetBrains extension providing access to state-of-the-art LLMs, such as GPT-4, Claude 3, Code Llama, and others, all for free

codel icon codel

✨ Fully autonomous AI Agent that can perform complicated tasks and projects using terminal, browser, and editor.

codellama icon codellama

The prime focus of my codellama project is to fine-tune the Code Llama 7B model and juxtapose its performance with GPT-4. Utilizing the stack outlined in README, I dive into an extensive analysis, providing a robust framework for further work with the Code Llama model.

codeqai icon codeqai

Local first semantic code search and chat powered by vector embeddings and LLMs

coolagi icon coolagi

A Free and Opensource alternative to OpenAI GPT-4 Plus packed with a powerful code-interpreter and gpt-4-vision .

crewai icon crewai

Framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks.

db-gpt icon db-gpt

AI Native Data App Development framework with AWEL(Agentic Workflow Expression Language) and Agents

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.