类功能
功能描述
使用BM25对输入的query进行topk检索,该类继承langchain_core.retrievers.BaseRetriever,通过调用基类的invoke方法使用检索功能,输入的query长度不超过100万。
函数原型
from mx_rag.retrievers.full_text_retriever import FullTextRetriever FullTextRetriever(document_store, k)
输入参数说明
参数名 |
数据类型 |
可选/必选 |
说明 |
---|---|---|---|
document_store |
MilvusDocstore类 或OpenGaussDocstore类 |
必选 |
存储待检索文本语料的关系数据库实例,当前只支持MilvusDocstore和OpenGaussDocstore两种 |
k |
int |
可选 |
检索返回的top k个MxDocument的数目,取值范围:[1,10000],默认值为“1”。 |
调用示例
from pymilvus import MilvusClient from langchain_text_splitters import RecursiveCharacterTextSplitter from mx_rag.document.loader import DocxLoader from mx_rag.storage.document_store import MxDocument, MilvusDocstore from mx_rag.retrievers import FullTextRetriever client = MilvusClient("https://x.x.x.x:port", user="xxx", password=getpass.getpass(), token="xxx") chunk_store = MilvusDocstore(client) docs = DocxLoader("test.docx").load_and_split( RecursiveCharacterTextSplitter(chunk_size=750, chunk_overlap=100)) mxdocs = [MxDocument(page_content=doc.page_content, metadata=doc.metadata, document_name="text.docx") for doc in docs] chunk_store.add(mxdocs, 1) full_retrive = FullTextRetriever(document_store=chunk_store, k=3) print(full_retrive.invoke("爪哇岛"))
父主题: FullTextRetriever类