Discover / AI Agents

LlamaIndex

by run-llamaPython

Data framework for connecting custom data sources to LLMs and agent knowledge retrieval.

Toolexperimental

Maturity: experimental because latest release v0.14.23 is pre 1.0. Derived from release and commit history, not a rating.

Stars
51k
Forks
7.9k
Downloads / mo
7.1M
Last commit
2026-08-01
License
MIT
Open issues
604

Market and trust evidence

Edition not yet matched

No exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.

Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.

In practice

Written by AI from this repository’s README · medium confidence

Querying private documents with an LLM otherwise means assembling parsing, retrieval and agent code yourself.

Use it when

When building retrieval or document agent applications and you want a starter package plus a large integration catalog.

Not the right pick when

Enterprise parsing, extraction and OCR sit in the separate hosted platform rather than the open source framework.

Capabilities

  • Starter package bundling core plus selected integrations
  • Core only package for choosing your own integrations
  • Over 300 integration packages available on LlamaHub
  • Namespaced imports separating core from integrations
  • Works alongside LlamaParse for document parsing

Cost: Open source with a paid cloud option

Install

Derived from the published package name in the repository, not from a model.

Video walkthroughs

Third-party YouTube uploads matched to this tool by title, channel and repository name on 2026-08-03. Not made, reviewed or endorsed by SkillPilot. View counts and publish months are as of the match date and the month is approximate. Nothing loads from YouTube until you press play.

What the repository ships

Has docsSecurity policyCI configured

Detected from the actual files in the repository root.

Latest release v0.14.23

Published 2026-06-24

Release Notes

[2026-06-24]

llama-index-callbacks-argilla [0.5.0]

  • chore(deps): bump the uv group across 32 directories with 3 updates (#21664)
  • chore(deps): bump the uv group across 29 directories with 3 updates (#21665)
  • chore(deps): bump the uv group across 31 directories with 3 updates (#21668)
  • chore(deps): bump the pip group across 35 directories with 4 updates (#21714)
  • chore(deps): bump the uv group across 32 directories with 5 updates (#21717)
  • chore(deps): bump the uv group across 31 directories with 5 updates (#21719)
  • chore(deps): bump the uv group across 31 directories with 5 updates (#21720)
  • chore(deps): bump the uv group across 30 directories with 5 updates (#21721)
  • chore(deps): bump the uv group across 30 directories with 5 updates (#21722)
  • chore(deps): bump the pip group across 12 directories with 4 updates (#21724)
  • chore(deps): bump the uv group across 21 directories with 3 updates (#21725)
  • chore(deps): bump the pip group across 11 directories with 4 updates (#21726)
  • chore(deps): bump the uv group across 17 directories with 3 updates (#21727)
  • chore(deps): bump the uv group across 18 directories with 4 updates (#21733)
  • chore(deps): bump the uv group across 7 directories with 6 updates (#21736)

llama-index-core [0.14.23]

  • feat(core): Multimodal synthesis part 2 (#21561)
  • fix(core): add DocumentBlock and VideoBlock to FunctionTool.\_parse_tool_output (#21678)
  • fix(prompt_helper): guard against ZeroDivisionError on empty input sequences (#21707)
  • Preserve URL-backed video and document memory blocks (#21728)
  • fix: add explicit encoding='utf-8' to llama-index-core text-mode file I/O (#21729)
  • Add tool calling mock LLM (#21732)
  • make tests green again (#21737)
  • Fix refresh_ref_docs kwargs reuse (#21752)
  • perf: use a set instead of a list for within-batch dedup in Ingestion… (#21755)
  • fix: use running loop in ingestion pipeline (#21765)
  • fix(core): preserve IndexNode obj during model dump (#21776)
  • fix(workflow): deep copy initial_state to prevent mutation leaks across runs (#21780)
  • Multimodal query engines (#21784)
  • fix(core): match missing metadata for NE and NIN filters (#21785)
  • fix: preserve TreeSelectLeafRetriever source nodes (#21787)
  • Fix RecursionError in TokenTextSplitter & SentenceSplitter for units larger than chunk_size ([#21900](

Tags

README

🗂️ LlamaIndex 🦙

PyPI - Downloads

Build

GitHub contributors

Discord

Twitter

Reddit

Ask AI

LlamaIndex OSS (by LlamaIndex) is an open-source framework to build agentic applications. Parse is our enterprise platform for agentic OCR, parsing, extraction, indexing and more. 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.
  1. Customized: llama-index-core. Install core LlamaIndex and add your chosen LlamaIndex integration packages on LlamaHub

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.

  • Sign up for LlamaParse — Create an account and get your API key.
  • Parse — Agentic OCR and document parsing (130+ formats). Docs
  • Extract — Structured data extraction from documents. Docs
  • Index — Ingest, index, and RAG pipelines. Docs
  • Split — Split large documents into subcategories. Docs
  • Agents — Build end-to-end document agents with Workflows and Agent Builder. Docs

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

  • LLMs are a phenomenal piece of technology for knowledge generation and reasoning. They are pre-trained on large amounts of publicly available data.
  • How do we best augment LLMs with our own private data?

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:

  • Offers data connectors to ingest your existing data sources and data formats (APIs, PDFs, docs, SQL, etc.).
  • Provides ways to structure your data (indices, graphs) so that this data can be easily used with LLMs.
  • Provides an advanced retrieval/query interface over your data: Feed in any LLM input prompt, get back retrieved context and knowledge-augmented output.
  • Allows easy integrations with your outer application framework (e.g. with LangChain, Flask, Docker, ChatGPT, or anything else).

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}
}

Related tools