是的,您可以使用 Haystack 进行离线文档搜索和批量处理。 Haystack 旨在处理没有互联网连接环境中的文档索引、检索和处理,前提是您将其配置为使用本地资源。 对于批量处理,其管道架构允许您通过链接诸如预处理器、嵌入器和文档存储等组件来有效地处理大量文档。 这使其适用于需要在以后查询之前批量索引或分析文档的场景。
要设置离线文档搜索,Haystack 支持本地文档存储,例如 FAISS、SQLite 或 InMemoryDocumentStore。 例如,您可以使用 FAISS(一个向量相似度库)在本地存储文档嵌入,从而实现语义搜索,而无需依赖外部服务。 您首先需要使用本地模型(例如,sentence-transformers/all-MiniLM-L6-v2)将文档转换为嵌入来索引文档,然后将这些嵌入存储在 FAISS 中。 索引完成后,您可以使用自然语言离线查询文档存储。 这非常适合内部知识库或存档数据分析等应用程序,在这些应用程序中不需要实时连接。
对于批量处理,Haystack 的 Pipeline
类允许您定义诸如文档清理、拆分或丰富之类的任务的工作流程。 例如,您可以创建一个管道,该管道从文件夹读取 PDF,提取文本,将其拆分为块,生成嵌入,并将结果保存到本地数据库。 这对于在部署或定期更新之前预处理大型数据集非常有用。 此外,您可以并行化管道的各个部分(例如,使用多处理)以加快批量操作。 由于 Haystack 是一个 Python 库,因此它可以与脚本或计划作业中的离线工作流程集成,使其能够适应数据无法离开安全、气隙系统的环境。