Skip to content

fix: 合并非流式 Gemini 响应的相邻片段并规范 thoughtSignature 附着 (#38) - #39

Closed
ha7v wants to merge 1 commit into
Mag1cFall:mainfrom
ha7v:main
Closed

ha7v wants to merge 1 commit into
Mag1cFall:mainfrom
ha7v:main

Conversation

@ha7v

@ha7v ha7v commented Sep 30, 2026

Copy link
Copy Markdown

Fixes #38

改动说明

  1. 合并相邻片段:在 internal/api/gemini.go 的 geminiOutputParts 中,连续的 EventText 合并为单个完整文本 Part,连续的 EventReasoning 合并为单个完整思考 Part,避免非流式响应被按流式 chunk 切碎。
  2. 规范签名附着:将 thoughtSignature 作为属性直接附着在对应的思考 Part 或工具调用 Part 上,消除多余且无文本的独立签名 Part。若遇到无后续 Part 的边缘情况,保留兜底。
  3. 单测覆盖:在 internal/api/gemini_output_test.go 中补充 5 组针对合并、签名附着及 fallback 的测试用例,所有测试均通过。

本地实测问题得到缓解

- 在非流式响应中合并相邻的文本片段与思考片段,避免响应被切碎
- 将 thoughtSignature 直接附着到对应 Part,消除多余的独立空签名 Part
- 补充 geminiOutputParts 单元测试覆盖合并、思考签名附着及回退场景
@ha7v

ha7v commented Sep 30, 2026

Copy link
Copy Markdown
Author

使用 gemini3.8f

@ha7v ha7v closed this Sep 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] 非流式 Gemini 接口返回的 parts 碎片化且包含无文本的独立 thoughtSignature

2 participants