From fad2c670907e59a089d3e1e4ead038aaa9e33fba Mon Sep 17 00:00:00 2001
From: Jerry Liu <jerryjliu98@gmail.com>
Date: Mon, 12 Dec 2022 22:53:15 -0800
Subject: [PATCH] Revert "Add documentation (#96)" (#102)

This reverts commit 3b913aa47baa8a0c74c733f2d2bed113da1c2b04.

Co-authored-by: Jerry Liu <jerry@robustintelligence.com>
---
 README.md                                     |  62 +++++++++------
 docs/Makefile                                 |  20 -----
 docs/_static/composability/diagram.png        | Bin 31056 -> 0 bytes
 docs/_static/composability/diagram_b0.png     | Bin 14133 -> 0 bytes
 docs/_static/composability/diagram_b1.png     | Bin 30486 -> 0 bytes
 docs/_static/composability/diagram_q1.png     | Bin 40713 -> 0 bytes
 docs/_static/composability/diagram_q2.png     | Bin 55410 -> 0 bytes
 docs/conf.py                                  |  50 ------------
 docs/getting_started/installation.md          |  20 -----
 docs/getting_started/overview.rst             |   4 -
 docs/getting_started/starter_example.md       |  69 ----------------
 docs/how_to/composability.md                  |  53 -------------
 docs/how_to/cost_analysis.md                  |  39 ---------
 docs/how_to/custom_llms.md                    |  43 ----------
 docs/how_to/custom_prompts.md                 |  54 -------------
 docs/how_to/data_connectors.md                |  13 ---
 docs/how_to/embeddings.md                     |  27 -------
 docs/how_to/insert.md                         |   5 --
 docs/how_to/overview.rst                      |   4 -
 docs/index.rst                                |  75 ------------------
 docs/make.bat                                 |  35 --------
 docs/reference/example_notebooks.rst          |   8 --
 docs/reference/indices.rst                    |  15 ----
 docs/reference/indices/list.rst               |   9 ---
 docs/reference/indices/list_query.rst         |   7 --
 docs/reference/indices/table.rst              |   8 --
 docs/reference/indices/table_query.rst        |   7 --
 docs/reference/indices/tree.rst               |   8 --
 docs/reference/indices/tree_query.rst         |   7 --
 docs/reference/llm_predictor.rst              |  10 ---
 docs/reference/overview.rst                   |   4 -
 docs/reference/prompts.rst                    |  70 ----------------
 docs/reference/query.rst                      |  14 ----
 docs/reference/readers.rst                    |   6 --
 docs/requirements.txt                         |   3 -
 gpt_index/__init__.py                         |  13 ++-
 gpt_index/indices/__init__.py                 |  17 +---
 gpt_index/indices/base.py                     |  36 +--------
 gpt_index/indices/keyword_table/__init__.py   |  13 +--
 gpt_index/indices/keyword_table/base.py       |  23 +-----
 gpt_index/indices/keyword_table/rake_base.py  |   6 +-
 .../indices/keyword_table/simple_base.py      |   6 +-
 gpt_index/indices/list/__init__.py            |   8 +-
 gpt_index/indices/list/base.py                |  25 +-----
 .../indices/query/keyword_table/__init__.py   |  14 +---
 .../indices/query/keyword_table/query.py      |  43 +---------
 gpt_index/indices/query/list/__init__.py      |   7 +-
 .../indices/query/list/embedding_query.py     |  15 +---
 gpt_index/indices/query/list/query.py         |  29 +------
 gpt_index/indices/query/tree/__init__.py      |  12 +--
 .../indices/query/tree/embedding_query.py     |  20 -----
 gpt_index/indices/query/tree/leaf_query.py    |  18 -----
 .../indices/query/tree/retrieve_query.py      |   8 --
 gpt_index/indices/tree/__init__.py            |   9 +--
 gpt_index/indices/tree/base.py                |  18 +----
 gpt_index/langchain_helpers/chain_wrapper.py  |  24 +-----
 gpt_index/prompts/__init__.py                 |   6 +-
 gpt_index/readers/__init__.py                 |  26 +-----
 gpt_index/readers/file.py                     |  13 +--
 gpt_index/readers/mongo.py                    |  16 +---
 gpt_index/readers/notion.py                   |  13 +--
 gpt_index/readers/slack.py                    |  14 +---
 gpt_index/readers/wikipedia.py                |   7 +-
 tests/indices/list/__init__.py                |   8 +-
 64 files changed, 75 insertions(+), 1141 deletions(-)
 delete mode 100644 docs/Makefile
 delete mode 100644 docs/_static/composability/diagram.png
 delete mode 100644 docs/_static/composability/diagram_b0.png
 delete mode 100644 docs/_static/composability/diagram_b1.png
 delete mode 100644 docs/_static/composability/diagram_q1.png
 delete mode 100644 docs/_static/composability/diagram_q2.png
 delete mode 100644 docs/conf.py
 delete mode 100644 docs/getting_started/installation.md
 delete mode 100644 docs/getting_started/overview.rst
 delete mode 100644 docs/getting_started/starter_example.md
 delete mode 100644 docs/how_to/composability.md
 delete mode 100644 docs/how_to/cost_analysis.md
 delete mode 100644 docs/how_to/custom_llms.md
 delete mode 100644 docs/how_to/custom_prompts.md
 delete mode 100644 docs/how_to/data_connectors.md
 delete mode 100644 docs/how_to/embeddings.md
 delete mode 100644 docs/how_to/insert.md
 delete mode 100644 docs/how_to/overview.rst
 delete mode 100644 docs/index.rst
 delete mode 100644 docs/make.bat
 delete mode 100644 docs/reference/example_notebooks.rst
 delete mode 100644 docs/reference/indices.rst
 delete mode 100644 docs/reference/indices/list.rst
 delete mode 100644 docs/reference/indices/list_query.rst
 delete mode 100644 docs/reference/indices/table.rst
 delete mode 100644 docs/reference/indices/table_query.rst
 delete mode 100644 docs/reference/indices/tree.rst
 delete mode 100644 docs/reference/indices/tree_query.rst
 delete mode 100644 docs/reference/llm_predictor.rst
 delete mode 100644 docs/reference/overview.rst
 delete mode 100644 docs/reference/prompts.rst
 delete mode 100644 docs/reference/query.rst
 delete mode 100644 docs/reference/readers.rst
 delete mode 100644 docs/requirements.txt

diff --git a/README.md b/README.md
index 657f7fcf2..b00595a63 100644
--- a/README.md
+++ b/README.md
@@ -1,38 +1,22 @@
 # 🗂️ ️GPT Index
 
-GPT Index is a project consisting of a set of *data structures* that are created using LLMs and can be traversed using LLMs in order to answer queries.
-
-PyPi: https://pypi.org/project/gpt-index/.
-
-Documentation: https://gpt-index.readthedocs.io/en/latest/.
+GPT Index is a project consisting of a set of *data structures* that are created using GPT-3 and can be traversed using GPT-3 in order to answer queries.
 
 ## 🚀 Overview
 
 #### Context
-- LLMs are a phenomenonal piece of technology for knowledge generation and reasoning.
-- A big limitation of LLMs is context size (e.g. OpenAI's `davinci` model for GPT-3 has a [limit](https://openai.com/api/pricing/) of 4096 tokens. Large, but not infinite).
-- The ability to feed "knowledge" to LLMs is restricted to this limited prompt size and model weights.
-- **Thought**: What if LLMs can have access to potentially a much larger database of knowledge without retraining/finetuning? 
+- GPT-3 is a phenomenonal piece of technology for knowledge generation and reasoning.
+- A big limitation of GPT-3 is context size (e.g. Davinci's limit is 4096 tokens. Large, but not infinite).
+- The ability to feed "knowledge" to GPT-3 is restricted to this limited prompt size and model weights.
+- **Thought**: What if GPT-3 can have access to potentially a much larger database of knowledge without retraining/finetuning? 
 
 #### Proposed Solution
-That's where the **GPT Index** comes in. GPT Index is a simple, flexible interface between your external data and LLMs. It resolves the following pain points:
-
-- Provides simple data structures to resolve prompt size limitations.
-- Offers data connectors to your external data sources.
-- Offers you a comprehensive toolset trading off cost and performance.
-
-At the core of GPT Index is a **data structure**. Instead of relying on world knowledge encoded in the model weights, a GPT Index data structure does the following:
-
-- Uses a pre-trained LLM primarily for *reasoning*/*summarization* instead of prior knowledge.
-- Takes as input a large corpus of text data and build a structured index over it (using an LLM or heuristics).
-- Allow users to *query* the index in order to synthesize an answer to the question - this requires both *traversal* of the index as well as a synthesis of the answer.
-
-## 📄 Documentation
-
-Full documentation can be found here: https://gpt-index.readthedocs.io/en/latest/. 
-
-Please check it out for the most up-to-date tutorials, how-to guides, references, and other resources! 
+That's where the **GPT Index** data structures come in. Instead of relying on world knowledge encoded in the model weights, a GPT Index data structure does the following:
+- Uses a pre-trained GPT-3 model primarily for *reasoning*/*summarization* instead of prior knowledge.
+- Takes as input a large corpus of text data and build a structured index over it (using GPT-3 or heuristics).
+- Allow users to _query_ the index in order to synthesize an answer to the question - this requires both _traversal_ of the index as well as a synthesis of the answer.
 
+The high-level design exercise of this project is to test the capability of GPT-3 as a general-purpose processor to organize and retrieve data. From our current understanding, related works have used GPT-3 to reason with external db sources (see below); this work links reasoning with knowledge building.
 
 ## 💻 Example Usage
 
@@ -69,6 +53,32 @@ The main third-party package requirements are `transformers`, `openai`, and `lan
 All requirements should be contained within the `setup.py` file. To run the package locally without building the wheel, simply do `pip install -r requirements.txt`. 
 
 
+## Index Data Structures
+
+- [`Tree Index`](gpt_index/indices/tree/README.md): Tree data structures
+    - **Creation**: with GPT hierarchical summarization over sub-documents
+    - **Query**: with GPT recursive querying over multiple choice problems
+- [`Keyword Table Index`](gpt_index/indices/keyword_table/README.md): a keyword-based table
+    - **Creation**: with GPT keyword extraction over each sub-document
+    - **Query**: with GPT keyword extraction over question, match to sub-documents. *Create and refine* an answer over candidate sub-documents.
+- [`List Index`](gpt_index/indices/list/README.md): a simple list-based data structure
+    - **Creation**: by splitting documents into a list of text chunks
+    - **Query**: use GPT with a create and refine prompt iterately over the list of sub-documents
+
+
+## Data Connectors
+
+We currently offer connectors into the following data sources. External data sources are retrieved through their APIs + corresponding authentication token.
+- Notion (`NotionPageReader`)
+- Google Drive (`GoogleDocsReader`)
+- Slack (`SlackReader`)
+- MongoDB (local) (`SimpleMongoReader`)
+- Wikipedia (`WikipediaReader`)
+- local file directory (`SimpleDirectoryReader`)
+
+Example notebooks of how to use data connectors are found in the [Data Connector Example Notebooks](examples/data_connectors).
+
+
 ## 🔬 Related Work [WIP]
 
 [Measuring and Narrowing the Compositionality Gap in Language Models, by Press et al.](https://arxiv.org/abs/2210.03350)
diff --git a/docs/Makefile b/docs/Makefile
deleted file mode 100644
index d4bb2cbb9..000000000
--- a/docs/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line, and also
-# from the environment for the first two.
-SPHINXOPTS    ?=
-SPHINXBUILD   ?= sphinx-build
-SOURCEDIR     = .
-BUILDDIR      = _build
-
-# Put it first so that "make" without argument is like "make help".
-help:
-	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
-	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/docs/_static/composability/diagram.png b/docs/_static/composability/diagram.png
deleted file mode 100644
index 9734b399757d0e7d5aae85768423cd59b51873b0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 31056
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

diff --git a/docs/_static/composability/diagram_b0.png b/docs/_static/composability/diagram_b0.png
deleted file mode 100644
index 0e080daaac368b2f8497d5815637cc9f0d4a85f7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 14133
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
W%I;zWv|L~6hPm0f69vbd@BA-!0)|ik

diff --git a/docs/_static/composability/diagram_b1.png b/docs/_static/composability/diagram_b1.png
deleted file mode 100644
index 31a6d3055ff6259c6bf46c4cd8b23f1fa9f32ecc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 30486
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
OuUP8#<<&2|kNh8p=A@ti

diff --git a/docs/_static/composability/diagram_q1.png b/docs/_static/composability/diagram_q1.png
deleted file mode 100644
index feb6cbb723f8c537a029e36f2863288ecf9616ee..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 40713
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

diff --git a/docs/_static/composability/diagram_q2.png b/docs/_static/composability/diagram_q2.png
deleted file mode 100644
index f89af4216df9e549bb5a6105709667c2bd9151de..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 55410
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
aAR!X8B}|<t;U3UfXsPR|<z2n^$A17B)xUNC

diff --git a/docs/conf.py b/docs/conf.py
deleted file mode 100644
index e82983c97..000000000
--- a/docs/conf.py
+++ /dev/null
@@ -1,50 +0,0 @@
-"""Configuration for sphinx."""
-# Configuration file for the Sphinx documentation builder.
-#
-# For the full list of built-in configuration values, see the documentation:
-# https://www.sphinx-doc.org/en/master/usage/configuration.html
-
-# -- Path setup --------------------------------------------------------------
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-import os
-import sys
-
-import sphinx_rtd_theme  # noqa: F401
-
-sys.path.insert(0, os.path.abspath("../"))
-
-# -- Project information -----------------------------------------------------
-# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
-
-
-project = "GPT Index"
-copyright = "2022, Jerry Liu"
-author = "Jerry Liu"
-
-# -- General configuration ---------------------------------------------------
-# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
-
-extensions = [
-    "sphinx.ext.autodoc",
-    "sphinx.ext.coverage",
-    "sphinx.ext.autodoc.typehints",
-    "sphinx.ext.autosummary",
-    "sphinx.ext.napoleon",
-    "sphinx_rtd_theme",
-    "sphinx.ext.mathjax",
-    "myst_parser",
-]
-
-templates_path = ["_templates"]
-exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
-
-
-# -- Options for HTML output -------------------------------------------------
-# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
-
-html_theme = "sphinx_rtd_theme"
-html_static_path = ["_static"]
diff --git a/docs/getting_started/installation.md b/docs/getting_started/installation.md
deleted file mode 100644
index 676e9d36b..000000000
--- a/docs/getting_started/installation.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Installation and Setup
-
-### Installation from Pip
-
-You can simply do:
-```
-pip install gpt-index
-```
-
-### Installation from Source
-Git clone this repository: `git clone git@github.com:jerryjliu/gpt_index.git`. Then do:
-
-- `pip install -e .` if you want to do an editable install (you can modify source files) of just the package itself.
-- `pip install -r requirements.txt` if you want to install optional dependencies + dependencies used for development (e.g. unit testing).
-
-
-### Environment Setup
-
-By default, we use the OpenAI GPT-3 `text-davinci-002` model. In order to use this, you must have an OPENAI_API_KEY setup.
-You can register an API key by logging into [OpenAI's page and creating a new API token](https://beta.openai.com/account/api-keys)
diff --git a/docs/getting_started/overview.rst b/docs/getting_started/overview.rst
deleted file mode 100644
index 25a789daf..000000000
--- a/docs/getting_started/overview.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Overview
-=====================================
-
-This section shows you how to quickly get up and running with GPT Index.
diff --git a/docs/getting_started/starter_example.md b/docs/getting_started/starter_example.md
deleted file mode 100644
index d75a8532a..000000000
--- a/docs/getting_started/starter_example.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# Starter Tutorial
-
-Here is a starter example for using GPT Index. Make sure you've followed the [installation](installation.md) steps first.
-
-
-### Download
-GPT Index examples can be found in the `examples` folder of the GPT Index repository. 
-We first want to download this `examples` folder. An easy way to do this is to just clone the repo: 
-
-```bash
-$ git clone git@github.com:jerryjliu/gpt_index.git
-```
-
-Next, navigate to your newly-cloned repository, and verify the contents:
-
-```bash
-$ cd gpt_index
-$ ls
-LICENSE                data_requirements.txt  tests/
-MANIFEST.in            examples/              pyproject.toml
-Makefile               experimental/          requirements.txt
-README.md              gpt_index/             setup.py
-```
-
-
-We now want to navigate to the following folder:
-```bash
-$ cd examples/paul_graham_essay
-```
-
-This contains GPT Index examples around Paul Graham's essay, ["What I Worked On"](http://paulgraham.com/worked.html). A comprehensive set of examples are already provided in `TestEssay.ipynb`. For the purposes of this tutorial, we can focus on a simple example of getting GPT Index up and running.
-
-
-### Build and Query Index
-Create a new `.py` file with the following:
-
-```python
-from gpt_index import GPTTreeIndex, SimpleDirectoryReader
-from IPython.display import Markdown, display
-
-documents = SimpleDirectoryReader('data').load_data()
-index = GPTTreeIndex(documents)
-```
-
-This builds an index over the documents in the `data` folder (which in this case just consists of the essay text). We then run the following
-```python
-response = index.query("What did the author do growing up?")
-print(response)
-```
-
-You should get back a response similar to the following: `The author wrote short stories and tried to program on an IBM 1401.`
-
-### Saving and Loading
-
-To save to disk and load from disk, do
-
-```python
-# save to disk
-index.save_to_disk('index.json')
-# load from disk
-index = GPTTreeIndex.load_from_disk('index.json')
-```
-
-
-### Next Steps
-
-That's it! For more information on GPT Index features, please check out the numerous "How-To Guides" to the left.
-Additionally, if you would like to play around with Example Notebooks, check out [this link](/reference/example_notebooks.rst).
-
diff --git a/docs/how_to/composability.md b/docs/how_to/composability.md
deleted file mode 100644
index 6b46516f3..000000000
--- a/docs/how_to/composability.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# Composability
-
-
-GPT Index offers **composability** of your indices, meaning that you can build indices on top of other indices. This allows you to more effectively index your entire document tree in order to feed custom knowledge to GPT.
-
-Composability allows you to to define lower-level indices for each document, and higher-order indices over a collection of documents. To see how this works, imagine defining 1) a tree index for the text within each document, and 2) a list index over each tree index (one document) within your collection.
-
-To see how this works, imagine you have 3 documents: `doc1`, `doc2`, and `doc3`.
-
-```python
-doc1 = SimpleDirectoryReader('data1').load_data()
-doc2 = SimpleDirectoryReader('data2').load_data()
-doc3 = SimpleDirectoryReader('data3').load_data()
-```
-
-![](/_static/composability/diagram_b0.png)
-
-Now let's define a tree index for each document. In Python, we have:
-
-```python
-index1 = GPTTreeIndex(doc1)
-index2 = GPTTreeIndex(doc2)
-index2 = GPTTreeIndex(doc2)
-```
-
-![](/_static/composability/diagram_b1.png)
-
-We can then create a list index on these 3 tree indices:
-
-```python
-list_index = GPTListIndex([index1, index2, index3])
-```
-
-![](/_static/composability/diagram.png)
-
-During a query, we would start with the top-level list index. Each node in the list corresponds to an underlying tree index. 
-
-```python
-response = list_index.query("Where did the author grow up?")
-```
-
-![](/_static/composability/diagram_q1.png)
-
-So within a node, instead of fetching the text, we would recursively query the stored tree index to retrieve our answer.
-
-![](/_static/composability/diagram_q2.png)
-
-NOTE: You can stack indices as many times as you want, depending on the hierarchies of your knowledge base! 
-
-
-We can take a look at a code example below as well. We first build two tree indices, one over the Wikipedia NYC page, and the other over Paul Graham's essay. We then define a keyword extractor index over the two tree indices.
-
-[Here is an example notebook](https://github.com/jerryjliu/gpt_index/blob/main/examples/composable_indices/ComposableIndices.ipynb).
diff --git a/docs/how_to/cost_analysis.md b/docs/how_to/cost_analysis.md
deleted file mode 100644
index 891060b24..000000000
--- a/docs/how_to/cost_analysis.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# Cost Analysis
-
-Each call to an LLM will cost some amount of money - for instance, OpenAI's Davinci costs $0.02 / 1k tokens. The cost of building an index and querying depends on 
-1. the type of LLM used
-2. the type of data structure used
-3. parameters used during building 
-4. parameters used during querying
-
-The cost of building and querying each index is a TODO in the reference documentation. In the meantime, here is a high-level overview of the cost structure of the indices.
-
-### Index Building
-
-
-#### Indices with no LLM calls
-The following indices don't require LLM calls at all during building (0 cost):
-- `GPTListIndex`
-- `GPTSimpleKeywordTableIndex` - uses a regex keyword extractor to extract keywords from each document
-- `GPTRAKEKeywordTableIndex` - uses a RAKE keyword extractor to extract keywords from each document
-
-#### Indices with LLM calls
-The following indices do require LLM calls during build time:
-- `GPTTreeIndex` - use LLM to hierarchically summarize the text to build the tree
-- `GPTKeywordTableIndex` - use LLM to extract keywords from each document
-
-
-### Query Time
-
-There will always be >= 1 LLM call during query time, in order to synthesize the final answer. 
-Some indices contain cost tradeoffs between index building and querying. `GPTListIndex`, for instance,
-is free to build, but running a query over a list index (without filtering or embedding lookups), will
-call the LLM {math}`N` times.
-
-Here are some notes regarding each of the indices:
-- `GPTListIndex`: by default requires {math}`N` LLM calls, where N is the number of nodes.
-    - However, can do `index.query(..., keyword="<keyword>")` to filter out nodes that don't contain the keyword
-- `GPTTreeIndex`: by default requires {math}`\log (N)` LLM calls, where N is the number of leaf nodes. 
-    - Setting `child_branch_factor=2` will be more expensive than the default `child_branch_factor=1` (polynomial vs logarithmic), because we traverse 2 children instead of just 1 for each parent node.
-- `GPTKeywordTableIndex`: by default requires an LLM call to extract query keywords.
-    - Can do `index.query(..., mode="simple")` or `index.query(..., mode="rake")` to also use regex/RAKE keyword extractors on your query text.
\ No newline at end of file
diff --git a/docs/how_to/custom_llms.md b/docs/how_to/custom_llms.md
deleted file mode 100644
index 99581ef4b..000000000
--- a/docs/how_to/custom_llms.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# Defining LLMs
-
-The goal of GPT Index is to provide a toolkit of data structures that can organize external information in a manner that 
-is easily compatible with the prompt limitations of an LLM. Therefore LLMs are always used to construct the final
-answer.
-Depending on the [type of index](/reference/indices.rst) being used,
-LLMs may also be used during index construction, insertion, and query traversal.
-
-GPT Index uses Langchain's [LLM](https://langchain.readthedocs.io/en/latest/modules/llms.html) 
-and [LLMChain](https://langchain.readthedocs.io/en/latest/modules/chains.html) module to define
-the underlying abstraction. We introduce a wrapper class, 
-[`LLMPredictor`](/reference/llm_predictor.rst), for integration into GPT Index.
-
-By default, we use OpenAI's `text-davinci-002` model. But you may choose to customize
-the underlying LLM being used.
-
-
-## Example
-
-An example snippet of customizing the LLM being used is shown below. 
-In this example, we use `text-davinci-003` instead of `text-davinci-002`. Note that 
-you may plug in any LLM shown on Langchain's 
-[LLM](https://langchain.readthedocs.io/en/latest/modules/llms.html) page.
-
-
-```python
-
-from gpt_index import GPTKeywordTableIndex, SimpleDirectoryReader, LLMPredictor
-from langchain import OpenAI
-
-# define LLM
-llm_predictor = LLMPredictor(llm=OpenAI(temperature=0, model_name="text-davinci-002"))
-
-# load index from disk
-index = GPTKeywordTableIndex.load_from_disk('index_table.json', llm_predictor=llm_predictor)
-
-# get response from query
-response = index.query("What did the author do after his time at Y Combinator?")
-
-```
-
-In this snipet, the index has already been created and saved to disk. We load
-the existing index, and swap in a new `LLMPredictor` that is used during query time.
\ No newline at end of file
diff --git a/docs/how_to/custom_prompts.md b/docs/how_to/custom_prompts.md
deleted file mode 100644
index f1cf36c14..000000000
--- a/docs/how_to/custom_prompts.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# Defining Prompts
-
-Prompting is the fundamental input that gives LLMs their expressive power. GPT Index uses prompts to build the index, do insertion, 
-perform traversal during querying, and to synthesize the final answer.
-
-GPT Index uses a finite set of *prompt types*, described [here](/reference/prompts.rst). 
-All index classes, along with their associated queries, utilize a subset of these prompts. The user may provide their own prompt.
-If the user does not provide their own prompt, default prompts are used.
-
-An API reference of all index classes and query classes are found below. The definition of each index class and query
-contains optional prompts that the user may pass in.
-- [Indices](/reference/indices.rst)
-- [Queries](/reference/query.rst)
-
-
-### Example
-
-An example can be found in [this notebook](https://github.com/jerryjliu/gpt_index/blob/main/examples/paul_graham_essay/TestEssay.ipynb).
-
-The corresponding snippet is below. We show how to define a custom Summarization Prompt that not only
-contains a `text` field, but also `query_str` field during construction of `GPTTreeIndex`, so that 
-the answer to the query can be simply synthesized from the root nodes.
-
-```python
-
-from gpt_index import Prompt, GPTTreeIndex, SimpleDirectoryReader
-
-# load documents
-documents = SimpleDirectoryReader('data').load_data()
-# define custom prompt
-query_str = "What did the author do growing up?"
-summary_prompt_tmpl = (
-    "Context information is below. \n"
-    "---------------------\n"
-    "{text}"
-    "\n---------------------\n"
-    "Given the context information and not prior knowledge, "
-    "answer the question: {query_str}\n"
-)
-
-summary_prompt = Prompt(
-    input_variables=["query_str", "text"],
-    template=DEFAULT_TEXT_QA_PROMPT_TMPL
-)
-# Build GPTTreeIndex: pass in custom prompt, also pass in query_str
-index_with_query = GPTTreeIndex(documents, summary_template=summary_prompt, query_str=query_str)
-
-```
-
-Once the index is built, we can retrieve our answer:
-```python
-# directly retrieve response from root nodes instead of traversing tree
-response = index_with_query.query(query_str, mode="retrieve")
-```
diff --git a/docs/how_to/data_connectors.md b/docs/how_to/data_connectors.md
deleted file mode 100644
index d9b39b3ba..000000000
--- a/docs/how_to/data_connectors.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Data Connectors
-
-We currently offer connectors into the following data sources. External data sources are retrieved through their APIs + corresponding authentication token.
-The API reference documentation can be found [here](/reference/readers.rst).
-
-- [Notion](https://developers.notion.com/) (`NotionPageReader`)
-- [Google Docs](https://developers.google.com/docs/api) (`GoogleDocsReader`)
-- [Slack](https://api.slack.com/) (`SlackReader`)
-- MongoDB (`SimpleMongoReader`)
-- Wikipedia (`WikipediaReader`)
-- local file directory (`SimpleDirectoryReader`)
-
-We offer [example notebooks of connecting to different data sources](https://github.com/jerryjliu/gpt_index/tree/main/examples/data_connectors). Please check them out!
\ No newline at end of file
diff --git a/docs/how_to/embeddings.md b/docs/how_to/embeddings.md
deleted file mode 100644
index cc713330d..000000000
--- a/docs/how_to/embeddings.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Embedding support
-
-GPT Index provides embedding support to our tree and list indices. In addition to each node storing text, each node can optionally store an embedding.
-During query-time, we can use embeddings to do max-similarity retrieval of nodes before calling the LLM to synthesize an answer. 
-Since similarity lookup using embeddings (e.g. using cosine similarity) does not require a LLM call, embeddings serve as a cheaper lookup mechanism instead
-of using LLMs to traverse nodes.
-
-NOTE: we currently support OpenAI embeddings. External embeddings are coming soon!
-
-**How are Embeddings Generated?**
-
-Embeddings are lazily generated and then cached at query time (if mode="embedding" is specified during `index.query`), and not during index construction.
-This design choice prevents the need to generate embeddings for all text chunks during index construction.
-
-**Embedding Lookups**
-For the list index:
-- We iterate through every node in the list, and identify the top k nodes through embedding similarity. We use these nodes to synthesize an answer.
-- See the [List Query API](/reference/indices/list_query.rst) for more details.
-
-For the tree index:
-- We start with the root nodes, and traverse down the tree by picking the child node through embedding similarity.
-- See the [Tree Query API](/reference/indices/tree_query.rst) for more details.
-
-**Example Notebook**
-
-An example notebook is given [here](https://github.com/jerryjliu/gpt_index/blob/main/examples/test_wiki/TestNYC_Embeddings.ipynb).
-
diff --git a/docs/how_to/insert.md b/docs/how_to/insert.md
deleted file mode 100644
index 3b28eb8f7..000000000
--- a/docs/how_to/insert.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Insert Capabilities
-
-Every GPT Index data structure allows insertion.
-
-An example notebook showcasing our insert capabilities is given [here](https://github.com/jerryjliu/gpt_index/blob/main/examples/paul_graham_essay/InsertDemo.ipynb).
\ No newline at end of file
diff --git a/docs/how_to/overview.rst b/docs/how_to/overview.rst
deleted file mode 100644
index 1c6cc0c6d..000000000
--- a/docs/how_to/overview.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Overview
-=====================================
-
-The how-to section contains guides on some of the core features of GPT Index:
diff --git a/docs/index.rst b/docs/index.rst
deleted file mode 100644
index 081304af6..000000000
--- a/docs/index.rst
+++ /dev/null
@@ -1,75 +0,0 @@
-.. GPT Index documentation master file, created by
-   sphinx-quickstart on Sun Dec 11 14:30:34 2022.
-   You can adapt this file completely to your liking, but it should at least
-   contain the root `toctree` directive.
-
-Welcome to GPT Index!
-=====================================
-
-GPT Index is a project consisting of a set of data structures that are created using LLMs and can be traversed using LLMs in order to answer queries.
-
-The Github project page is here: https://github.com/jerryjliu/gpt_index.
-
-The pypi package is here: https://pypi.org/project/gpt-index/.
-
-
-🚀 Overview
------------
-
-Context
-^^^^^^^
-- LLMs are a phenomenonal piece of technology for knowledge generation and reasoning.
-- A big limitation of LLMs is context size (e.g. Davinci's limit is 4096 tokens. Large, but not infinite).
-- The ability to feed "knowledge" to LLMs is restricted to this limited prompt size and model weights.
-- **Thought**: What if LLMs can have access to potentially a much larger database of knowledge without retraining/finetuning? 
-
-Proposed Solution
-^^^^^^^^^^^^^^^^^
-That's where the **GPT Index** comes in. GPT Index is a simple, flexible interface between your external data and LLMs. It resolves the following pain points:
-
-- Provides simple data structures to resolve prompt size limitations.
-- Offers data connectors to your external data sources.
-- Offers you a comprehensive toolset trading off cost and performance.
-
-At the core of GPT Index is a **data structure**. Instead of relying on world knowledge encoded in the model weights, a GPT Index data structure does the following:
-
-- Uses a pre-trained LLM primarily for *reasoning*/*summarization* instead of prior knowledge.
-- Takes as input a large corpus of text data and build a structured index over it (using an LLM or heuristics).
-- Allow users to *query* the index in order to synthesize an answer to the question - this requires both *traversal* of the index as well as a synthesis of the answer.
-
-
-.. toctree::
-   :maxdepth: 1
-   :caption: Getting Started
-
-   getting_started/overview.rst
-   getting_started/installation.md
-   getting_started/starter_example.md
-
-
-.. toctree::
-   :maxdepth: 1
-   :caption: How To
-
-   how_to/overview.rst
-   how_to/data_connectors.md
-   how_to/composability.md
-   how_to/insert.md
-   how_to/cost_analysis.md
-   how_to/embeddings.md
-   how_to/custom_prompts.md
-   how_to/custom_llms.md
-
-
-.. toctree::
-   :maxdepth: 1
-   :caption: Reference
-
-   reference/overview.rst
-   reference/indices.rst
-   reference/query.rst
-   reference/readers.rst
-   reference/prompts.rst
-   reference/example_notebooks.rst
-   reference/llm_predictor.rst
-
diff --git a/docs/make.bat b/docs/make.bat
deleted file mode 100644
index 32bb24529..000000000
--- a/docs/make.bat
+++ /dev/null
@@ -1,35 +0,0 @@
-@ECHO OFF
-
-pushd %~dp0
-
-REM Command file for Sphinx documentation
-
-if "%SPHINXBUILD%" == "" (
-	set SPHINXBUILD=sphinx-build
-)
-set SOURCEDIR=.
-set BUILDDIR=_build
-
-%SPHINXBUILD% >NUL 2>NUL
-if errorlevel 9009 (
-	echo.
-	echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
-	echo.installed, then set the SPHINXBUILD environment variable to point
-	echo.to the full path of the 'sphinx-build' executable. Alternatively you
-	echo.may add the Sphinx directory to PATH.
-	echo.
-	echo.If you don't have Sphinx installed, grab it from
-	echo.https://www.sphinx-doc.org/
-	exit /b 1
-)
-
-if "%1" == "" goto help
-
-%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
-goto end
-
-:help
-%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
-
-:end
-popd
diff --git a/docs/reference/example_notebooks.rst b/docs/reference/example_notebooks.rst
deleted file mode 100644
index df5e3e58b..000000000
--- a/docs/reference/example_notebooks.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-.. _Ref-Example-Notebooks:
-
-Example Notebooks
-=================
-
-We offer a wide variety of example notebooks. They are referenced throughout the documentation.
-
-Example notebooks are found `here <https://github.com/jerryjliu/gpt_index/tree/main/examples>`_.
\ No newline at end of file
diff --git a/docs/reference/indices.rst b/docs/reference/indices.rst
deleted file mode 100644
index 89a8b7fcd..000000000
--- a/docs/reference/indices.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-.. _Ref-Indices:
-
-Indices
-=======
-
-This doc shows both the overarching class used to represent an index. These
-classes allow for index creation, insertion, and also querying.
-
-.. toctree::
-   :maxdepth: 1
-   :caption: Index Data Structures
-
-   indices/list.rst
-   indices/table.rst
-   indices/tree.rst
diff --git a/docs/reference/indices/list.rst b/docs/reference/indices/list.rst
deleted file mode 100644
index 65c0ea734..000000000
--- a/docs/reference/indices/list.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-List Index
-==========
-
-Building the List Index
-
-.. automodule:: gpt_index.indices.list
-   :members:
-   :inherited-members:
-   :exclude-members: delete, docstore, index_struct, index_struct_cls
\ No newline at end of file
diff --git a/docs/reference/indices/list_query.rst b/docs/reference/indices/list_query.rst
deleted file mode 100644
index fa65e4498..000000000
--- a/docs/reference/indices/list_query.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Querying a List Index
-=====================
-
-.. automodule:: gpt_index.indices.query.list
-   :members:
-   :inherited-members:
-   :exclude-members: index_struct, query, set_llm_predictor, set_prompt_helper
\ No newline at end of file
diff --git a/docs/reference/indices/table.rst b/docs/reference/indices/table.rst
deleted file mode 100644
index bdda65a5d..000000000
--- a/docs/reference/indices/table.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Table Index
-===========
-
-Building the Keyword Table Index
-
-.. automodule:: gpt_index.indices.keyword_table
-   :members:
-   :inherited-members:
\ No newline at end of file
diff --git a/docs/reference/indices/table_query.rst b/docs/reference/indices/table_query.rst
deleted file mode 100644
index abcb62a70..000000000
--- a/docs/reference/indices/table_query.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Querying a Keyword Table Index
-==============================
-
-.. automodule:: gpt_index.indices.query.keyword_table
-   :members:
-   :inherited-members:
-   :exclude-members: index_struct, query, set_llm_predictor, set_prompt_helper
\ No newline at end of file
diff --git a/docs/reference/indices/tree.rst b/docs/reference/indices/tree.rst
deleted file mode 100644
index 5e582f92a..000000000
--- a/docs/reference/indices/tree.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Tree Index
-==========
-
-Building the Tree Index
-
-.. automodule:: gpt_index.indices.tree
-   :members:
-   :inherited-members:
\ No newline at end of file
diff --git a/docs/reference/indices/tree_query.rst b/docs/reference/indices/tree_query.rst
deleted file mode 100644
index 46f5e67f5..000000000
--- a/docs/reference/indices/tree_query.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Querying a Tree Index
-=====================
-
-.. automodule:: gpt_index.indices.query.tree
-   :members:
-   :inherited-members:
-   :exclude-members: index_struct, query, set_llm_predictor, set_prompt_helper
\ No newline at end of file
diff --git a/docs/reference/llm_predictor.rst b/docs/reference/llm_predictor.rst
deleted file mode 100644
index ffc096c78..000000000
--- a/docs/reference/llm_predictor.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-.. _Ref-LLM-Predictor:
-
-LLMPredictor
-=================
-
-Our LLMPredictor is a wrapper around Langchain's `LLMChain` that allows easy integration into GPT Index.
-
-.. automodule:: gpt_index.langchain_helpers.chain_wrapper
-   :members:
-   :inherited-members:
diff --git a/docs/reference/overview.rst b/docs/reference/overview.rst
deleted file mode 100644
index b5ef28e5b..000000000
--- a/docs/reference/overview.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Overview
-=====================================
-
-The reference section contains comprehensive API documentation over all index data structures, and query modes.
diff --git a/docs/reference/prompts.rst b/docs/reference/prompts.rst
deleted file mode 100644
index eb8c0cfda..000000000
--- a/docs/reference/prompts.rst
+++ /dev/null
@@ -1,70 +0,0 @@
-.. _Prompt-Templates:
-
-Prompt Templates
-=================
-
-These are the reference prompt templates. 
-We then document all prompts, with their required variables.
-
-We then show the base prompt class, 
-derived from `Langchain <https://langchain.readthedocs.io/en/latest/modules/prompt.html>`_.
-
-
-**Summarization Prompt**
-
-- Prompt to summarize the provided `text`.
-- input variables: `["text"]`
-
-**Tree Insert Prompt**
-
-- Prompt to insert a new chunk of text `new_chunk_text` into the tree index. More specifically,
-    this prompt has the LLM select the relevant candidate child node to continue tree traversal.
-- input variables: `["num_chunks", "context_list", "new_chunk_text"]`
-
-**Question-Answer Prompt**
-
-- Prompt to answer a question `query_str` given a context `context_str`.
-- input variables: `["context_str", "query_str"]`
-
-**Refinement Prompt**
-
-- Prompt to refine an existing answer `existing_answer` given a context `context_msg`,
-    and a query `query_str`.
-- input variables: `["query_str", "existing_answer", "context_msg"]`
-
-**Keyword Extraction Prompt**
-
-- Prompt to extract keywords from a text `text` with a maximum of `max_keywords` keywords.
-- input variables: `["text", "max_keywords"]`
-
-**Query Keyword Extraction Prompt**
-
-- Prompt to extract keywords from a query `query_str` with a maximum of `max_keywords` keywords.
-- input variables: `["question", "max_keywords"]`
-
-
-**Tree Select Query Prompt**
-
-- Prompt to select a candidate child node out of all child nodes provided in `context_list`,
-    given a query `query_str`. `num_chunks` is the number of child nodes in `context_list`.
-
-- input variables: `["num_chunks", "context_list", "query_str"]`
-
-
-**Tree Select Query Prompt (Multiple)**
-
-- Prompt to select multiple candidate child nodes out of all child nodes provided in `context_list`,
-    given a query `query_str`. `branching_factor` refers to the number of child nodes to select, and
-    `num_chunks` is the number of child nodes in `context_list`.
-
-- input variables: `["num_chunks", "context_list", "query_str", "branching_factor"]`
-
-
-**Base Prompt Class**
-
-.. automodule:: gpt_index.prompts
-   :members:
-   :inherited-members:
-   :exclude-members: Config, construct, copy, dict, from_examples, from_file, get_full_format_args, output_parser, save, template, template_format, update_forward_refs, validate_variable_names, json, template_is_valid
-
-
diff --git a/docs/reference/query.rst b/docs/reference/query.rst
deleted file mode 100644
index 84525694f..000000000
--- a/docs/reference/query.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-.. _Ref-Query:
-
-Querying an Index
-=================
-
-This doc specifically shows the classes that are used to query indices.
-
-.. toctree::
-   :maxdepth: 1
-   :caption: Query classes
-
-   indices/list_query.rst
-   indices/table_query.rst
-   indices/tree_query.rst
diff --git a/docs/reference/readers.rst b/docs/reference/readers.rst
deleted file mode 100644
index 8fc062f54..000000000
--- a/docs/reference/readers.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Data Connectors
-===============
-
-.. automodule:: gpt_index.readers
-   :members:
-   :inherited-members:
\ No newline at end of file
diff --git a/docs/requirements.txt b/docs/requirements.txt
deleted file mode 100644
index 0d0e6022f..000000000
--- a/docs/requirements.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-sphinx
-sphinx_rtd_theme
-myst-parser
\ No newline at end of file
diff --git a/gpt_index/__init__.py b/gpt_index/__init__.py
index d024cd75d..53553541b 100644
--- a/gpt_index/__init__.py
+++ b/gpt_index/__init__.py
@@ -6,14 +6,13 @@ with open(Path(__file__).absolute().parents[0] / "VERSION") as _f:
     __version__ = _f.read().strip()
 
 
+from gpt_index.indices.keyword_table.base import GPTKeywordTableIndex
+from gpt_index.indices.keyword_table.rake_base import GPTRAKEKeywordTableIndex
+from gpt_index.indices.keyword_table.simple_base import GPTSimpleKeywordTableIndex
+from gpt_index.indices.list.base import GPTListIndex
+
 # indices
-from gpt_index.indices.keyword_table import (
-    GPTKeywordTableIndex,
-    GPTRAKEKeywordTableIndex,
-    GPTSimpleKeywordTableIndex,
-)
-from gpt_index.indices.list import GPTListIndex
-from gpt_index.indices.tree import GPTTreeIndex
+from gpt_index.indices.tree.base import GPTTreeIndex
 
 # langchain helper
 from gpt_index.langchain_helpers.chain_wrapper import LLMPredictor
diff --git a/gpt_index/indices/__init__.py b/gpt_index/indices/__init__.py
index 10f6e05ee..0eee67e42 100644
--- a/gpt_index/indices/__init__.py
+++ b/gpt_index/indices/__init__.py
@@ -1,16 +1 @@
-"""GPT Index data structures."""
-
-# indices
-from gpt_index.indices.keyword_table.base import GPTKeywordTableIndex
-from gpt_index.indices.keyword_table.rake_base import GPTRAKEKeywordTableIndex
-from gpt_index.indices.keyword_table.simple_base import GPTSimpleKeywordTableIndex
-from gpt_index.indices.list.base import GPTListIndex
-from gpt_index.indices.tree.base import GPTTreeIndex
-
-__all__ = [
-    "GPTKeywordTableIndex",
-    "GPTSimpleKeywordTableIndex",
-    "GPTRAKEKeywordTableIndex",
-    "GPTListIndex",
-    "GPTTreeIndex",
-]
+"""Init file for indices."""
diff --git a/gpt_index/indices/base.py b/gpt_index/indices/base.py
index 915fddbd1..43c7eab83 100644
--- a/gpt_index/indices/base.py
+++ b/gpt_index/indices/base.py
@@ -152,17 +152,7 @@ class BaseGPTIndex(Generic[IS]):
         mode: str = DEFAULT_MODE,
         **query_kwargs: Any
     ) -> str:
-        """Answer a query.
-
-        When `query` is called, we query the index with the given `mode` and
-        `query_kwargs`. The `mode` determines the type of query to run, and
-        `query_kwargs` are parameters that are specific to the query type.
-
-        For a comprehensive documentation of available `mode` and `query_kwargs` to
-        query a given index, please visit :ref:`Ref-Query`.
-
-
-        """
+        """Answer a query."""
         # TODO: remove _mode_to_query and consolidate with query_runner
         if mode == "recursive":
             if "query_configs" not in query_kwargs:
@@ -185,20 +175,7 @@ class BaseGPTIndex(Generic[IS]):
 
     @classmethod
     def load_from_disk(cls, save_path: str, **kwargs: Any) -> "BaseGPTIndex":
-        """Load index from disk.
-
-        This method loads the index from a JSON file stored on disk. The index data
-        structure itself is preserved completely. If the index is defined over
-        subindices, those subindices will also be preserved (and subindices of
-        those subindices, etc.).
-
-        Args:
-            save_path (str): The save_path of the file.
-
-        Returns:
-            BaseGPTIndex: The loaded index.
-
-        """
+        """Load from disk."""
         with open(save_path, "r") as f:
             result_dict = json.load(f)
             index_struct = cls.index_struct_cls.from_dict(result_dict["index_struct"])
@@ -206,14 +183,7 @@ class BaseGPTIndex(Generic[IS]):
             return cls(index_struct=index_struct, docstore=docstore, **kwargs)
 
     def save_to_disk(self, save_path: str) -> None:
-        """Save to file.
-
-        This method stores the index into a JSON file stored on disk.
-
-        Args:
-            save_path (str): The save_path of the file.
-
-        """
+        """Safe to file."""
         out_dict: Dict[str, dict] = {
             "index_struct": self.index_struct.to_dict(),
             "docstore": self.docstore.to_dict(),
diff --git a/gpt_index/indices/keyword_table/__init__.py b/gpt_index/indices/keyword_table/__init__.py
index 43a973b9b..1d4640565 100644
--- a/gpt_index/indices/keyword_table/__init__.py
+++ b/gpt_index/indices/keyword_table/__init__.py
@@ -1,12 +1 @@
-"""Keyword Table Index Data Structures."""
-
-# indices
-from gpt_index.indices.keyword_table.base import GPTKeywordTableIndex
-from gpt_index.indices.keyword_table.rake_base import GPTRAKEKeywordTableIndex
-from gpt_index.indices.keyword_table.simple_base import GPTSimpleKeywordTableIndex
-
-__all__ = [
-    "GPTKeywordTableIndex",
-    "GPTSimpleKeywordTableIndex",
-    "GPTRAKEKeywordTableIndex",
-]
+"""Init file."""
diff --git a/gpt_index/indices/keyword_table/base.py b/gpt_index/indices/keyword_table/base.py
index 70f1556dc..640f40217 100644
--- a/gpt_index/indices/keyword_table/base.py
+++ b/gpt_index/indices/keyword_table/base.py
@@ -39,26 +39,7 @@ DQKET = DEFAULT_QUERY_KEYWORD_EXTRACT_TEMPLATE
 
 
 class BaseGPTKeywordTableIndex(BaseGPTIndex[KeywordTable]):
-    """GPT Keyword Table Index.
-
-    This index extracts keywords from the text, and maps each
-    keyword to the node(s) that it corresponds to. In this sense it mimicks a
-    "hash table". During index construction, the keyword table is constructed
-    by extracting keywords from each node and creating an internal mapping.
-
-    During query time, the keywords are extracted from the query text, and these
-    keywords are used to index into the keyword table. The retrieved nodes
-    are then used to answer the query.
-
-    Args:
-        keyword_extract_template (Optional[Prompt]): A Keyword Extraction Prompt
-            (see :ref:`Prompt-Templates`).
-        max_keywords_per_query (int): The maximum number of keywords to extract
-            per query.
-        max_keywords_per_query (int): The maximum number of keywords to extract
-            per chunk.
-
-    """
+    """Base GPT Index."""
 
     index_struct_cls = KeywordTable
 
@@ -170,7 +151,7 @@ class BaseGPTKeywordTableIndex(BaseGPTIndex[KeywordTable]):
 class GPTKeywordTableIndex(BaseGPTKeywordTableIndex):
     """GPT Keyword Table Index.
 
-    This index uses a GPT model to extract keywords from the text.
+    Uses GPT to build keyword table.
 
     """
 
diff --git a/gpt_index/indices/keyword_table/rake_base.py b/gpt_index/indices/keyword_table/rake_base.py
index 61b26ce6d..b610e3a54 100644
--- a/gpt_index/indices/keyword_table/rake_base.py
+++ b/gpt_index/indices/keyword_table/rake_base.py
@@ -11,11 +11,7 @@ from gpt_index.indices.keyword_table.utils import rake_extract_keywords
 
 
 class GPTRAKEKeywordTableIndex(BaseGPTKeywordTableIndex):
-    """GPT RAKE Keyword Table Index.
-
-    This index uses a RAKE keyword extractor to extract keywords from the text.
-
-    """
+    """GPT Index."""
 
     def _extract_keywords(self, text: str) -> Set[str]:
         """Extract keywords from text."""
diff --git a/gpt_index/indices/keyword_table/simple_base.py b/gpt_index/indices/keyword_table/simple_base.py
index 4d542c38d..e8f506884 100644
--- a/gpt_index/indices/keyword_table/simple_base.py
+++ b/gpt_index/indices/keyword_table/simple_base.py
@@ -15,11 +15,7 @@ DQKET = DEFAULT_QUERY_KEYWORD_EXTRACT_TEMPLATE
 
 
 class GPTSimpleKeywordTableIndex(BaseGPTKeywordTableIndex):
-    """GPT Simple Keyword Table Index.
-
-    This index uses a simple regex extractor to extract keywords from the text.
-
-    """
+    """GPT Index."""
 
     def _extract_keywords(self, text: str) -> Set[str]:
         """Extract keywords from text."""
diff --git a/gpt_index/indices/list/__init__.py b/gpt_index/indices/list/__init__.py
index b24c607f3..1d4640565 100644
--- a/gpt_index/indices/list/__init__.py
+++ b/gpt_index/indices/list/__init__.py
@@ -1,7 +1 @@
-"""List-based data structures."""
-
-from gpt_index.indices.list.base import GPTListIndex
-
-__all__ = [
-    "GPTListIndex",
-]
+"""Init file."""
diff --git a/gpt_index/indices/list/base.py b/gpt_index/indices/list/base.py
index 5eaeb598d..e93f8a827 100644
--- a/gpt_index/indices/list/base.py
+++ b/gpt_index/indices/list/base.py
@@ -29,21 +29,7 @@ GENERATE_TEXT_QUERY = "What is a concise summary of this document?"
 
 
 class GPTListIndex(BaseGPTIndex[IndexList]):
-    """GPT List Index.
-
-    The list index is a simple data structure where nodes are stored in
-    a sequence. During index construction, the document texts are
-    chunked up, converted to nodes, and stored in a list.
-
-    During query time, the list index iterates through the nodes
-    with some optional filter parameters, and synthesizes an
-    answer from all the nodes.
-
-    Args:
-        text_qa_template (Optional[Prompt]): A Question-Answer Prompt
-            (see :ref:`Prompt-Templates`).
-
-    """
+    """GPT List Index."""
 
     index_struct_cls = IndexList
 
@@ -83,14 +69,7 @@ class GPTListIndex(BaseGPTIndex[IndexList]):
     def build_index_from_documents(
         self, documents: Sequence[BaseDocument]
     ) -> IndexList:
-        """Build the index from documents.
-
-        Args:
-            documents (List[BaseDocument]): A list of documents.
-
-        Returns:
-            IndexList: The created list index.
-        """
+        """Build the index from documents."""
         text_splitter = self._prompt_helper.get_text_splitter_given_prompt(
             self.text_qa_template, 1
         )
diff --git a/gpt_index/indices/query/keyword_table/__init__.py b/gpt_index/indices/query/keyword_table/__init__.py
index 9b0b308e6..1d4640565 100644
--- a/gpt_index/indices/query/keyword_table/__init__.py
+++ b/gpt_index/indices/query/keyword_table/__init__.py
@@ -1,13 +1 @@
-"""Query classes for keyword table indices."""
-
-from gpt_index.indices.query.keyword_table.query import (
-    GPTKeywordTableGPTQuery,
-    GPTKeywordTableRAKEQuery,
-    GPTKeywordTableSimpleQuery,
-)
-
-__all__ = [
-    "GPTKeywordTableGPTQuery",
-    "GPTKeywordTableRAKEQuery",
-    "GPTKeywordTableSimpleQuery",
-]
+"""Init file."""
diff --git a/gpt_index/indices/query/keyword_table/query.py b/gpt_index/indices/query/keyword_table/query.py
index 52b00270b..98b3a5235 100644
--- a/gpt_index/indices/query/keyword_table/query.py
+++ b/gpt_index/indices/query/keyword_table/query.py
@@ -23,23 +23,7 @@ DQKET = DEFAULT_QUERY_KEYWORD_EXTRACT_TEMPLATE
 
 
 class BaseGPTKeywordTableQuery(BaseGPTIndexQuery[KeywordTable]):
-    """Base GPT Keyword Table Index Query.
-
-    Arguments are shared among subclasses.
-
-    Args:
-        keyword_extract_template (Optional[Prompt]): A Keyword Extraction Prompt
-            (see :ref:`Prompt-Templates`).
-        query_keyword_extract_template (Optional[Prompt]): A Query Keyword Extraction
-            Prompt (see :ref:`Prompt-Templates`).
-        refine_template (Optional[Prompt]): A Refinement Prompt
-            (see :ref:`Prompt-Templates`).
-        text_qa_template (Optional[Prompt]): A Question Answering Prompt
-            (see :ref:`Prompt-Templates`).
-        max_keywords_per_query (int): Maximum number of keywords to extract from query.
-        num_chunks_per_query (int): Maximum number of text chunks to query.
-
-    """
+    """Base GPT Keyword Table Index Query."""
 
     def __init__(
         self,
@@ -105,14 +89,7 @@ class BaseGPTKeywordTableQuery(BaseGPTIndexQuery[KeywordTable]):
 class GPTKeywordTableGPTQuery(BaseGPTKeywordTableQuery):
     """GPT Keyword Table Index Query.
 
-    Extracts keywords using GPT. Set when `mode="default"` in `query` method of
-    `GPTKeywordTableIndex`.
-
-    .. code-block:: python
-
-        response = index.query("<query_str>", mode="default")
-
-    See BaseGPTKeywordTableQuery for arguments.
+    Extracts keywords using GPT.
 
     """
 
@@ -130,14 +107,7 @@ class GPTKeywordTableGPTQuery(BaseGPTKeywordTableQuery):
 class GPTKeywordTableSimpleQuery(BaseGPTKeywordTableQuery):
     """GPT Keyword Table Index Simple Query.
 
-    Extracts keywords using simple regex-based keyword extractor.
-    Set when `mode="simple"` in `query` method of `GPTKeywordTableIndex`.
-
-    .. code-block:: python
-
-        response = index.query("<query_str>", mode="simple")
-
-    See BaseGPTKeywordTableQuery for arguments.
+    Extracts keywords using Simple keyword extractor.
 
     """
 
@@ -152,13 +122,6 @@ class GPTKeywordTableRAKEQuery(BaseGPTKeywordTableQuery):
     """GPT Keyword Table Index RAKE Query.
 
     Extracts keywords using RAKE keyword extractor.
-    Set when `mode="rake"` in `query` method of `GPTKeywordTableIndex`.
-
-    .. code-block:: python
-
-        response = index.query("<query_str>", mode="rake")
-
-    See BaseGPTKeywordTableQuery for arguments.
 
     """
 
diff --git a/gpt_index/indices/query/list/__init__.py b/gpt_index/indices/query/list/__init__.py
index 795cc1c5d..1d4640565 100644
--- a/gpt_index/indices/query/list/__init__.py
+++ b/gpt_index/indices/query/list/__init__.py
@@ -1,6 +1 @@
-"""Query classes for list indices."""
-
-from gpt_index.indices.query.list.embedding_query import GPTListIndexEmbeddingQuery
-from gpt_index.indices.query.list.query import GPTListIndexQuery
-
-__all__ = ["GPTListIndexEmbeddingQuery", "GPTListIndexQuery"]
+"""Init file."""
diff --git a/gpt_index/indices/query/list/embedding_query.py b/gpt_index/indices/query/list/embedding_query.py
index 4accc8620..fd2fe99e1 100644
--- a/gpt_index/indices/query/list/embedding_query.py
+++ b/gpt_index/indices/query/list/embedding_query.py
@@ -8,20 +8,7 @@ from gpt_index.prompts.base import Prompt
 
 
 class GPTListIndexEmbeddingQuery(BaseGPTListIndexQuery):
-    """GPTListIndex query.
-
-    An embedding-based for GPTListIndex, which traverses
-    each node in sequence and retrieves top-k nodes by
-    embedding similarity to the query.
-    Set when `mode="embedding"` in `query` method of `GPTListIndex`.
-
-    .. code-block:: python
-
-        response = index.query("<query_str>", mode="embedding")
-
-    See BaseGPTListIndexQuery for arguments.
-
-    """
+    """GPTListIndex query."""
 
     def __init__(
         self,
diff --git a/gpt_index/indices/query/list/query.py b/gpt_index/indices/query/list/query.py
index bf0b18f41..b51746b02 100644
--- a/gpt_index/indices/query/list/query.py
+++ b/gpt_index/indices/query/list/query.py
@@ -12,19 +12,7 @@ from gpt_index.prompts.default_prompts import (
 
 
 class BaseGPTListIndexQuery(BaseGPTIndexQuery[IndexList]):
-    """GPTListIndex query.
-
-    Arguments are shared among subclasses.
-
-    Args:
-        text_qa_template (Optional[Prompt]): A Question Answering Prompt
-            (see :ref:`Prompt-Templates`).
-        refine_template (Optional[Prompt]): A Refinement Prompt
-            (see :ref:`Prompt-Templates`).
-        keyword (Optional[str]): If specified, keyword to filter nodes.
-            Simulates Ctrl+F lookup in a document.
-
-    """
+    """GPTListIndex query."""
 
     def __init__(
         self,
@@ -74,20 +62,7 @@ class BaseGPTListIndexQuery(BaseGPTIndexQuery[IndexList]):
 
 
 class GPTListIndexQuery(BaseGPTListIndexQuery):
-    """GPTListIndex query.
-
-    The default query mode for GPTListIndex, which traverses
-    each node in sequence and synthesizes a response across all nodes
-    (with an optional keyword filter).
-    Set when `mode="default"` in `query` method of `GPTListIndex`.
-
-    .. code-block:: python
-
-        response = index.query("<query_str>", mode="default")
-
-    See BaseGPTListIndexQuery for arguments.
-
-    """
+    """GPTListIndex query."""
 
     def _get_nodes_for_response(
         self, query_str: str, verbose: bool = False
diff --git a/gpt_index/indices/query/tree/__init__.py b/gpt_index/indices/query/tree/__init__.py
index f269b72b0..1d4640565 100644
--- a/gpt_index/indices/query/tree/__init__.py
+++ b/gpt_index/indices/query/tree/__init__.py
@@ -1,11 +1 @@
-"""Query classes for tree indices."""
-
-from gpt_index.indices.query.tree.embedding_query import GPTTreeIndexEmbeddingQuery
-from gpt_index.indices.query.tree.leaf_query import GPTTreeIndexLeafQuery
-from gpt_index.indices.query.tree.retrieve_query import GPTTreeIndexRetQuery
-
-__all__ = [
-    "GPTTreeIndexLeafQuery",
-    "GPTTreeIndexRetQuery",
-    "GPTTreeIndexEmbeddingQuery",
-]
+"""Init file."""
diff --git a/gpt_index/indices/query/tree/embedding_query.py b/gpt_index/indices/query/tree/embedding_query.py
index ba78dcbe3..7d474e044 100644
--- a/gpt_index/indices/query/tree/embedding_query.py
+++ b/gpt_index/indices/query/tree/embedding_query.py
@@ -16,26 +16,6 @@ class GPTTreeIndexEmbeddingQuery(GPTTreeIndexLeafQuery):
     This class traverses the index graph using the embedding similarity between the
     query and the node text.
 
-    .. code-block:: python
-
-        response = index.query("<query_str>", mode="embedding")
-
-    Args:
-        query_template (Optional[Prompt]): Tree Select Query Prompt
-            (see :ref:`Prompt-Templates`).
-        query_template_multiple (Optional[Prompt]): Tree Select Query Prompt (Multiple)
-            (see :ref:`Prompt-Templates`).
-        text_qa_template (Optional[Prompt]): Question-Answer Prompt
-            (see :ref:`Prompt-Templates`).
-        refine_template (Optional[Prompt]): Refinement Prompt
-            (see :ref:`Prompt-Templates`).
-        child_branch_factor (int): Number of child nodes to consider at each level.
-            If child_branch_factor is 1, then the query will only choose one child node
-            to traverse for any given parent node.
-            If child_branch_factor is 2, then the query will choose two child nodes.
-        embed_model (Optional[OpenAIEmbedding]): Embedding model to use for
-            embedding similarity.
-
     """
 
     def __init__(
diff --git a/gpt_index/indices/query/tree/leaf_query.py b/gpt_index/indices/query/tree/leaf_query.py
index 80531d38a..b76d38898 100644
--- a/gpt_index/indices/query/tree/leaf_query.py
+++ b/gpt_index/indices/query/tree/leaf_query.py
@@ -20,24 +20,6 @@ class GPTTreeIndexLeafQuery(BaseGPTIndexQuery[IndexGraph]):
     This class traverses the index graph and searches for a leaf node that can best
     answer the query.
 
-    .. code-block:: python
-
-        response = index.query("<query_str>", mode="default")
-
-    Args:
-        query_template (Optional[Prompt]): Tree Select Query Prompt
-            (see :ref:`Prompt-Templates`).
-        query_template_multiple (Optional[Prompt]): Tree Select Query Prompt (Multiple)
-            (see :ref:`Prompt-Templates`).
-        text_qa_template (Optional[Prompt]): Question-Answer Prompt
-            (see :ref:`Prompt-Templates`).
-        refine_template (Optional[Prompt]): Refinement Prompt
-            (see :ref:`Prompt-Templates`).
-        child_branch_factor (int): Number of child nodes to consider at each level.
-            If child_branch_factor is 1, then the query will only choose one child node
-            to traverse for any given parent node.
-            If child_branch_factor is 2, then the query will choose two child nodes.
-
     """
 
     def __init__(
diff --git a/gpt_index/indices/query/tree/retrieve_query.py b/gpt_index/indices/query/tree/retrieve_query.py
index bc22bebf5..f7f9cad53 100644
--- a/gpt_index/indices/query/tree/retrieve_query.py
+++ b/gpt_index/indices/query/tree/retrieve_query.py
@@ -19,14 +19,6 @@ class GPTTreeIndexRetQuery(BaseGPTIndexQuery[IndexGraph]):
     the answer (because it was constructed with a query_str), so it does not
     attempt to parse information down the graph in order to synthesize an answer.
 
-    .. code-block:: python
-
-        response = index.query("<query_str>", mode="retrieve")
-
-    Args:
-        text_qa_template (Optional[Prompt]): Question-Answer Prompt
-            (see :ref:`Prompt-Templates`).
-
     """
 
     def __init__(
diff --git a/gpt_index/indices/tree/__init__.py b/gpt_index/indices/tree/__init__.py
index c13b792b0..1d4640565 100644
--- a/gpt_index/indices/tree/__init__.py
+++ b/gpt_index/indices/tree/__init__.py
@@ -1,8 +1 @@
-"""Tree-structured Index Data Structures."""
-
-# indices
-from gpt_index.indices.tree.base import GPTTreeIndex
-
-__all__ = [
-    "GPTTreeIndex",
-]
+"""Init file."""
diff --git a/gpt_index/indices/tree/base.py b/gpt_index/indices/tree/base.py
index a946c4e83..18b7c99bf 100644
--- a/gpt_index/indices/tree/base.py
+++ b/gpt_index/indices/tree/base.py
@@ -119,23 +119,7 @@ class GPTTreeIndexBuilder:
 
 
 class GPTTreeIndex(BaseGPTIndex[IndexGraph]):
-    """GPT Tree Index.
-
-    The tree index is a tree-structured index, where each node is a summary of
-    the children nodes. During index construction, the tree is constructed
-    in a bottoms-up fashion until we end up with a set of root_nodes.
-
-    There are a few different options during query time (see :ref:`Ref-Query`).
-    The main option is to traverse down the tree from the root nodes.
-    A secondary answer is to directly synthesize the answer from the root nodes.
-
-    Args:
-        summary_template (Optional[Prompt]): A Summarization Prompt
-            (see :ref:`Prompt-Templates`).
-        insert_prompt (Optional[Prompt]): An Tree Insertion Prompt
-            (see :ref:`Prompt-Templates`).
-
-    """
+    """GPT Index."""
 
     index_struct_cls = IndexGraph
 
diff --git a/gpt_index/langchain_helpers/chain_wrapper.py b/gpt_index/langchain_helpers/chain_wrapper.py
index 390dff4c6..23a7c9957 100644
--- a/gpt_index/langchain_helpers/chain_wrapper.py
+++ b/gpt_index/langchain_helpers/chain_wrapper.py
@@ -9,34 +9,14 @@ from gpt_index.prompts.base import Prompt
 
 
 class LLMPredictor:
-    """LLM predictor class.
-
-    Wrapper around an LLMChain from Langchain.
-
-    Args:
-        llm (Optional[LLM]): LLM from Langchain to use for predictions.
-            Defaults to OpenAI's text-davinci-002 model.
-            Please see
-            `Langchain's LLM Page
-            <https://langchain.readthedocs.io/en/latest/modules/llms.html>`_
-            for more details.
-
-    """
+    """LLM predictor class."""
 
     def __init__(self, llm: Optional[LLM] = None) -> None:
         """Initialize params."""
         self._llm = llm or OpenAI(temperature=0, model_name="text-davinci-002")
 
     def predict(self, prompt: Prompt, **prompt_args: Any) -> Tuple[str, str]:
-        """Predict the answer to a query.
-
-        Args:
-            prompt (Prompt): Prompt to use for prediction.
-
-        Returns:
-            Tuple[str, str]: Tuple of the predicted answer and the formatted prompt.
-
-        """
+        """Predict the answer to a query."""
         llm_chain = LLMChain(prompt=prompt, llm=self._llm)
 
         formatted_prompt = prompt.format(**prompt_args)
diff --git a/gpt_index/prompts/__init__.py b/gpt_index/prompts/__init__.py
index 70a9a06c1..1d4640565 100644
--- a/gpt_index/prompts/__init__.py
+++ b/gpt_index/prompts/__init__.py
@@ -1,5 +1 @@
-"""Prompt class."""
-
-from gpt_index.prompts.base import Prompt
-
-__all__ = ["Prompt"]
+"""Init file."""
diff --git a/gpt_index/readers/__init__.py b/gpt_index/readers/__init__.py
index 0fd7ca35c..04de8b7ec 100644
--- a/gpt_index/readers/__init__.py
+++ b/gpt_index/readers/__init__.py
@@ -1,25 +1 @@
-"""Data Connectors for GPT Index.
-
-This module contains the data connectors for GPT Index. Each connector inherits
-from a `BaseReader` class, connects to a data source, and loads BaseDocument objects
-from that data source.
-
-"""
-
-# readers
-from gpt_index.readers.file import SimpleDirectoryReader
-from gpt_index.readers.google.gdocs import GoogleDocsReader
-from gpt_index.readers.mongo import SimpleMongoReader
-from gpt_index.readers.notion import NotionPageReader
-from gpt_index.readers.slack import SlackReader
-from gpt_index.readers.wikipedia import WikipediaReader
-
-__all__ = [
-    "WikipediaReader",
-    "SimpleDirectoryReader",
-    "SimpleMongoReader",
-    "NotionPageReader",
-    "GoogleDocsReader",
-    "SlackReader",
-    "LLMPredictor",
-]
+"""Init file for readers."""
diff --git a/gpt_index/readers/file.py b/gpt_index/readers/file.py
index f9ca48c17..ea20cd2ea 100644
--- a/gpt_index/readers/file.py
+++ b/gpt_index/readers/file.py
@@ -12,9 +12,6 @@ class SimpleDirectoryReader(BaseReader):
     Can read files into separate documents, or concatenates
     files into one document text.
 
-    input_dir (str): Path to the directory.
-    exclude_hidden (bool): Whether to exclude hidden files (dotfiles).
-
     """
 
     def __init__(self, input_dir: str, exclude_hidden: bool = True) -> None:
@@ -29,15 +26,7 @@ class SimpleDirectoryReader(BaseReader):
         self.input_files = input_files
 
     def load_data(self, **load_kwargs: Any) -> List[Document]:
-        """Load data from the input directory.
-
-        Args:
-            concatenate (bool): whether to concatenate all files into one document.
-
-        Returns:
-            List[Document]: A list of documents.
-
-        """
+        """Load data from the input directory."""
         concatenate = load_kwargs.get("concatenate", True)
         data = ""
         data_list = []
diff --git a/gpt_index/readers/mongo.py b/gpt_index/readers/mongo.py
index 7404223e8..16a5b24c2 100644
--- a/gpt_index/readers/mongo.py
+++ b/gpt_index/readers/mongo.py
@@ -11,11 +11,6 @@ class SimpleMongoReader(BaseReader):
 
     Concatenates each Mongo doc into Document used by GPT Index.
 
-    Args:
-        host (str): Mongo host.
-        port (int): Mongo port.
-        max_docs (int): Maximum number of documents to load.
-
     """
 
     def __init__(self, host: str, port: int, max_docs: int = 1000) -> None:
@@ -48,16 +43,7 @@ class SimpleMongoReader(BaseReader):
         return documents
 
     def load_data(self, **load_kwargs: Any) -> List[Document]:
-        """Load data from the input directory.
-
-        Args:
-            db_name (str): name of the database.
-            collection_name (str): name of the collection.
-
-        Returns:
-            List[Document]: A list of documents.
-
-        """
+        """Load data from the input directory."""
         if "db_name" not in load_kwargs:
             raise ValueError("`db_name` not found in load_kwargs.")
         else:
diff --git a/gpt_index/readers/notion.py b/gpt_index/readers/notion.py
index 1bec6a4fd..8fc985505 100644
--- a/gpt_index/readers/notion.py
+++ b/gpt_index/readers/notion.py
@@ -18,9 +18,6 @@ class NotionPageReader(BaseReader):
 
     Reads a set of Notion pages.
 
-    Args:
-        integration_token (str): Notion integration token.
-
     """
 
     def __init__(self, integration_token: Optional[str] = None) -> None:
@@ -118,15 +115,7 @@ class NotionPageReader(BaseReader):
         return page_ids
 
     def load_data(self, **load_kwargs: Any) -> List[Document]:
-        """Load data from the input directory.
-
-        Args:
-            page_ids (List[str]): List of page ids to load.
-
-        Returns:
-            List[Document]: List of documents.
-
-        """
+        """Load data from the input directory."""
         if "page_ids" not in load_kwargs:
             raise ValueError('Must specify a "page_ids" in `load_kwargs`.')
         docs = []
diff --git a/gpt_index/readers/slack.py b/gpt_index/readers/slack.py
index 3fd22a497..73cae8651 100644
--- a/gpt_index/readers/slack.py
+++ b/gpt_index/readers/slack.py
@@ -14,10 +14,6 @@ class SlackReader(BaseReader):
 
     Reads conversations from channels.
 
-    Args:
-        slack_token (Optional[str]): Slack token. If not provided, we
-            assume the environment variable `SLACK_BOT_TOKEN` is set.
-
     """
 
     def __init__(self, slack_token: Optional[str] = None) -> None:
@@ -104,15 +100,7 @@ class SlackReader(BaseReader):
         return "\n\n".join(result_messages)
 
     def load_data(self, **load_kwargs: Any) -> List[Document]:
-        """Load data from the input directory.
-
-        Args:
-            channel_ids (List[str]): List of channel ids to read.
-
-        Returns:
-            List[Document]: List of documents.
-
-        """
+        """Load data from the input directory."""
         channel_ids = load_kwargs.pop("channel_ids", None)
         if channel_ids is None:
             raise ValueError('Must specify a "channel_id" in `load_kwargs`.')
diff --git a/gpt_index/readers/wikipedia.py b/gpt_index/readers/wikipedia.py
index 2db0fb0cd..fd361aa1d 100644
--- a/gpt_index/readers/wikipedia.py
+++ b/gpt_index/readers/wikipedia.py
@@ -22,12 +22,7 @@ class WikipediaReader(BaseReader):
             )
 
     def load_data(self, **load_kwargs: Any) -> List[Document]:
-        """Load data from the input directory.
-
-        Args:
-            pages (List[str]): List of pages to read.
-
-        """
+        """Load data from the input directory."""
         import wikipedia
 
         pages: List[str] = load_kwargs.pop("pages", None)
diff --git a/tests/indices/list/__init__.py b/tests/indices/list/__init__.py
index b24c607f3..1d4640565 100644
--- a/tests/indices/list/__init__.py
+++ b/tests/indices/list/__init__.py
@@ -1,7 +1 @@
-"""List-based data structures."""
-
-from gpt_index.indices.list.base import GPTListIndex
-
-__all__ = [
-    "GPTListIndex",
-]
+"""Init file."""
-- 
GitLab