创建 Llama
使用 create-llama
是开始使用 LlamaIndex 最简单的方式。这个命令行工具可以让你快速开始构建一个新的 LlamaIndex 应用,并为你设置好所有内容。
开始使用
只需运行
npx create-llama@latest
即可开始,或观看此视频了解演示会话:
https://github.com/user-attachments/assets/dd3edc36-4453-4416-91c2-d24326c6c167
应用生成后,运行
npm run dev
启动开发服务器。然后你可以访问 http://localhost:3000 查看你的应用。
你将获得什么
- 使用 shadcn/ui 组件的 Next.js 驱动的前端。该应用设置为聊天界面,可以回答有关你的数据的问题或与你的代理交互
- 三种后端选择:
- Next.js:如果选择此选项,你将拥有一个全栈 Next.js 应用,只需几次点击就可以部署到 Vercel 等主机上。这使用了我们的 TypeScript 库 LlamaIndex.TS。
- Express:如果你想要更传统的 Node.js 应用,可以生成一个 Express 后端。这也使用 LlamaIndex.TS。
- Python FastAPI:如果选择此选项,你将获得一个由 llama-index Python 包 驱动的后端,可以部署到 Render 或 fly.io 等服务上。
- 后端有两个端点(一个流式,一个非流式),允许你发送聊天状态并接收额外的响应
- 你可以向聊天添加任意数据源,如本地文件、网站或从数据库检索的数据。
- 通过添加工具(由 LLM 调用的函数)将你的聊天转变为 AI 代理。
- 该应用默认使用 OpenAI,因此你需要一个 OpenAI API 密钥,或者你可以自定义它以使用我们支持的数十种 LLM 中的任何一种。
以下是它的外观:
https://github.com/user-attachments/assets/d57af1a1-d99b-4e9c-98d9-4cbd1327eff8
使用你的数据
你可以提供自己的数据;应用将对其进行索引并回答问题。你生成的应用将有一个名为 data
的文件夹(如果你使用 Express 或 Python 并生成前端,它将位于 ./backend/data
)。
应用将摄取你放在此目录中的任何支持的文件。你的 Next.js 和 Express 应用使用 LlamaIndex.TS,因此它们能够摄取任何 PDF、文本、CSV、Markdown、Word 和 HTML 文件。Python 后端可以读取更多类型,包括视频和音频文件。
在使用数据之前,你需要对其进行索引。如果你使用 Next.js 或 Express 应用,运行:
npm run generate
然后重新启动你的应用。记住,如果你向 data
文件夹添加新文件,需要重新运行 generate
。
如果你使用 Python 后端,可以通过调用以下命令触发数据索引:
poetry run generate
需要前端吗?
如果你选择了 Python 或 Express 后端,可以选择性地生成一个前端。如果这样做,create-llama
将生成两个文件夹:frontend
,用于你的基于 Next.js 的前端代码,和 backend
,包含你的 API。
自定义 AI 模型
应用默认使用 OpenAI 的 gpt-4o-mini
LLM 和 text-embedding-3-large
嵌入模型。
如果你想使用不同的 OpenAI 模型,添加 --ask-models
CLI 参数。
你还可以用我们支持的数十种其他 LLM 中的一种替换 OpenAI。
为此,你必须手动更改生成的代码(对于 TypeScript 项目编辑 settings.ts
文件,对于 Python 项目编辑 settings.py
文件)
示例
最简单的方法是在交互模式下运行 create-llama
:
npx create-llama@latest
# 或
npm create llama@latest
# 或
yarn create llama
# 或
pnpm create llama@latest
你将被询问项目名称以及其他配置选项,类似这样:
>> 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
✔ Which template would you like to use? › Agentic RAG (single agent)
✔ Which framework would you like to use? › NextJS
✔ Would you like to set up observability? › No
✔ Please provide your OpenAI API key (leave blank to skip): …
✔ Which data source would you like to use? › Use an example PDF
✔ Would you like to add another data source? › No
✔ Would you like to use LlamaParse (improved parser for RAG - requires API key)? … no / yes
✔ Would you like to use a vector database? › No, just store the data in the file system
✔ Would you like to build an agent using tools? If so, select the tools here, otherwise just press enter › Weather
? 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)
Generate code, install dependencies, and run the app (~2 min)
非交互式运行
你也可以传递命令行参数来非交互式地设置新项目。请参阅 create-llama --help
:
create-llama <project-directory> [options]
选项:
-V, --version 输出版本号
--use-npm
明确告诉 CLI 使用 npm 引导应用
--use-pnpm
明确告诉 CLI 使用 pnpm 引导应用
--use-yarn
明确告诉 CLI 使用 Yarn 引导应用
LlamaIndex 文档
灵感来源并改编自 create-next-app