要使用 LlamaIndex 生成嵌入,首先需要设置核心组件并选择一个嵌入模型。LlamaIndex 提供了与 embedding API(如 OpenAI 的 text-embedding-ada-002
)或来自 Hugging Face 的开源模型集成的工具。首先安装库(pip install llama-index
)并导入模块,如 ServiceContext
、VectorStoreIndex
和 SimpleDirectoryReader
。创建一个 ServiceContext
对象来配置你的嵌入模型——例如,使用 OpenAIEmbedding()
用于 OpenAI API 或 HuggingFaceEmbedding()
用于本地模型。此上下文会传递给下游进程,以确保文本转换为向量的方式保持一致。
接下来,准备数据并构建索引以自动生成嵌入。使用 SimpleDirectoryReader
加载文本文件,创建表示文本块的 Document
对象。为了进行更精细的控制,可以使用文本分割器将这些文档分割成 Node
对象(更小的文本片段)。当你创建一个 VectorStoreIndex
(例如,VectorStoreIndex(nodes, service_context=service_context)
)时,LlamaIndex 会处理每个节点,将其文本发送到你的 ServiceContext
中指定的嵌入模型。生成的嵌入存储在索引中,以便进行高效的相似性搜索。例如,以这种方式索引一组研究论文将创建捕获文档之间语义关系的向量表示。
如果你需要在不构建完整索引的情况下直接访问嵌入,可以直接使用嵌入模型。从你的 ServiceContext
中检索嵌入模型(例如,embed_model = service_context.embed_model
),并调用 embed_model.get_text_embedding("your text here")
来生成向量。这对于比较单个文本片段或填充自定义向量数据库等任务非常有用。例如,单独嵌入产品描述可以让你计算它们之间的相似性,而无需建立索引。务必确保你的嵌入模型的 token 限制与你的文本长度一致——先分割长文本以避免截断错误。