在本篇文章中,我们将介绍如何使用 LlamaIndex 创建一个本地文件问答应用。本教程将详细讲解如何设置和使用该工具,并提供示例代码帮助您快速上手。
安装和设置
首先,您需要安装 LlamaIndex 和 Chroma 数据库。可以使用以下命令进行安装:
$ pip install -U llama-index
$ pip install -U chromadb
安装完成后,您可以通过以下命令查看 LlamaIndex CLI 的帮助信息:
$ llamaindex-cli rag -h
基本使用方法
设置 API 密钥
默认情况下,该工具使用 OpenAI 的 API。因此,您需要设置 OPENAI_API_KEY
环境变量:
$ export OPENAI_API_KEY=<your_api_key> //中转API
导入文件
接下来,您需要指向一些本地文件,以便将其导入本地向量数据库。以下是一个导入 LlamaIndex README.md 文件的示例:
$ llamaindex-cli rag --files "./README.md"
您还可以使用文件通配符模式,例如:
$ llamaindex-cli rag --files "./docs/**/*.rst"
提问
导入文件后,您可以开始提问:
$ llamaindex-cli rag --question "What is LlamaIndex?"
系统将基于您导入的文件内容生成答案。
创建聊天应用
您还可以创建一个基于 FastAPI 后端和 NextJS 前端的完整聊天应用。首先,确保您的机器上已安装 NodeJS 和 npx。如果没有,请参考 LlamaIndex.TS 文档 进行安装。
一旦设置完成,创建新应用非常简单,只需运行以下命令:
$ llamaindex-cli rag --create-llama
您将被要求提供一些信息,例如项目名称和模型类型等。选择 “Generate code, install dependencies, and run the app (~2 min)” 选项,所有依赖项将自动安装并运行应用。然后,您可以通过访问 http://localhost:3000
来访问该应用。
自定义 CLI 工具
该工具支持高度自定义,您可以使用以下代码创建自定义的 rag CLI 工具:
#!/path/to/your/virtualenv/bin/python
import os
from llama_index.core.ingestion import IngestionPipeline, IngestionCache
from llama_index.core.query_pipeline import QueryPipeline
from llama_index.core.storage.docstore import SimpleDocumentStore
from llama_index.cli.rag import RagCLI
# 设置 API 密钥
os.environ["OPENAI_API_KEY"] = "sk-xxx" //中转API
docstore = SimpleDocumentStore()
vec_store = ... # 向量存储实例
llm = ... # LLM 实例 - 可选,默认使用 OpenAI gpt-3.5-turbo
custom_ingestion_pipeline = IngestionPipeline(
transformations=[...],
vector_store=vec_store,
docstore=docstore,
cache=IngestionCache(),
)
custom_query_pipeline = QueryPipeline()
custom_query_pipeline.add_modules(...)
custom_query_pipeline.add_link(...)
file_extractor = {".html": ...}
rag_cli_instance = RagCLI(
ingestion_pipeline=custom_ingestion_pipeline,
llm=llm, # 可选
query_pipeline=custom_query_pipeline, # 可选
file_extractor=file_extractor, # 可选
)
if __name__ == "__main__":
rag_cli_instance.cli()
常见错误及解决方法
-
API 密钥未设置:
如果未设置OPENAI_API_KEY
环境变量,会出现 API 调用失败的错误。请确保正确设置了环境变量。 -
文件路径错误:
如果提供的文件路径不正确或文件不存在,会导致文件导入失败。请检查文件路径的正确性。 -
依赖项未安装:
在使用自定义 CLI 工具时,确保所有依赖项均已正确安装。可以使用pip install -U llama-index chromadb
进行安装。
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!