# 多跳策略的多轮检索模块

## 使用方法
```
from taolue_multi_retrival.multi_retrieve import efficient_rag

efficient_rag(search_rerank_func, query, top_k, libs, kb_ids, kb_file_ids)

search_rerank_func函数：
def search_rerank_func(query, top_k, libs, kb_ids, kb_file_ids)
```

参数	类型	默认值	说明
search_rerank_func	函数		传入执行检索+精排操作的函数
query	str		原始query
libs	List[str]	["es_chunk","es_summary","es_embedding","es_summary_embedding"]	一般情况下检索所有库，第二轮检索开始只检索es切片库、es摘要库，不检索向量库。
kb_ids	List[int]	/	哪个字段有值用哪个，Tuple结构：(知识库id, 文件id列表)
kb_file_ids	List[Tuple[int, List[int]]] 	/
top_k	int	10	每轮检索的数据量