## Introduction 👋

PrivateGPT provides an **API** containing all the building blocks required to build **private, context-aware AI applications**. The API follows and extends OpenAI API standard, and supports both normal and streaming responses.

## Frequently Visited Resources

<Cards>
  <Card
    title="API Reference"
    icon="fa-solid fa-code"
    href="/api-reference"
  />
  <Card
    title="Twitter"
    icon="fa-brands fa-twitter"
    href="https://twitter.com/PrivateGPT_AI"
  />
  <Card
    title="Discord Server"
    icon="fa-brands fa-discord"
    href="https://discord.gg/bK6mRVpErU"
  />
</Cards>

## API Organization 

The API is divided in two logical blocks:

1. High-level API, abstracting 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.

2. Low-level API, allowing 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.

<Callout intent = "info">
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.
</Callout>