# PrivateGPT

## Overview

**PrivateGPT** on Apolo gives you a turnkey, fully private solution to ingest, index, and query your data using LLMs — powered by embeddings and a PGVector backend. It’s perfect for building chatbots over proprietary docs, internal knowledge search tools, and RAG workflows—all while maintaining complete data sovereignty. To learn more about PrivateGPT, refer to the main [PrivateGPT](/index/apolo-console/apps/installable-apps/available-apps/privategpt.md) page for Apolo Console.

## Installing

Here we provide brief description of the application installation using Apolo CLI. See [Managing Apps](/index/apolo-concepts-cli/apps/installable-apps/managing-apps.md) page for generic flow of application installation via CLI. In this example, we will integrate with previously deployed PostgreSQL, vLLM and Text Embedding Inference applications.

**Step 1** — Obtain the application configuration file template:

```bash
apolo app-template get private-gpt -o myservice.yaml
```

**Step 2** — Customize the application parameters. With PrivateGPT, you can deploy RAG application within several clicks relying on previously deployed PostgreSQL for data storage, Apolo storage for binary files store, vLLM for LLM inference and Text Embeddings or vLLM for embeddings creation.\
Below is an example configuration file that deploys a PrivateGPT app.

```yaml
# Example of private-gpt-v25.5.1-config.yaml

template_name: private-gpt
template_version: v25.5.1
display_name: ysem-docs-pgpt
input:
    ingress_http:
        auth: true
    embeddings_api:
        type: app-instance-ref
        instance_id: 26914c96-a284-46c3-a3db-306fa89a4a4a
        path: embeddings_internal_api
    llm_chat_api:
        type: app-instance-ref
        instance_id: 9a5b6eef-1094-40cb-ba66-4a749e2c92d4
        path: chat_internal_api
    private_gpt_specific:
        llm_temperature: 0.1
        embeddings_dimension: 768
        llm_max_new_tokens: 5000
        llm_context_window: 8192
        llm_tokenizer_name: Qwen/Qwen2-7B-Instruct
    pgvector_user:
        type: app-instance-ref
        instance_id: cfd2ebe0-c6a5-4a86-a5b0-ebc0a9834ae0
        path: postgres_users/users/0
    preset:
        name: cpu-medium
```

**Step 3** — Deploy the application in your Apolo project:

```bash
apolo app install -f private-gpt-v25.5.1-config.yaml
```

Monitor the application status using:

```bash
apolo app list
```

To uninstall the application, use:

```bash
apolo app uninstall <app-id>
```

If you want to see logs of the application, use:

```bash
apolo app logs <app-id>
```

For instructions on how to access the application, please refer to the [Usage](/index/apolo-console/apps/installable-apps/available-apps/privategpt.md#usage) section in web console.

## Cleanup

When the application is not needed anymore, you could remove it by clicking the "uninstall" button on the installed app details/status screen.

## References

* [Apolo CLI Application management commands](/index/apolo-cli/commands/app.md)
* [Apolo CLI Application template commands](/index/apolo-cli/commands/app-template.md)
* [Apolo web console PrivateGPT application management](/index/apolo-console/apps/installable-apps/available-apps/privategpt.md)
* [PrivateGPT application source code](https://github.com/neuro-inc/private-gpt)
* [PostgreSQL application management](/index/apolo-console/apps/installable-apps/available-apps/postgre-sql.md)
* [Text Embeddings application management](/index/apolo-console/apps/installable-apps/available-apps/text-embeddings-inference.md)
* [vLLM application management](/index/apolo-console/apps/installable-apps/available-apps/llm-inference.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.apolo.us/index/apolo-concepts-cli/apps/installable-apps/available-apps/privategpt.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
