在本文中,我们将探讨如何使用LlamaIndex和Gradient Embeddings来进行文本嵌入与查询。这些技术能够帮助我们更高效地处理和查询大规模文本数据。下面将详细介绍实现过程,并提供示例代码。
环境准备
首先,我们需要安装相关的Python包:
%pip install llama-index --quiet
%pip install gradientai --quiet
设置访问令牌和工作空间ID
在使用Gradient Embeddings之前,我们需要设置访问令牌和工作空间ID。可以通过Gradient UI或Gradient CLI获取这些信息。
import os
os.environ["GRADIENT_ACCESS_TOKEN"] = "your_gradient_access_token"
os.environ["GRADIENT_WORKSPACE_ID"] = "your_gradient_workspace_id"
配置LlamaIndex和Gradient Embeddings
我们将使用LlamaIndex的GradientBaseModelLLM和GradientEmbedding来配置我们的嵌入模型。
from llama_index.llms.gradient import GradientBaseModelLLM
from llama_index.embeddings.gradient import GradientEmbedding
from llama_index.core import Settings
# 配置基础模型
llm = GradientBaseModelLLM(
base_model_slug="llama2-7b-chat",
max_tokens=400,
)
# 配置嵌入模型
embed_model = GradientEmbedding(
gradient_access_token=os.environ["GRADIENT_ACCESS_TOKEN"],
gradient_workspace_id=os.environ["GRADIENT_WORKSPACE_ID"],
gradient_model_slug="bge-large",
)
Settings.embed_model = embed_model
Settings.llm = llm
Settings.chunk_size = 1024
下载数据并加载文档
我们将使用一个保罗·格雷厄姆的文章作为示例数据。
!mkdir -p 'data/paul_graham/'
!wget 'https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay.txt' -O 'data/paul_graham/paul_graham_essay.txt' #中转API
from llama_index.core import SimpleDirectoryReader
documents = SimpleDirectoryReader("./data/paul_graham").load_data()
print(f"Loaded {len(documents)} document(s).")
建立索引并进行查询
接下来,我们将文档数据载入到VectorStoreIndex中,并使用查询引擎进行查询。
from llama_index.core import VectorStoreIndex
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query(
"What did the author do after his time at Y Combinator?"
)
print(response)
常见问题及错误处理
- 环境变量错误:确保环境变量
GRADIENT_ACCESS_TOKEN
和GRADIENT_WORKSPACE_ID
已正确设置。如果设置不正确,将导致授权失败。 - 网络错误:在下载数据或访问API时,可能会遇到网络问题。请确保网络连接正常,并重试下载或请求操作。
- 模型配置错误:确保配置的模型slug和工作空间ID正确。如果模型slug错误,可能会导致模型加载失败。
通过上述步骤,我们成功地配置了LlamaIndex和Gradient Embeddings,并进行了文本嵌入和查询。如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!
参考资料: