字
字节笔记本
2026年2月22日
LlamaIndex Starter Pack:快速构建 RAG 应用的完整示例集
本文介绍 llama_index_starter_pack,一个由 Logan Markewich 开发的开源项目,为 LlamaIndex 框架提供了 Flask、Streamlit 和 Docker 的完整示例代码。该项目旨在帮助开发者快速创建 POC(概念验证)项目,在 GitHub 上已获得 633+ stars 和 188 forks。
项目简介
llama_index_starter_pack 是一个入门级的示例代码仓库,专为 LlamaIndex(前身为 GPT Index)框架设计。它提供了多种技术栈的实现示例,帮助开发者快速上手构建基于大语言模型的文档问答应用。
该项目包含经典的 "Paul Graham Essay" 示例数据,开发者可以通过简单的提问来测试功能,例如:
- 作者成长过程中做了什么?
- 详细介绍一下 Interleaf
核心特性
- 多框架支持:提供 Flask + React 和 Streamlit 两种前端方案
- Docker 化部署:每个示例都包含 Dockerfile,便于容器化部署
- 文档上传功能:支持动态上传文档并建立索引
- 多种索引类型:包括 VectorStoreIndex 和 SQL 数据库索引
- Agent 对话支持:支持基于对话历史的智能体交互
- 术语定义提取:可从文档中提取术语和定义构建知识库
技术栈
- Python 3.11:项目基础运行环境
- LlamaIndex:核心 RAG(检索增强生成)框架
- Flask:轻量级 Web 后端框架
- React:前端用户界面
- Streamlit:快速构建数据应用的 Python 库
- Docker:容器化部署方案
安装指南
前置要求
- Python 3.11+
- Conda(推荐)或虚拟环境工具
- Docker(可选,用于容器化部署)
本地安装
bash
# 创建 Conda 环境
conda create --name llama_index python=3.11
# 激活环境
conda activate llama_index
# 安装依赖
pip install -r requirements.txt如果遇到依赖问题,可以使用
requirements_full.txt安装完整环境。
快速开始
1. Flask + React 示例
该示例运行三个服务,分别监听不同端口:
bash
cd flask_react
sh launch_app.sh服务端口说明:
localhost:5601- Flask API 服务localhost:5602- 索引管理服务localhost:3000- React 前端界面
API 端点:
POST /query- 接受包含 "text" 参数的请求,用于查询索引POST /upload- 上传文本文件并插入到索引中
建议使用 Postman 测试 API,项目 postman_examples 文件夹中包含示例截图。
2. Streamlit Vector 示例
最简单的入门方案,基于 VectorStoreIndex:
bash
cd streamlit_vector
streamlit run streamlit_demo.py访问 localhost:8501,你将看到:
- 从 documents 文件夹加载文本(使用
st.cache_resource缓存) - 输入框和查询按钮
- 显示查询结果的字符串响应
3. Streamlit SQL Sandbox 示例
展示 Text2SQL 功能的示例:
bash
cd streamlit_sql_sandbox
streamlit run streamlit_demo.py功能标签页:
- Setup:配置 LLM 和 LlamaIndex 设置
- Single-Shot Query:基础的 Text2SQL 演示
- Agent + Chat History:使用 LlamaIndex Agent 进行对话式 SQL 查询
示例数据:旧金山餐厅检查数据(Google Sheets)
4. Streamlit Term Definition 示例
术语定义提取和查询工具:
bash
cd streamlit_term_definition
streamlit run streamlit_demo.py功能特性:
- 预加载 NYC 维基百科页面信息
- 支持从图片上传中提取文本
- 可配置 LLM 设置
- 构建自定义术语/定义知识库
Docker 部署
每个示例目录都包含 Dockerfile,构建镜像约 600MB-900MB:
bash
# 进入目标示例目录
cd flask_react # 或 streamlit_vector 等
# 构建 Docker 镜像
docker build -t llama-index-demo .
# 运行容器(根据示例映射不同端口)
# Flask React 示例
docker run -p 5601:5601 -p 5602:5602 -p 3000:3000 llama-index-demo
# Streamlit 示例
docker run -p 8501:8501 llama-index-demo端口映射说明:
- Flask React:
5601, 5602, 3000 - Streamlit 示例:
8501
项目结构
text
llama_index_starter_pack/
├── flask_react/ # Flask + React 完整栈示例
│ ├── flask_api/ # Flask 后端 API
│ ├── react_frontend/ # React 前端
│ ├── postman_examples/ # Postman 测试示例
│ └── Dockerfile
├── streamlit_vector/ # Streamlit VectorStoreIndex 示例
│ ├── streamlit_demo.py
│ └── Dockerfile
├── streamlit_sql_sandbox/ # Streamlit SQL 示例
│ ├── streamlit_demo.py
│ └── Dockerfile
├── streamlit_term_definition/ # 术语定义提取示例
│ ├── streamlit_demo.py
│ └── Dockerfile
├── requirements.txt # 基础依赖
└── requirements_full.txt # 完整环境依赖使用建议
- 新手入门:从
streamlit_vector开始,最快看到效果 - 生产环境:参考
flask_react架构,前后端分离更易扩展 - 数据库应用:
streamlit_sql_sandbox展示了 Text2SQL 的强大能力 - 知识库构建:
streamlit_term_definition适合构建结构化知识库
项目链接
- GitHub 仓库:https://github.com/logan-markewich/llama_index_starter_pack
- Streamlit 在线演示:https://llama-index.streamlit.app/
- LlamaIndex 官方仓库:https://github.com/run-llama/llama_index
许可证
MIT License
该项目持续维护中,欢迎提交 PR 或建议。如果你需要快速创建一个能打动老板的概念验证项目,从这里开始是个不错的选择!
分享: