Bug: test_stream_error_callback fails due to a bug in the testing code

在运行 LangChain 核心库单元测试时, test_stream_error_callback 会失败,并显示 Bug: test_stream_error_callback fails due to a bug in the testing code 。优先排查测试代码中的断言: llm_r

快速结论:在运行 LangChain 核心库单元测试时,test_stream_error_callback 会失败,并显示 Bug: test_stream_error_callback fails due to a bug in the testing code。优先排查测试代码中的断言:llm_result.generations 的结构是 list-of-lists,空生成结果应为 [[]] 而不是 []

适用环境:根据 Issue 中报告的环境:macOS Darwin、Python 3.14.3、langchain_core 1.4.9、langsmith 0.8.18、langchain_protocol 0.0.17、langchain_tests 1.1.9。该问题属于 langchain-core 包内的测试代码问题,与具体模型集成无关。

最快修复方案:编辑 libs/core/tests/unit_tests/language_models/chat_models/test_base.py,移除 test_stream_error_callback 上的 @pytest.mark.xfail 装饰器,并将 i == 0 分支的断言从 assert llm_result.generations == [] 改为 assert llm_result.generations == [[]]

注意事项:这是测试代码自身的正确性修复,不需要修改 LangChain 生产代码。Issue 讨论中多位贡献者验证该修复可让测试通过,但 Issue 最终被标记为与 #36866 重复,没有明确指出已合入主分支;如果官方正式补丁与此不同,请以官方合入结果为准。

问题场景

该问题出现在开发者运行 LangChain 核心库的单元测试时。具体命令为:

pytest libs/core/tests/unit_tests/language_models/chat_models/test_base.py::test_stream_error_callback

该测试用于验证当流式生成在某个 chunk 索引处出错时,LLMResult 中的 generations 是否正确。由于测试断言本身写错,测试被标记为 xfail 后仍处于失败状态,导致测试套件无法正常通过。

报错原文

Bug: test_stream_error_callback fails due to a bug in the testing code

# 实际触发失败的核心断言
assert llm_result.generations == []   # 当 i == 0 时

# 期望结果
llm_result.generations 实际为 [[]]

原因分析

可能原因:LLMResult.generations 的类型是 list[list[Generation]],外层列表对应每个 prompt,内层列表对应每个候选生成结果。在 i == 0 分支(即第一个 chunk 就抛出错误)时,没有产生任何 generation,但因为只有一个 prompt,返回值是 [[]] 而不是 []。原测试断言写成 == []

参考来源

langchain-ai/langchain #38904

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18303

发表回复

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