本地 Claude Code Gemma 4 12B 报错修复记录问题现象在本地部署 Claude Code通过cc switch中转连接 LM Studio 运行的gemma-4-12b-it-ud模型时API 请求直接报错{error:{message:Error rendering prompt with jinja template: Cannot call something that is not afunction:got UndefinedValue,type:internal_error}}LM Studio 的 GUI 聊天界面正常唯独 API 调用Claude Code / cc switch会触发。环境链路Claude Code → cc switch → LM Studio (v0.4.16) → gemma-4-12b-it-ud根本原因LM Studio 0.4.16 内置的 Gemma 4 提示词模板中到处调用了format_type_argument宏但从未定义它。当通过 API 发送请求尤其是带tools参数时Jinja 模板引擎执行到未定义的宏直接抛出UndefinedValue错误。这是 LM Studio 的已知 BugGUI 聊天和 API 路径的模板渲染逻辑不同所以只有 API 调用会中招。解决方案第一步进入模型设置在 LM Studio 的Local Server页面 →Loaded Models中找到gemma-4-12b-it-ud→ 点击右侧⚙️ 齿轮图标进入Model Settings。第二步覆盖 Prompt Template找到Prompt Template区域将下拉选项从Default改为Override。第三步插入缺失的宏关键在模板文本框的最顶部第一个format_parameters宏之前手动输入以下 3 行{%- macro format_type_argument(type_arg) -%} {{- type_arg if type_arg is string else format_argument(type_arg) -}} {%- endmacro -%}注意只加这 3 行其余模板内容完全不要动不要用富文本编辑器粘贴避免引入不可见字符确保{%-和-%}的减号位置正确插入后模板顶部结构应为{%- macro format_type_argument(type_arg) -%} {{- type_arg if type_arg is string else format_argument(type_arg) -}} {%- endmacro -%} {%- macro format_parameters(properties, required, filter_keysfalse) -%} ...原有内容保持不变第四步保存并生效点击Save→ 回到 Local Server →Eject模型再重新Load Model或点击刷新。验证修复用 curl 直接测试 LM Studio APIcurlhttp://localhost:1234/v1/chat/completions\-HContent-Type: application/json\-d{ model: gemma-4-12b-it-ud, messages: [{role: user, content: Hello}] }如果返回正常文本而非UndefinedValueClaude Code 和 cc switch 就能正常工作了。避坑提醒坑点说明不要全量替换模板网上复制的完整模板版本可能包含格式错误导致Parser Error: CloseStatement ! CloseExpression。只插入缺失的 3 行宏是最安全的做法。cc switch 配置确保指向 LM Studio 的 OpenAI 兼容端点http://localhost:1234/v1而非 Anthropic 原生格式。社区版模型如果不想手动修模板可从lmstudio-community重新下载同名模型通常已修复此问题。一句话总结LM Studio 0.4.16 的 Gemma 4 模板缺了个宏定义在模板最顶部补上format_type_argument宏即可解决其余内容不要动。
本地 Claude Code + Gemma 4 12B 报错修复记录
本地 Claude Code Gemma 4 12B 报错修复记录问题现象在本地部署 Claude Code通过cc switch中转连接 LM Studio 运行的gemma-4-12b-it-ud模型时API 请求直接报错{error:{message:Error rendering prompt with jinja template: Cannot call something that is not afunction:got UndefinedValue,type:internal_error}}LM Studio 的 GUI 聊天界面正常唯独 API 调用Claude Code / cc switch会触发。环境链路Claude Code → cc switch → LM Studio (v0.4.16) → gemma-4-12b-it-ud根本原因LM Studio 0.4.16 内置的 Gemma 4 提示词模板中到处调用了format_type_argument宏但从未定义它。当通过 API 发送请求尤其是带tools参数时Jinja 模板引擎执行到未定义的宏直接抛出UndefinedValue错误。这是 LM Studio 的已知 BugGUI 聊天和 API 路径的模板渲染逻辑不同所以只有 API 调用会中招。解决方案第一步进入模型设置在 LM Studio 的Local Server页面 →Loaded Models中找到gemma-4-12b-it-ud→ 点击右侧⚙️ 齿轮图标进入Model Settings。第二步覆盖 Prompt Template找到Prompt Template区域将下拉选项从Default改为Override。第三步插入缺失的宏关键在模板文本框的最顶部第一个format_parameters宏之前手动输入以下 3 行{%- macro format_type_argument(type_arg) -%} {{- type_arg if type_arg is string else format_argument(type_arg) -}} {%- endmacro -%}注意只加这 3 行其余模板内容完全不要动不要用富文本编辑器粘贴避免引入不可见字符确保{%-和-%}的减号位置正确插入后模板顶部结构应为{%- macro format_type_argument(type_arg) -%} {{- type_arg if type_arg is string else format_argument(type_arg) -}} {%- endmacro -%} {%- macro format_parameters(properties, required, filter_keysfalse) -%} ...原有内容保持不变第四步保存并生效点击Save→ 回到 Local Server →Eject模型再重新Load Model或点击刷新。验证修复用 curl 直接测试 LM Studio APIcurlhttp://localhost:1234/v1/chat/completions\-HContent-Type: application/json\-d{ model: gemma-4-12b-it-ud, messages: [{role: user, content: Hello}] }如果返回正常文本而非UndefinedValueClaude Code 和 cc switch 就能正常工作了。避坑提醒坑点说明不要全量替换模板网上复制的完整模板版本可能包含格式错误导致Parser Error: CloseStatement ! CloseExpression。只插入缺失的 3 行宏是最安全的做法。cc switch 配置确保指向 LM Studio 的 OpenAI 兼容端点http://localhost:1234/v1而非 Anthropic 原生格式。社区版模型如果不想手动修模板可从lmstudio-community重新下载同名模型通常已修复此问题。一句话总结LM Studio 0.4.16 的 Gemma 4 模板缺了个宏定义在模板最顶部补上format_type_argument宏即可解决其余内容不要动。