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驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

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

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

下拉加载更多