LlamaIndex 本身不支持文档版本控制,但它可以有效地与外部版本控制系统或自定义实现一起工作。该库专注于 LLM 应用的数据索引和查询,将版本控制留给通过现有工具或工作流程进行管理。开发者需要在 LlamaIndex 之外处理文档更改,并在新版本可用时显式更新索引。
例如,一种常见的方法是集成 Git 来跟踪文档修订。假设您将 Markdown 文件存储在 Git 仓库中,而您的 LlamaIndex 管道会处理这些文件。每次文档更改时,Git 提交都会捕获更新。您的代码可以在重建 LlamaIndex 索引时引用特定的 Git 提交哈希值,从而确保查询使用正确的文档版本。同样,像 AWS S3 这样的云存储系统提供对象版本控制——您可以设计一个管道,当检测到新的 S3 对象版本时,LlamaIndex 索引会自动更新,使用来自 AWS Lambda 等服务的事件触发器。
另一种策略是将索引存储按版本分隔。如果您经常更新 API 规范等文档,您可以为每个主要版本(v1、v2 等)生成一个新的 LlamaIndex 索引,并将它们存储在单独的目录或云路径中。然后,查询将根据请求的版本路由到适当的索引。对于较小规模的项目,一个简单的文件命名约定(例如,manual_2023Q1.json
与 manual_2023Q2.json
)与定期的完全重新索引相结合可能就足够了。这避免了复杂的工具,同时保持了源文档和向量索引之间的版本对齐。
关键的考虑因素是 LlamaIndex 索引不会自动与文档更改同步——开发者必须在源数据更新时重建或复制索引。这使得版本控制主要是一个架构决策,而不是一个库特性。团队应该评估他们的更新频率和查询需求,以便在版本化索引、按需重新索引或使用外部触发器的混合方法之间做出选择。