LlamaIndex 起步教程(本地模型)
提示:确保您已先按照自定义安装步骤操作。
这是一个著名的“五行代码”起步示例,使用本地 LLM(大语言模型)和嵌入模型。我们将使用 BAAI/bge-small-en-v1.5 作为嵌入模型,通过 Ollama 服务的 Mistral-7B 作为 LLM。
下载数据
本示例使用 Paul Graham 的文章《What I Worked On》文本。您可以在我们仓库的 examples
文件夹中找到这篇及其他多个示例。
最简便的方式是通过此链接下载该文件,并将其保存到名为 data
的文件夹中。
安装与设置
Ollama 是一个帮助您在本地配置 LLM(目前支持 macOS 和 Linux,您可以通过 WSL 2 在 Windows 上安装 Ollama)的工具。
请遵循 README 了解如何安装 Ollama。
要加载 Mistral-7B 模型,只需执行 ollama pull mistral
注意:您需要至少具有 32GB 内存的机器。
加载数据并构建索引
在您创建 data
文件夹的同一目录下,创建一个名为 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 documents = SimpleDirectoryReader("data").load_data() # 使用 BAAI/bge-small-en-v1.5 嵌入模型 Settings.embed_model = resolve_embed_model("local:BAAI/bge-small-en-v1.5") # 使用 Ollama 包装的 Mistral LLM Settings.llm = Ollama(model="mistral", request_timeout=30.0) index = VectorStoreIndex.from_documents(documents)
这段代码将在 data
文件夹中的文档(本例中仅包含文章文本,但可以包含多个文档)上构建索引。
此时,您的目录结构应如下所示:
├── starter.py
└── data
└── paul_graham_essay.txt
我们通过 resolve_embed_model
使用 BAAI/bge-small-en-v1.5 模型,它解析为我们库中的 HuggingFaceEmbedding
类。同时,我们使用 Ollama LLM 封装来加载 mistral 模型。
查询数据
向 starter.py
添加以下代码:
query_engine = index.as_query_engine() response = query_engine.query("What did the author do growing up?") print(response)
这将创建一个针对索引的查询引擎,并提出一个简单问题。您应该得到类似以下的响应:
The author wrote short stories and tried to program on an IBM 1401.
您可以像起步示例那样查看日志、持久化/加载索引。
提示:
- 了解高级概念:想了解更多关于高层次概念,请查阅相关文档。
- 如何定制:若想知道如何定制各项内容,请参阅相关说明。
- 特定模块:对某个特定模块感兴趣?请查看组件指南。
Video:AI 新视界
Tool:Llama3 在线、Gemma在线、ChatAIonline
Ref:https://docs.llamaindex.ai/en/stable/getting_started/starter_example_local/