retriv

retriv

Python实现的多功能搜索引擎库

retriv是一个Python搜索引擎库,支持稀疏、密集和混合检索模式。它利用Numba进行向量运算加速,整合了PyTorch、Transformers和Faiss等工具,实现了高效的检索功能。该库提供自动调优,支持多语言处理,并可通过简单的API快速构建搜索系统。

retriv搜索引擎信息检索稀疏检索密集检索Github开源项目
<div align="center"> <img src="https://repository-images.githubusercontent.com/566840861/ce7eeed0-7454-4aff-9073-235a83eeb6e7"> </div> <p align="center"> <!-- Python --> <a href="https://www.python.org" alt="Python"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/d615eda3-691c-4a32-8a2d-6f91731020c8.svg" /> </a> <!-- 版本 --> <a href="https://badge.fury.io/py/retriv"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/95a99f3f-fa82-4fb8-b1e8-f808ab9a672b.svg" alt="PyPI 版本" height="18"></a> <!-- 文档 --> <!-- <a href="https://amenra.github.io/retriv"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/d9091c7b-ea0b-4adc-936a-5e0a56787b6e.svg" alt="文档状态"></a> --> <!-- Black --> <a href="https://github.com/psf/black" alt="代码风格: black"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/fd9defda-c4cd-4e97-8e4d-60553ca00ee1.svg" /> </a> <!-- 许可证 --> <a href="https://lbesson.mit-license.org/"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/e9c20c67-f666-4f08-8d25-1c28896577e6.svg" alt="许可证: MIT"></a> <!-- Google Colab --> <!-- <a href="https://colab.research.google.com/github/AmenRa/retriv/blob/master/notebooks/1_overview.ipynb"> --> <!-- <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/f0ef1bd0-5f5d-4c3d-977e-6683fda38422.svg" alt="在 Colab 中打开"/> --> </a> </p>

🔥 新闻

  • [2023年8月23日] retriv 0.2.2 发布!
    此版本新增了对多字段文档和过滤器的实验性支持。 请参阅高级检索器文档。

  • [2023年2月18日] retriv 0.2.0 发布!
    此版本新增了对密集检索和混合检索的支持。 密集检索利用查询和文档向量表示的语义相似性,这些向量可以直接由 retriv 计算或从其他来源导入。 混合检索将传统检索(非正式称为稀疏检索)和密集检索的结果结合,进一步提高检索效果。 由于库几乎完全重写,不再支持之前版本构建的索引。

⚡️ 简介

retriv 是一个用户友好且高效的搜索引擎,使用 Python 实现,支持稀疏检索(基于 BM25TF-IDF 的传统搜索)、密集检索(语义搜索)和混合检索(稀疏检索和密集检索的结合)。 它允许您通过__单行代码__构建搜索引擎。

retriv 基于 Numba 实现高速向量运算自动并行化,利用 PyTorchTransformers 实现对基于 Transformer 的语言模型的便捷访问和使用,并使用 Faiss 进行近似最近邻搜索。 此外,它还提供自动调优功能,让您能以最少的干预调整其内部组件。

✨ 主要特性

检索器

统一搜索接口

所有支持的检索器共享相同的搜索接口:

  • search:标准搜索功能,即您对搜索引擎的期望。
  • msearch:一次性计算多个查询的结果。 它尽可能利用自动并行化
  • bsearch:与msearch类似,但自动生成要评估的查询批次,并允许以JSONl格式动态将搜索结果写入磁盘。bsearch适用于计算数十万甚至数百万个查询的结果,而不会占用大量内存。预计算的结果可用于信息检索神经网络模型训练期间的负采样。

自动调优

retriv通过利用AutoFaiss自动调优Faiss配置,以根据您可用的硬件保证10毫秒的响应时间。 此外,它还为BM25参数提供自动调优功能,只需最少的用户干预。 在后台,retriv利用Optuna(一个超参数优化框架)和ranx(一个信息检索评估库)来测试BM25的多种参数配置并选择最佳方案。 最后,它可以自动平衡混合检索器计算的词法和语义相关性得分的重要性,以最大化检索效果。

📚 文档

🔌 要求

python>=3.8

💾 安装

pip install retriv

💡 最小工作示例

# 注意:SearchEngine是SparseRetriever的别名 from retriv import SearchEngine collection = [ {"id": "doc_1", "text": "Generals gathered in their masses"}, {"id": "doc_2", "text": "Just like witches at black masses"}, {"id": "doc_3", "text": "Evil minds that plot destruction"}, {"id": "doc_4", "text": "Sorcerer of death's construction"}, ] se = SearchEngine("new-index").index(collection) se.search("witches masses")

输出:

[ { "id": "doc_2", "text": "Just like witches at black masses", "score": 1.7536403 }, { "id": "doc_1", "text": "Generals gathered in their masses", "score": 0.6931472 } ]

🎁 功能请求

您希望看到其他功能实现吗?请提交一个功能请求

🤘 想要贡献?

您想贡献吗?请给我发送一封电子邮件

📄 许可证

retriv是根据MIT许可证授权的开源软件。

编辑推荐精选

蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多