如何读懂 Fara1.5-9B-OptiQ-4bit 的 Chat Template:Jinja 模板如何实现工具调用与思考模式
人工智能大模型基础模型本地部署多模态计算机视觉AI Agent【免费下载链接】Fara1.5-9B-OptiQ-4bit项目地址https://ai.gitcode.com/hf_mirrors/mlx-community/Fara1.5-9B-OptiQ-4bit点击查看免费下载Fara1.5-9B-OptiQ-4bit是微软开源的计算机使用computer-use视觉智能体模型 Fara1.5-9B 的 MLX 混合精度量化版本专为 Apple Silicon 本地推理打造。很多人下载模型后都会问一个问题模型的说话格式到底是怎么定的答案就在仓库根目录的 chat_template.jinja 里。这份 Jinja 模板同时负责两件事工具调用Function Calling的消息拼装与思考模式Thinking Mode的开关控制是理解这个模型行为的关键钥匙。Chat Template 是什么模型格式的翻译官大模型本身只认识 token 序列。你在 API 里发的messages数组system / user / assistant / tool 多轮对话必须经过一层翻译才能变成模型训练时见过的文本格式——这层翻译就是Chat Template。在 Fara1.5-9B-OptiQ-4bit 仓库中相关文件的分工如下文件作用chat_template.jinjaJinja 模板定义消息拼装规则本文主角tokenizer_config.json特殊 token、分词器参数Qwen2Tokenizer、工具解析器类型等config.json模型架构与 4/8-bit 混合量化配置generation_config.json生成参数如eos_token_id: 248044optiq_metadata.jsonOptiQ 量化元数据目标 5.0 bpw实测 5.21 bpw几个值得注意的模板变量messages对话消息列表缺失时模板会直接抛出No messages provided.异常tools可选的工具函数Schema 列表决定是否注入工具系统提示add_generation_prompt是否在末尾追加assistant生成提示enable_thinking思考模式总开关取值true/false。视觉占位符一张图片如何变成文字Fara1.5 是视觉语言模型用户消息里可以混排文本和图片。模板顶部的render_content宏chat_template.jinja负责把多模态 content 渲染成纯文本遇到图片项 → 输出特殊 tokenimage可选前缀Picture N:由add_vision_id控制遇到视频项 → 输出video特殊 tokensystem 消息里出现图片/视频会被直接拒绝System message cannot contain images.这是防注入的硬约束图片和视频各有独立计数器image_count/video_count多张图时编号不混乱。对应的 token 定义在 tokenizer_config.json 中image_token为imagevideo_token为video视觉边界 token 为vision_bos_token/vision_eos_token。处理器Qwen3VLProcessor则负责把真实图片切块并与这些占位符对齐像素范围由min_pixels: 3136与max_pixels: 12845056约束。 换句话说图片在模型眼里就是一串image占位符真正的像素信息走视觉塔vision tower而它在本仓库中以 bf16 精度单独存放在 optiq/optiq_vision.safetensors——这也是同一个仓库既能纯文本跑、又能图文跑的原因。工具调用第一步tools 如何注入 system 消息当请求里带tools参数时模板会在最前面生成一个特殊的 system 块chat_template.jinja以# Tools开头声明你有以下函数可用用tools标签包裹全部工具每个工具用tojson序列化为一行 JSON即标准 OpenAI Function Calling 的 Schema 格式附上一段格式铁律调用函数只能输出function_call包裹的function...嵌套结构必填参数必须给出推理说明要放在调用之前而非之后如果消息列表第一条本来就是 system 消息用户自写的 system 内容会被追加到这段工具说明之后用空行分隔而不是被覆盖。不带tools时走 else 分支chat_template.jinja只输出system块如果存在干净利落。多步工具链的哨兵last_query_index这是整份模板里最精妙的机制。看一段核心逻辑chat_template.jinjans namespace(multi_step_tooltrue, last_query_index消息总数 - 1) 从最后一条消息向前扫描 若遇到 user 消息且其内容【不是】tool_response 包裹 → multi_step_tool false记录 last_query_index它的目的判断当前是否处于工具返回结果、等待模型继续的多步调用中间态。如果最后一条 user 消息只是tool_response回传说明真正的人类提问在更早的某处——这个位置就是last_query_index若全程都找不到一条真正的用户提问模板会抛出No user query found in messages.防止拼出一段无主的对话这个索引后面还会决定一件事思考块只出现在最后一轮真实用户提问之后的 assistant 消息中见下文。三种角色消息如何被拼装拿到上述铺垫后模板按顺序遍历messages对每个角色执行不同规则chat_template.jinjauser 消息最直接的包装user 这里是用户内容含 image 占位符tool 消息归并到 user 块工具结果不独立成块而是复用 user 角色chat_template.jinja连续的多个 tool 结果会合并进同一个 user 块每个结果各自包在tool_response标签里只有当下一条不是 tool 消息、或已到消息末尾时才补上闭合标签与换行这套合并 延迟闭合设计正是多步工具链能保持格式稳定的原因。assistant 消息思考块 工具调用的主战场assistant 分支chat_template.jinja做三件事① 拆分思考内容。如果消息带独立的reasoning_content字段优先使用它否则尝试从正文里按/think拆分出思考部分避免重复。② 决定是否渲染思考块。只有当该消息位置晚于last_query_index即属于最后一轮真实提问之后的回复时才渲染完整的think结构assistant think 推理过程 正文历史轮次的 assistant 消息则只输出正文不保留思考块——这让训练时的只在末轮思考的约定得以贯彻。③ 拼装 function_call。如果消息带tool_calls逐个函数渲染成嵌套结构chat_template.jinjafunction_call functionget_weather parametercity 北京 function_call细节考究之处参数是字典或列表时用tojson序列化普通字符串原样输出第一个调用若前面已有正文会多补一个空行分隔多个并行工具调用之间用独立标签串联。思考模式的开关enable_thinking 参数模板的最后一段chat_template.jinja决定了模型接下来往哪里写场景末尾追加内容效果未开add_generation_prompt无纯补全模式enable_thinking falsethink空思考块模型直接进正文开启或未指定默认think模型先输出推理过程再给答案这就是 Qwen3 系列标志性的推理开关调用方只需在参数里传一个布尔值模型就会在边想边答和直接作答两种模式间切换无需改动提示词。配套地tokenizer_config.json 中声明了tool_parser_type: qwen3_coder即框架侧用同一套 qwen3_coder 解析器把function_call标签反向解析回结构化的tool_calls——模板写、解析器读形成闭环。完整输出示例一条消息经过模板之后假设带有一个get_weather工具最后一轮用户提问后请求生成模板拼出的大致结构是system Tools 你有以下函数可用 tools {type: function, function: {name: get_weather, ...}} tools 调用格式铁律…… 你是 Fara一个计算机使用智能体…… system user 帮我查一下北京天气 user assistant think 用户想查北京天气应调用 get_weather…… function_call functionget_weather parametercity 北京 function_call若工具结果返回则追加一轮归并到 user 块并以think结尾等待模型续写——整个多步链路由此循环。写在最后模板与量化的分工把视角拉回整个仓库模板层chat_template.jinja决定模型怎么说话——多模态占位、工具协议、思考协议全部在此编码权重层约 89.5 亿参数的 Qwen3_5 架构config.json 中architectures: Qwen3_5ForConditionalGeneration经 OptiQ 混合 4/8-bit 量化到 5.21 bits/weight磁盘约 7.5G视觉塔保持 bf16运行层一条命令optiq serve --model mlx-community/Fara1.5-9B-OptiQ-4bit即可在 Apple Silicon 上起 OpenAI 兼容端点model_max_length高达 262144 token长对话与截图序列都从容应对。读懂这份 Jinja 模板你就握住了与 Fara1.5 对话的底层语法工具调用为何如此规整、思考模式为何能一键开关、多步 Agent 链为何不会乱——答案都在这 154 行里。延伸阅读README.md 中列出了模型标签computer-use / web-agent / agent与支持该仓库的加载器说明值得一并查阅。赞分享人工智能大模型基础模型本地部署多模态计算机视觉AI Agent【免费下载链接】Fara1.5-9B-OptiQ-4bit项目地址https://ai.gitcode.com/hf_mirrors/mlx-community/Fara1.5-9B-OptiQ-4bit点击查看免费下载相关推荐如何开关模型大脑XYZ-Aquila-mini-OptiQ-4bit 的 :think 与 :no-think 思考模式完全控制指南如何开关模型大脑XYZ Aquila mini OptiQ 4bit 的 :think 与 :no think 思考模式完全控制指南 XYZ Aquila m深入剖析Fara1.5-9B-OptiQ-4bit的4/8-bit混合精度量化5.21 bits/weight如何平衡质量与体积深入剖析Fara1.5 9B OptiQ 4bit的4/8 bit混合精度量化5.21 bits/weight如何平衡质量与体积 Fara1.5 9B Opt人工智能大模型基础模型本地部署多模态计算机视觉AI AgentVision塔为何单独保留bf16Fara1.5-27B-OptiQ-4bit双加载模式架构设计剖析Vision塔为何单独保留bf16Fara1.5 27B OptiQ 4bit双加载模式架构设计剖析 Fara1.5 27B OptiQ 4bit 是一个基于人工智能大模型基础模型多模态计算机视觉AI Agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

security-audit-skill 拆解:让 Agent 稳定执行安全审计的技能包设计

security-audit-skill 拆解:让 Agent 稳定执行安全审计的技能包设计

1. 从零拆解 security-audit-skill:一个让 Agent 真正会做安全审计的技能包第一次看到security-audit-skill这个标题,我脑子里蹦出来的不是“又一个安全扫描脚本”,而是一个更具体的问题:怎么让一个通用 Agent 在拿到一份代码仓库…

2026/10/17 22:14:16 阅读更多 →
智能名片个人版V8.4.2整站源码:前后端部署与小程序对接指南

智能名片个人版V8.4.2整站源码:前后端部署与小程序对接指南

简介:一份面向毕业设计及小程序开发者的整站商业源码,基于龙兵平台智能名片个人版V8.4.2,包含小程序前端与配套网站后台,可解决智能名片展示、分享、数据反馈等场景的快速搭建问题。压缩包内共2000个文件,以358个php后…

2026/10/17 22:13:15 阅读更多 →
人机Agent团队协同:从Managed Agents原理到Multica实践——TaoToken统一Key接入与Daemon自托管验证

人机Agent团队协同:从Managed Agents原理到Multica实践——TaoToken统一Key接入与Daemon自托管验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 22:13:15 阅读更多 →

最新新闻

2026最新GPT-5.5深度评测:Agent架构解析与API选型

2026最新GPT-5.5深度评测:Agent架构解析与API选型

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 23:03:58 阅读更多 →
Oracle Procedure 返回数据集:TaoToken 场景下的 Ref Cursor 与临时表选型小结

Oracle Procedure 返回数据集:TaoToken 场景下的 Ref Cursor 与临时表选型小结

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 23:03:58 阅读更多 →
2026就业新赛道:一人如何利用AI智能体制作漫剧?五大主流工具深度测评与TaoToken统一接入实践

2026就业新赛道:一人如何利用AI智能体制作漫剧?五大主流工具深度测评与TaoToken统一接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 23:03:58 阅读更多 →
openclaw工作区workspace文件配置与管理完全指南:从目录结构到TaoToken统一Key接入

openclaw工作区workspace文件配置与管理完全指南:从目录结构到TaoToken统一Key接入

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 23:03:58 阅读更多 →
爱马仕hermas agent部署选型指南:Docker与VPS方案对比及TaoToken接入实践

爱马仕hermas agent部署选型指南:Docker与VPS方案对比及TaoToken接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 23:03:58 阅读更多 →
Agent安全审计实战:security-audit-skill技能包设计与findings.json解析

Agent安全审计实战:security-audit-skill技能包设计与findings.json解析

1. 从零拆解 security-audit-skill:一个让 Agent 真正会做安全审计的技能包第一次看到security-audit-skill这个标题,我脑子里蹦出来的不是“又一个安全扫描脚本”,而是一个更具体的问题:怎么让一个通用 Agent 在拿到一份代码仓库…

2026/10/17 23:02:58 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →