llm search
v0.8.2
文档
该包的目的是提供一个方便的问答 (RAG) 系统,该系统具有基于 YAML 的简单配置,可以与多个本地文档集合进行交互。除了基于 LLM 的基本 RAG 之外,还特别关注系统各个组件的改进 - 更好的文档解析、混合搜索、启用 HyDE 的搜索、聊天历史记录、深度链接、重新排名、自定义嵌入的能力等等。该软件包旨在与自定义大型语言模型 (LLM) 配合使用——无论是来自 OpenAI 还是本地安装。
支持的格式
.md
- 根据标题、副标题和代码块等逻辑组件划分文件。支持其他功能,例如清理图像链接、添加自定义元数据等。.pdf
- 基于 MuPDF 的解析器。.docx
- 自定义解析器,支持嵌套表。Unstructured
预处理器支持其他常见格式:支持通过开源 gmft (https://github.com/conjuncts/gmft) 或 Azure 文档智能进行表解析。
使用 Gemini API 可选择支持图像解析。
支持文档的多个集合,并通过集合过滤结果。
能够增量更新嵌入,而无需重新索引整个文档库。
从文档文件夹生成密集嵌入并将其存储在矢量数据库 (ChromaDB) 中。
multilingual-e5-base
。instructor-large
。使用 SPLADE (https://github.com/naver/splade) 生成稀疏嵌入以启用混合搜索(稀疏 + 密集)。
支持语义搜索的“检索和重新排名”策略,请参阅此处。
ms-marco-MiniLM
交叉编码器之外,还支持更现代的bge-reranker
。支持 HyDE(假设文档嵌入) - 请参阅此处。
支持多重查询,灵感来自RAG Fusion
- https://towardsdatascience.com/forget-rag-the-future-is-rag-fusion-1147298d8ad1
支持带有问题上下文的可选聊天历史记录
允许与嵌入文档交互,内部支持以下模型和方法(包括本地托管):
通过 OpenAI API 与 LiteLLM + Ollama 进行互操作,支持数百种不同的模型(请参阅 LiteLLM 的模型配置)
其他特点
浏览文档