懒加载依赖管理
Lazy Dependency Loading
通过懒加载机制延迟导入可选依赖,减少安装体积并提供友好的错误提示
子问题
1.可选依赖检测
2.友好错误提示
3.安装体积优化
4.pip 包名与 Python 模块名不一致的映射
5.Linter 规则与懒加载模式的冲突处理
6.重量级模型的实例级缓存与首次加载延迟
各项目的解法1 solutions
Signals
横向对比
| 维度 | zvec |
|---|---|
| 懒加载机制 | require_module 单函数封装 importlib.import_module,方法级延迟导入 |
| 错误提示 | 自动推断 pip 包名 + mitigation 参数覆盖,支持子模块 top_level 提取 |
| 依赖声明 | pyproject.toml 仅 numpy 一个核心依赖,可选后端完全不声明 |
| 缓存策略 | 实例级 self._model/_client 缓存 + BM25 embed 方法 lru_cache(maxsize=10) |
| 后端数量 | 5 个后端(OpenAI/DashScope/Jina/SentenceTransformers/DashText),10+ Extension 类 |
最佳实践
1.require_module 统一处理懒加载,失败时给出 pip install 命令
2.将 require_module 导出为公共 API 供用户复用
3.Ruff/Linter 为懒加载目录豁免 PLC0415 规则
4.API 客户端实例级缓存避免重复创建连接