Skip to content

Fix a error about KeyError.#1

Open
crazyss wants to merge 1 commit intomainfrom
crazyss-patch-1
Open

Fix a error about KeyError.#1
crazyss wants to merge 1 commit intomainfrom
crazyss-patch-1

Conversation

@crazyss
Copy link
Owner

@crazyss crazyss commented Aug 14, 2025

Fix KeyError 'model' in message_parser.py

In my macbook, I encountered this issue during try quicky_start.py .

.venv/lib/python3.13/site-packages/claude_code_sdk/_internal/message_parser.py", line 112, in parse_message
         content=content_blocks, model=data["message"]["model"]
                                       ~~~~~~~~~~~~~~~^^^^^^^^^
     KeyError: 'model'

Fix a error about KeyError.
@crazyss
Copy link
Owner Author

crazyss commented Nov 28, 2025

@QoderAI Help me!

@crazyss
Copy link
Owner Author

crazyss commented Nov 28, 2025

@qoder Help me!

@qoderai
Copy link

qoderai bot commented Nov 28, 2025

我已查看 PR 详情与变更。发现修改将 data["message"]["model"] 改为 data["message"].get("model"),以避免 KeyError。

风险与建议:

  • 类型约束:types.py:92AssistantMessage.model 为必填 str。若 .get("model") 返回 None,会破坏类型假设,导致后续代码出错。
  • 更稳妥做法:在解析时显式校验并给出更清晰错误或回退到选项中的 model(如 ClaudeCodeOptions.model)。

建议的修复方案二选一:

  1. 保持必填,显式错误:在 assistant 分支先 model = data["message"].get("model"),若缺失则抛出 MessageParseError("Assistant message missing 'model'");否则再构造 AssistantMessage
  2. 提供回退:model = data["message"].get("model") or data.get("options", {}).get("model"),若仍无则抛错。

需要我为该 PR开一个补充修复的 Draft PR 吗?我可以按方案1实现严格校验,或按方案2实现容错。🛠️


🤖 Generated by QoderView workflow run

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.

1 participant