run-llama / create-llama

The easiest way to get started with LlamaIndex
MIT License
1.05k stars 135 forks source link

Create Llama

The easiest way to get started with LlamaIndex is by using create-llama. This CLI tool enables you to quickly start building a new LlamaIndex application, with everything set up for you.

Get started

Just run

npx create-llama@latest

to get started, or watch this video for a demo session:

Once your app is generated, run

npm run dev

to start the development server. You can then visit http://localhost:3000 to see your app.

What you'll get

Here's how it looks like:

https://github.com/user-attachments/assets/d57af1a1-d99b-4e9c-98d9-4cbd1327eff8

Using your data

Optionally, you can supply your own data; the app will index it and make use of it, e.g. to answer questions. Your generated app will have a folder called data (If you're using Express or Python and generate a frontend, it will be ./backend/data).

The app will ingest any supported files you put in this directory. Your Next.js and Express apps use LlamaIndex.TS, so they will be able to ingest any PDF, text, CSV, Markdown, Word and HTML files. The Python backend can read even more types, including video and audio files.

Before you can use your data, you need to index it. If you're using the Next.js or Express apps, run:

npm run generate

Then re-start your app. Remember you'll need to re-run generate if you add new files to your data folder.

If you're using the Python backend, you can trigger indexing of your data by calling:

poetry run generate

Customizing the AI models

The app will default to OpenAI's gpt-4o-mini LLM and text-embedding-3-large embedding model.

If you want to use different OpenAI models, add the --ask-models CLI parameter.

You can also replace OpenAI with one of our dozens of other supported LLMs.

To do so, you have to manually change the generated code (edit the settings.ts file for Typescript projects or the settings.py file for Python projects)

Example

The simplest thing to do is run create-llama in interactive mode:

npx create-llama@latest
# or
npm create llama@latest
# or
yarn create llama
# or
pnpm create llama@latest

You will be asked for the name of your project, along with other configuration options, something like this:

>> npm create llama@latest
Need to install the following packages:
  create-llama@latest
Ok to proceed? (y) y
✔ What is your project named? … my-app
✔ What app do you want to build? › Agentic RAG
✔ What language do you want to use? › Python (FastAPI)
✔ Do you want to use LlamaCloud services? … No / Yes
✔ Please provide your LlamaCloud API key (leave blank to skip): …
✔ Please provide your OpenAI API key (leave blank to skip): …
? How would you like to proceed? › - Use arrow-keys. Return to submit.
    Just generate code (~1 sec)
❯   Start in VSCode (~1 sec)
    Generate code and install dependencies (~2 min)

Running non-interactively

You can also pass command line arguments to set up a new project non-interactively. For a list of the latest options, call create-llama --help.

Running in pro mode

If you prefer more advanced customization options, you can run create-llama in pro mode using the --pro flag.

In pro mode, instead of selecting a predefined use case, you'll be prompted to select each technical component of your project. This allows for greater flexibility in customizing your project, including:

Pro mode is ideal for developers who want fine-grained control over their project's configuration and are comfortable with more technical setup options.

LlamaIndex Documentation

Inspired by and adapted from create-next-app