LlamaIndexllama-index-core 0.14 · Python 3.10+
Dashboard
0%
1
Curious builder0 XP earned · 300 to level 2
0 daysFinish a lesson to begin
Badge collection0 of 6 unlocked
30 small wins to finish your pathNext lesson →

Installation and setup

LlamaIndex installs as a small core package plus one integration package for each model, embedding or store you plug in.

Last updated: 28 Sep, 2026 · LlamaIndex 0.14

Without a model set, LlamaIndex reaches for OpenAI for both answers and embeddings, which needs a paid key; the models guide describes the defaults. This course sets a local embedding model in the embeddings lesson and a stand-in answering model later, so no key is needed to run any example here.

Installing the core and two integrations

llama-index-core is the framework. The other two are integration packages, installed separately as LlamaIndex does for every model and store: local embeddings through Hugging Face, and keyword search with BM25. Allow about 1 GB of disk for PyTorch and two small models.

pip install "llama-index-core==0.14.25" "llama-index-embeddings-huggingface==0.8.0" "llama-index-retrievers-bm25==0.8.0"

Check that Python finds the installed version:

Example
from importlib.metadata import version

print(version("llama-index-core"))

An answering model from a free providerOptional

If no model is set, LlamaIndex uses OpenAI for answers, so a real answer needs a key. This course never relies on that default: it sets a local embedding model in the next lessons and a stand-in answering model later. When you do want real answers, a hosted model is one integration package and one line in Settings.

python
from llama_index.core import Settings
from llama_index.llms.groq import Groq

Settings.llm = Groq(model="openai/gpt-oss-120b")  # set GROQ_API_KEY first

Free providers and their packages

ProviderKeyVariablePackage and class
GroqFree, console.groq.com/keysGROQ_API_KEYllama-index-llms-groq, Groq(model="openai/gpt-oss-120b")
GeminiFree, aistudio.google.com/apikeyGOOGLE_API_KEYllama-index-llms-google-genai, GoogleGenAI(model="gemini-2.5-flash")
OpenRouterFree models end in :free, openrouter.ai/keysOPENROUTER_API_KEYllama-index-llms-openrouter, OpenRouter(model="google/gemma-4-31b-it:free")
OpenAIPaid, platform.openai.com/api-keysOPENAI_API_KEYllama-index-llms-openai, OpenAI(model="gpt-4o-mini")
pip install "llama-index-llms-groq==0.6.0"
export GROQ_API_KEY=gsk_...

When to pin these versions

  • Pin llama-index-core==0.14.25 while following the course, so an example's output matches what you read here.
  • Keep each integration package's major version in step with the core; a version-1 tutorial's imports will not match version 0.14.
  • Drop the pins once you are comfortable and want the latest fixes, then re-run your own tests.
Watch out. An older tutorial may import from llama_index as one giant package. Version 0.14 splits that into llama-index-core plus one package per integration, so from llama_index import ... for an embedding or model will fail until you install and import its own package.
Try it yourself
  • Run pip list and count the packages whose names start with llama-index.
  • Print version("llama-index-embeddings-huggingface") and compare it with the pin above.

Little by little, you're building something great.