fix: flatten assistant content for openai payload #4497
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
修复 openai 兼容提供商在 assistant content 为数组时导致的上下文丢失问题(下游 OpenAI→Gemini 转换会忽略数组内容,导致复读)。
Modifications / 改动点
This is NOT a breaking change. / 这不是一个破坏性变更。
在
astrbot/core/provider/sources/openai_source.py的_finally_convert_payload中,当 assistant 的 content 为 list 且仅包含 text(剔除 think 后)时,合并为 string;
若存在非 text 内容,则保留 list(多模态兼容)。
Screenshots or Test Results / 运行截图或测试结果
复现步骤(修复前):
修复后:assistant 历史保留,B/C 不再复读。
Checklist / 检查清单
requirements.txt和pyproject.toml文件相应位置。/ I have ensured that no new dependencies are introduced, OR if new dependencies are introduced, they have been added to the appropriate locations inrequirements.txtandpyproject.toml.Summary by Sourcery
错误修复:
Original summary in English
Summary by Sourcery
Bug Fixes: