run-llama/llama_index

★ 52,177⑂ 0

LlamaIndex is the document processing platform for AI

About run-llama/llama_index

run-llama/llama_index is an open-source project on GitHub, mainly written in Python. LlamaIndex is the document processing platform for AI It currently holds 52,177 stars and 0 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the AI Models & LLM Tools board.

GitHub Repository Details

Repository run-llama/llama_index · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

🗂️ LlamaIndex (OSS Framework) 🦙

PyPI - Downloads Build GitHub contributors Discord Twitter Reddit

[!NOTE]
The current focus of LlamaIndex is to build the best AI-powered engine for document parsing and extraction. LlamaParse is our enterprise platform for agentic OCR, parsing, extraction, indexing and more. LiteParse represents our efforts to build the best free, fast, cheap text parser in the market. ParseBench and ExtractBench represent our commitment towards open benchmarking for parsing and extraction.
> The company itself has undergone an evolution since when this OSS framework first launched 3 years ago in 2023. Since the early days, the framework has consisted of a broad set of orchestration tools enabling developers to build various RAG and agent applications.
> While we still have the OSS framework available as an open toolkit that you're welcome to use, our primary focus has shifted towards LlamaParse, along with liteparse and our benchmarking efforts. We have a strong belief that agents are the new consumers of documents, and they fundamentally need the right tools to unlock context from the world's hardest documents accurately/cheaply at scale. Whether you're an AI startup processing documents or an enterprise looking to automate document workflows, come talk to us.

LlamaIndex OSS (by LlamaIndex) is an open-source framework to build agentic applications. You can use LlamaParse with this framework or on its own; see LlamaParse below for signup and product links.

### 📚 Documentation:
> - LlamaParse
- LlamaIndex OSS
- LlamaAgents

Building with LlamaIndex typically involves working with LlamaIndex core and a chosen set of integrations (or plugins). There are two ways to start building with LlamaIndex in Python:

1. Starter: llama-index. A starter Python package that includes core LlamaIndex as well as a selection of integrations.

2. Customized: llama-index-core. Install core LlamaIndex and add your chosen LlamaIndex integration packages from the integrations page that are required for your application. There are over 300 LlamaIndex integration packages that work seamlessly with core, allowing you to build with your preferred LLM, embedding, and vector store providers.

The LlamaIndex Python library is namespaced such that import statements which include core imply that the core package is being used. In contrast, those statements without core imply that an integration package is being used.

# typical pattern
from llama_index.core.xxx import ClassABC  # core submodule xxx
from llama_index.xxx.yyy import (
    SubclassABC,
)  # integration yyy for submodule xxx

concrete example

from llama_index.core.llms import LLM from llama_index.llms.openai import OpenAI

LlamaParse (document agent platform)

LlamaParse is its own platform—focused on document agents and agentic OCR. It includes Parse (parsing), LlamaAgents (deployed document agents), Extract (structured extraction), and Index (ingest and RAG). You can use it with the LlamaIndex framework or standalone.

Important Links

Documentation

X (formerly Twitter)

LinkedIn

Reddit

Discord

🚀 Overview

NOTE: This README is not updated as frequently as the documentation. Please check out the documentation above for the latest updates!

Context

We need a comprehensive toolkit to help perform this data augmentation for LLMs.

Proposed Solution

That's where LlamaIndex comes in. LlamaIndex is a "data framework" to help you build LLM apps. It provides the following tools:

LlamaIndex provides tools for both beginner users and advanced users. Our high-level API allows beginner users to use LlamaIndex to ingest and query their data in 5 lines of code. Our lower-level APIs allow advanced users to customize and extend any module (data connectors, indices, retrievers, query engines, reranking modules), to fit their needs.

💡 Contributing

Interested in contributing? Contributions to LlamaIndex core as well as contributing integrations that build on the core are both accepted and highly encouraged! See our Contribution Guide for more details.

New integrations should meaningfully integrate with existing LlamaIndex framework components. At the discretion of LlamaIndex maintainers, some integrations may be declined.

📄 Documentation

Full documentation can be found here

Please check it out for the most up-to-date tutorials, how-to guides, references, and other resources!

💻 Example Usage

# custom selection of integrations to work with core
pip install llama-index-core
pip install llama-index-llms-openai
pip install llama-index-llms-ollama
pip install llama-index-embeddings-huggingface

Examples are in the docs/examples folder. Indices are in the indices folder (see list of indices below).

To build a simple vector store index using OpenAI:

import os

os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY"

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

documents = SimpleDirectoryReader("YOUR_DATA_DIRECTORY").load_data() index = VectorStoreIndex.from_documents(documents)

To build a simple vector store index using non-OpenAI LLMs, e.g. LLMs hosted through Ollama:

from llama_index.core import Settings, VectorStoreIndex, SimpleDirectoryReader
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.llms.ollama import Ollama
from transformers import AutoTokenizer

set the LLM

Settings.llm = Ollama( model="llama-3.1:latest", request_timeout=360.0, )

set tokenizer to match LLM

Settings.tokenizer = AutoTokenizer.from_pretrained( "meta-llama/Llama-3.1-8B-Instruct" )

set the embed model

Settings.embed_model = HuggingFaceEmbedding( model_name="BAAI/bge-small-en-v1.5" )

documents = SimpleDirectoryReader("YOUR_DATA_DIRECTORY").load_data() index = VectorStoreIndex.from_documents( documents, )

To query:

query_engine = index.as_query_engine()
query_engine.query("YOUR_QUESTION")

By default, data is stored in-memory. To persist to disk (under ./storage):

index.storage_context.persist()

To reload from disk:

from llama_index.core import StorageContext, load_index_from_storage

rebuild storage context

storage_context = StorageContext.from_defaults(persist_dir="./storage")

load index

index = load_index_from_storage(storage_context)

A note on Verification of Build Assets

By default, llama-index-core includes a _static folder that contains the nltk and tiktoken cache that is included with the package installation. This ensures that you can easily run llama-index in environments with restrictive disk access permissions at runtime.

To verify that these files are safe and valid, we use the github attest-build-provenance action. This action will verify that the files in the _static folder are the same as the files in the llama-index-core/llama_index/core/_static folder.

To verify this, you can run the following script (pointing to your installed package):

#!/bin/bash
STATIC_DIR="venv/lib/python3.13/site-packages/llama_index/core/_static"
REPO="run-llama/llama_index"

find "$STATIC_DIR" -type f | while read -r file; do echo "Verifying: $file" gh attestation verify "$file" -R "$REPO" || echo "Failed to verify: $file" done

📖 Citation

Reference to cite if you use LlamaIndex in a paper:

@software{Liu_LlamaIndex_2022,
author = {Liu, Jerry},
doi = {10.5281/zenodo.1234},
month = {11},
title = {{LlamaIndex}},
url = {https://github.com/jerryjliu/llama_index},
year = {2022}
}

GitHub Stars & Activity

52,177Stars
0Forks
0Open issues
PythonLanguage

GitHub Popularity

GitHub stars52,177
Forks0
Open issues0
Primary languagePython
License-
Stars gained today0
Created-
Last pushed-

Trending History

Trending statusnot on today's boards

Related AI Projects

1

NousResearch / hermes-agent

Python★ 245,944⑂ 0
2

Significant-Gravitas / AutoGPT

Python★ 187,373⑂ 0
3

huggingface / transformers

Python★ 166,221⑂ 0
4

open-webui / open-webui

Python★ 152,229⑂ 0
5

langchain-ai / langchain

Python★ 146,421⑂ 0
6

Shubhamsaboo / awesome-llm-apps

Python★ 138,375⑂ 0
7

harry0703 / MoneyPrinterTurbo

Python★ 124,071⑂ 0
8

Graphify-Labs / graphify

Python★ 118,107⑂ 0

More AI Rankings