[Bug]: llama-index-embeddings-azure-openai 0.6.0 is still dependent on llama-index-llms-azure-openai>=0.4.0,<0.6

当你在同一项目里同时把 llama-index-embeddings-azure-openai 升到 0.6.0、把 llama-index-llms-azure-openai 升到 0.6.1 时, uv sync / 依赖解析会直接失败并报 [Bug]: llama-index-embeddin

快速结论:当你在同一项目里同时把 llama-index-embeddings-azure-openai 升到 0.6.0、把 llama-index-llms-azure-openai 升到 0.6.1 时,uv sync / 依赖解析会直接失败并报 [Bug]: llama-index-embeddings-azure-openai 0.6.0 is still dependent on llama-index-llms-azure-openai>=0.4.0,<0.6。优先排查 llama-index-embeddings-azure-openai 的 pyproject.toml 依赖上限是否仍被钉在 <0.6。

适用环境:Issue 已确认的信息:LlamaIndex 版本 0.14.20;包管理器为 uv(通过 uv sync 触发);涉及包为 llama-index-embeddings-azure-openai 0.6.0 与 llama-index-llms-azure-openai 0.6.1。操作系统、Python、CUDA、显卡型号在 Issue 中未提供。

最快修复方案:暂无确认的一步修复方案(依赖上限 <0.6 是发布包里的硬约束,用户侧无法直接绕开)。上游的修复方向是:把 llama-index-embeddings-azure-openai 的 pyproject.toml 中 llama-index-llms-azure-openai 的上限从 <0.6 放宽到 <0.7(或更高),然后发布一个新的 embeddings 版本。在官方放宽并重新发版之前,可优先尝试把 llama-index-llms-azure-openai 暂时回退到 >=0.4.0,<0.6 以恢复依赖解析。

注意事项:回退 llama-index-llms-azure-openai 只是绕过依赖解析冲突的临时手段,可能使你无法使用 0.6.1 引入的能力(Issue 提到 0.6.1 是为了支持新的 GPT-6 模型)。该回退方案在 Issue 中并未被明确验证,属于可优先尝试项;放宽上限的具体版本号是上游建议,最终以官方发布的 pyproject.toml 为准。

问题场景

用户在项目里用 uv 管理依赖,并希望同时升级两个 Azure OpenAI 相关集成包:

  • llama-index-embeddings-azure-openai>=0.6.0,<0.7.0
  • llama-index-llms-azure-openai>=0.6.1,<0.7.0

执行 uv sync 时依赖解析无法收敛,报出无解错误,导致这两个包无法同时升级到目标版本。LlamaIndex 版本为 0.14.20。

报错原文

[Bug]: llama-index-embeddings-azure-openai 0.6.0 is still dependent on llama-index-llms-azure-openai>=0.4.0,<0.6

uv sync
error: No solution found when resolving dependencies for split (markers: python_full_version >= '3.13' and python_full_version < '4.0')
  cause: Because llama-index-embeddings-azure-openai>=0.6.0 depends on llama-index-llms-azure-openai>=0.4.0,<0.6 and your project depends on llama-index-embeddings-azure-openai>=0.6.0, we can conclude that your project depends on llama-index-llms-azure-openai>=0.4.0,<0.6.

原因分析

这是典型的“上游包升版后,下游包的依赖上限没有同步放宽”导致的版本冲突。

具体来说:llama-index-embeddings-azure-openai 对 llama-index-llms-azure-openai 的依赖上限一直停留在 <0.6。这个上限此前从 >=0.4.0,<0.5 放宽到 >=0.4.0,<0.6,在 llama-index-llms-azure-openai 还处于 0.5.x/0.6.0 线时是够用的。但随后 llama-index-llms-azure-openai 被升到 0.6.1(用于支持新的 GPT-6 模型),而 embeddings 包的上限没有跟着抬升,于是 llama-index-llms-azure-openai>=0.6.1 与该上限 <0.6 直接互斥。

Issue 中提到了同类先例:此前 llama-index-llms-openai-like 也曾因同样原因阻塞 llama-index-llms-openai 0.8.x,而 llama-index-llms-cerebras 以及若干集成包通过批量 vbump PR 修复过同类问题。因此这里的根因是依赖声明未同步,而非环境或代码问题。

环境排查

  • 确认 llama-index-embeddings-azure-openai 的版本:是否为 0.6.0。
  • 确认 llama-index-llms-azure-openai 的目标版本:是否为 0.6.1。
  • 查看 llama-index-embeddings-azure-openai 的 pyproject.toml,确认对 llama-index-llms-azure-openai 的约束是否仍为 >=0.4.0,<0.6。
  • 确认使用的依赖解析工具为 uv,并注意报错中的 split 标记为 python_full_version >= '3.13' and python_full_version < '4.0'。
  • Issue 未提供操作系统、CUDA、显卡信息,这些在本问题中不影响判断。

解决步骤

  1. 在上游修复发布前,可优先尝试把 llama-index-llms-azure-openai 的约束暂时回退到 >=0.4.0,<0.6,使其与 llama-index-embeddings-azure-openai 0.6.0 的上限兼容,再执行 uv sync。
  2. 如果你能修改本地源码或使用可编辑安装,可把 llama-index-embeddings-azure-openai 的 pyproject.toml 中 llama-index-llms-azure-openai 的上限由 <0.6 放宽为 <0.7(或更高),以匹配 Issue 中给出的上游修复方向。
  3. 向上游仓库提交或关注对应修复:放宽该依赖上限并发布新的 embeddings 版本,从而允许 llama-index-llms-azure-openai>=0.6.1 与 embeddings 0.6.x 同时共存。
  4. 待官方发布放宽上限的新版本后,把两个包一起升级到目标约束并重新执行 uv sync。

验证方法

重新执行 uv sync,若不再出现 No solution found when resolving dependencies 且依赖解析成功,说明版本约束已兼容。若采用回退方案,可检查解析结果中 llama-index-llms-azure-openai 的版本是否落在 >=0.4.0,<0.6 范围内;若采用放宽上限的新版本,则应能解析出 llama-index-llms-azure-openai>=0.6.1。

参考来源

run-llama/llama_index #23325

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 26833

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注