explaingit

openai/chatgpt-retrieval-plugin

21,210PythonAudience · developerComplexity · 4/5StaleLicenseSetup · hard

TLDR

A backend service that lets you search your personal or organizational documents using natural language through ChatGPT by storing them as vector embeddings in a database of your choice.

Mindmap

mindmap
  root((repo))
    What it does
      Search documents naturally
      Convert to embeddings
      Store in vector DB
    Supported databases
      Pinecone
      Weaviate
      Qdrant
      Redis
      MongoDB Atlas
    How to use
      ChatGPT Custom GPTs
      Assistants API
      Function calling
    Tech stack
      FastAPI
      Python
      Vector embeddings

Things people build with this

USE CASE 1

Build a ChatGPT plugin that searches your company's internal documentation and knowledge base.

USE CASE 2

Create a personal research assistant that lets you ask questions about your own documents and PDFs.

USE CASE 3

Set up a customer support system where ChatGPT can retrieve relevant help articles and policies on demand.

USE CASE 4

Index and search large collections of emails, notes, or transcripts using natural language queries.

Tech stack

PythonFastAPIOpenAI APIPineconeWeaviateQdrantRedis

Getting it running

Difficulty · hard Time to first run · 1h+

Requires choosing and configuring a vector database (Pinecone/Weaviate/Qdrant), obtaining OpenAI API key, and managing multiple external service credentials.

Use freely for any purpose, including commercial use, as long as you follow the terms of the MIT license.

In plain English

The ChatGPT Retrieval Plugin is a backend service that lets ChatGPT and similar applications search through your personal or work documents by asking questions in plain language. Instead of relying only on what an AI model already knows, the plugin gives the model access to your own files and returns the most relevant snippets when you ask about them. It is a standalone retrieval backend you can plug into Custom GPTs, the function-calling and Assistants APIs, or the older (now deprecated) ChatGPT plugins model. The idea is semantic search. When you upload documents, the plugin breaks each one into smaller chunks of text, turns each chunk into a numerical embedding using an OpenAI embedding model, and stores those embeddings in a vector database. When you ask a question, your question is also turned into an embedding, and the plugin finds the chunks whose embeddings are mathematically closest in meaning. The matching text is returned so the model can ground its answer in your actual content. You get more granular control than the built-in file-upload features in ChatGPT, for example, you can tune chunk length and pick the embedding model. You would use this if you want a self-hosted retrieval layer behind a Custom GPT or your own assistant, and you care about choosing where the data lives. The backend is written in Python (the quickstart targets Python 3.10) and uses a FastAPI server. It supports many vector database providers including Pinecone, Weaviate, Milvus, Qdrant, Redis, Chroma, Postgres, Supabase, Elasticsearch, MongoDB Atlas, and Azure Cognitive Search. The full README is longer than what was provided.

Copy-paste prompts

Prompt 1
How do I set up the ChatGPT Retrieval Plugin to index my documents and connect them to ChatGPT?
Prompt 2
Show me how to configure the plugin to use Pinecone as my vector database backend.
Prompt 3
What's the difference between using this plugin versus ChatGPT's built-in retrieval, and when should I choose this?
Prompt 4
Walk me through the document chunking and embedding process in this plugin, how does it convert my files into searchable vectors?
Prompt 5
How do I deploy this FastAPI server and integrate it with the OpenAI Assistants API?
Open on GitHub → Explain another repo

Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.