自定义检索器的混合搜索
概述
在本教程中,我们将展示如何定义一个非常简单的混合搜索版本!结合关键词查找检索和向量检索,使用“AND”和“OR”条件。
安装依赖
首先,我们需要安装 LlamaIndex:
!pip install llama-index
设置 OpenAI API 密钥:
import os
os.environ["OPENAI_API_KEY"] = "sk-..."
下载数据
下载 Paul Graham 的散文:
!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'
加载数据
将文档转换为节点,并插入到文档存储中:
from llama_index.core import SimpleDirectoryReader
# 加载文档
documents = SimpleDirectoryReader("./data/paul_graham").load_data()
获取节点:
from llama_index.core import Settings
nodes = Settings.node_parser.get_nodes_from_documents(documents)
初始化存储上下文(默认是内存中的):
from llama_index.core import StorageContext
storage_context = StorageContext.from_defaults()
storage_context.docstore.add_documents(nodes)
定义向量索引和关键词表索引
在相同的文档存储上构建向量索引和关键词索引:
from llama_index.core import SimpleKeyw