LlamaIndex 本地大模型起步教程
本教程演示如何利用 LlamaIndex 框架配合本地运行的 Ollama 服务实现大语言模型应用开发。通过集成 BAAI/bge-small-en-v1.5 嵌入模型与 Mistral-7B 语言模型,完成文档加载、索引构建及问答查询的全流程。
环境准备
在开始之前,请确保您的开发环境满足以下要求:
- Python 版本:建议 Python 3.8 或更高版本。
- Ollama 安装:
- macOS 和 Linux 用户可直接下载官方安装包。
- Windows 用户建议使用 WSL 2 环境进行安装。
- 访问 Ollama 官网获取详细安装指南。
- 依赖库安装:
pip install llama-index pip install llama-index-llms-ollama pip install llama-index-embeddings-huggingface - 硬件资源:
- 运行 Mistral-7B 模型建议至少拥有 32GB 内存的机器,以确保推理流畅。
数据准备
本示例使用 Paul Graham 的文章《What I Worked On》作为测试文本。您可以从 LlamaIndex 官方仓库的 examples 文件夹中获取该文件,或者自行创建文本文件。
请在项目根目录下创建一个名为 data 的文件夹,并将文本文件(例如 paul_graham_essay.txt)放入其中。
目录结构如下:
├── starter.py
└── data
└── paul_graham_essay.txt
构建索引
在项目根目录下创建 starter.py 文件,编写以下代码以加载数据并构建向量索引。
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings
from llama_index.core.embeddings import resolve_embed_model
from llama_index.llms.ollama import Ollama
# 1. 加载文档
# SimpleDirectoryReader 会自动读取 data 文件夹下的所有文本文件
documents = SimpleDirectoryReader("data").load_data()
print(f"已加载 {len(documents)} 个文档")
# 2. 配置嵌入模型
# 使用本地 BAAI/bge-small-en-v1.5 模型
Settings.embed_model = resolve_embed_model("local:BAAI/bge-small-en-v1.5")
# 3. 配置大语言模型
# 使用 Ollama 包装的 Mistral 模型,设置请求超时时间
Settings.llm = Ollama(model=, request_timeout=)
index = VectorStoreIndex.from_documents(documents)
()


