Skip to content

Bug Fix:Gemini 幻覺工具名導致 JsonParseException — 容錯處理 #2

Description

@samzhu

Bug Fix:Gemini 幻覺工具名導致 JsonParseException — 容錯處理

問題根因

Gemini 模型有時會幻覺出不存在的工具名(如 project_structure),Spring AI 的 GoogleGenAiChatModel.parseJsonToMap() 在下一輪對話時,嘗試解析ToolResponse.responseData,卻收到純文字字串(非合法 JSON),導致 JsonParseException 崩潰。

修改內容

檔案:backend/src/main/java/com/interview/ai/application/AiChatService.java

位置 修改前 修改後
unknown tool 回應 "Error: unknown tool '...'" {"error":"unknown tool '...'. Available tools: ..."}
null callResult "" {"result":"ok"}

上游追蹤

項目 連結 狀態
Issue spring-ai #5437 Open
PR Fix spring-ai #5438 尚未合併

未來需回頭處理

當 spring-ai PR #5438 合併且專案升級對應版本後:

  1. 移除 AiChatService.java 中兩處標有 // TODO: remove this workaround after spring-ai PR #5438 is merged 的 workaround
  2. unknown tool 回應可改回純文字(或直接讓上游 library 處理)
  3. null callResult fallback 可改回 "" 或依上游行為調整

追蹤方式:定期確認 PR #5438 狀態,或在升級 spring-ai 版本時同步確認。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions