LlamaIndex, previously known as GPT Index, is a data framework designed for LLM applications, facilitating the intake, organization, and retrieval of specialized or private data. Here’s what LlamaIndex offers:
- Data Connectors: These allow for the seamless import of your data, irrespective of its original source or format, be it APIs, PDFs, SQL, among others.
- Data Indexes: They organize your data into formats that are both efficient and easily digestible for LLMs.
- Engines: These grant natural language-based access to your data. To illustrate:
- Query Engines: Robust retrieval systems that enhance knowledge outputs.
- Chat Engines: Interactive platforms enabling dynamic, two-way conversations with your data.
- Data Agents: These are LLM-driven knowledge operatives enhanced with a range of tools, from basic helper functions to comprehensive API integrations.
- Application Integrations: These seamlessly weave LlamaIndex into your broader ecosystem, be it LangChain, Flask, Docker, ChatGPT, or any other platform.
Installation from Pip
You can simply do:
pip install llama-index
IMPORTANT: LlamaIndex might download and save files locally from different packages like NLTK, HuggingFace, etc. To specify the storage location for these files, set the “LLAMA_INDEX_CACHE_DIR” environment variable.
Installing LlamaIndex from Source
- First, clone the repository using Git:
git clone https://github.com/jerryjliu/llama_index.git
- For an editable installation (which allows you to modify source files) of only the package:
pip install -e .
- To install both optional dependencies and those needed for development (like unit testing):
pip install -r requirements.txt
OpenAI Environment Setup
By default, we use the OpenAI gpt-3.5-turbo
model for text generation and text-embedding-ada-002
for retrieval and embeddings. 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.
Setting Up LlamaIndex in a Local Environment
If you prefer not to use OpenAI, the system will default to LlamaCPP and llama2-chat-13B
for text generation, and BAAI/bge-small-en
for retrieval and embeddings. All these models operate locally.
Steps to Set Up LlamaCPP:
- Refer to the installation guide for LlamaCPP. (Note: The link placeholder is provided; ensure you replace it with the actual link to the guide.)
- Install the
llama-cpp-python
package. It’s recommended to get a version that’s compatible with your GPU. Setting up this package will consume approximately 11.5GB of memory split between the CPU and GPU.
For Local Embeddings Setup:
- Simply execute the following command:
pip install sentence-transformers
The local embedding model will use around 500MB of memory.
Read related articles: