首页/新闻资讯/正文详情

PowerInfer 中 {fmt} 格式字符串语法全解析:从 replacement field 到 chrono 与 ranges

发布时间:2026/9/25 4:29:30 来源:云帆数科 栏目:资讯中心
PowerInfer 中 {fmt} 格式字符串语法全解析:从 replacement field 到 chrono 与 ranges
人工智能大模型推理引擎本地部署【免费下载链接】PowerInferHigh-speed Large Language Model Serving for Local Deployment项目地址https://gitcode.com/gh_mirrors/po/PowerInfer点击查看免费下载本篇文章以 PowerInfer 仓库中捆绑的 {fmt} 官方文档 syntax.md 为主体系统讲解 {fmt} 的格式字符串语法Format String Syntax包括 replacement field 的构成、格式规范迷你语言Format Specification Mini-Language、Chrono 时间格式规范与 Range 容器格式规范并结合 PowerInfer 的 libaz 源码如 random_memtest.cpp、perfetto_trace.cpp、assert.hpp给出真实使用佐证。读完本文你将能写出从{}、{:08x}到{:%Y-%m-%d}、{::#x}的任意复杂格式串并能读懂 PowerInfer 源码中所有日志与诊断输出的格式化逻辑。一、{fmt} 在 PowerInfer/libaz 中的角色PowerInfer 是面向本地部署的高速大语言模型推理引擎其核心调度与计算组件位于smallthinker/powerinfer/libaz/。libaz 将 {fmt} 以external/fmt子目录方式内嵌版本为 11.2.0见 fmt/base.h 中FMT_VERSION 110200并在整个代码库中大量使用其格式化 API 完成日志、断言与性能统计输出。与printf不同{fmt} 的格式化函数如fmt::format、fmt::print、fmt::println共用同一套格式字符串语法——这正是 syntax.md 所描述的核心内容。理解这套语法是阅读与修改 PowerInfer/libaz 代码的基础能力之一。例如libaz 的向量点积基准工具 random_memtest.cpp 中一行fmt::println(Weight data size: {:.3f} GiB, weight_size / 1024.0 / 1024 / 1024)第 46 行就同时用到了 replacement field{}、精度说明:.3f与多个参数。第 106 行fmt::println(#thread{}, count{}, {:.3} TOPS, n_threads, current_count, tops)则演示了混合数字、整数与浮点精度控制。而 perfetto_trace.cpp 中的fmt::println(Saving Perfetto trace data to {:?}..., trace_path)用到了字符串的 debug 格式{:?}。二、格式字符串基础replacement field 与花括号转义格式字符串由两类内容构成replacement field替换字段由花括号{}包围是会被替换为实际参数值的部分字面文本literal text花括号之外的所有字符原样复制到输出中。如果需要把花括号本身作为字面字符输出必须成对转义{{输出为{}}输出为}。replacement field 的完整文法syntax.md 中 replacement-field 定义replacement_field :: { [arg_id] [: (format_spec | chrono_format_spec)] } arg_id :: integer | identifier integer :: digit identifier :: id_start id_continue* id_start :: a...z | A...Z | _ id_continue :: id_start | digit通俗解释arg_id参数标识指定要格式化并插入输出中的参数。它可以是数字索引也可以是命名标识符format_spec格式规范由冒号:引导用于指定非默认的展示方式宽度、对齐、填充、精度、进制等。每种值类型可以定义自己的格式化迷你语言省略规则如果格式串中的数字 arg_id 恰好按0, 1, 2, ...顺序出现那么可以也必须全部省略运行时按顺序自动补上编号。注意不能只省略其中一部分嵌套替换字段format_spec 的某些位置宽度、精度允许嵌入只含 arg_id 的嵌套替换字段{}从而实现动态规格但嵌套字段中不能再包含:与格式规范。几个最简单的例子First, thou shalt count to {0} // 引用第一个参数索引 0 Bring me a {} // 隐式引用第一个参数 From {} to {} // 等价于 From {0} to {1}三、格式规范迷你语言Format Specification Mini-Language大多数内建类型支持一套通用的标准格式说明符其一般形式为format_spec :: [[fill]align][sign][#][0][width][. precision][L][type] fill :: 除 { 或 } 之外的任意字符 align :: | | ^ sign :: | - | width :: integer | { [arg_id] } precision :: integer | { [arg_id] } type :: a | A | b | B | c | d | e | E | f | F | g | G | o | p | s | x | X | ?下面逐项拆解各组成元素的作用与约束。3.1 填充与对齐fill / alignfill可以是除{、}之外的任意 Unicode 码点。fill 的存在与否由紧随其后的字符是否为合法对齐选项来判定如果 format_spec 的第二个字符不是合法的对齐选项、、^则默认 fill 与 align 都不存在。对齐选项含义在可用空间内左对齐大多数对象类型的默认值在可用空间内右对齐数字类型的默认值^在可用空间内居中对齐注意没有指定最小宽度时字段宽度恒等于数据本身的宽度对齐选项不产生任何效果。3.2 符号signsign仅对浮点数和有符号整数有效选项含义正数与负数都显式输出符号-仅负数输出负号默认行为空格非负数前加一个前导空格负数前加负号3.3 备选形式##选项启用备选形式alternate form仅对整数和浮点类型有效整数当使用二进制、八进制或十六进制输出时分别加上前缀0b/0B、0、0x/0X。前缀大小写由 type 的大小写决定x用0xX用0X浮点数结果中总是保留小数点字符即使其后没有数字对于g/G转换尾部零不会被移除。3.4 零填充0在 width 之前出现0时为数字类型启用感知符号的零填充填充被放到符号或基数前缀之后、数字之前用于输出000000120这类形式。该选项仅对数字类型有效对 infinity 与 NaN 无效且当存在任何对齐说明符时被忽略。3.5 宽度与精度width / precisionwidth是最小字段宽度的十进制整数未指定时字段宽度由内容决定。{:{}}中的嵌套字段可让宽度由参数动态给出precision是一个十进制数对f/F浮点格式表示小数点后显示的位数对g/G表示小数点的前后有效位数对非数字类型则表示最大字段大小即从字段内容中取多少个字符。precision不允许用于整数、字符、布尔和指针值注意即使指定了 precisionC 字符串仍然必须以空字符\0结尾。3.6 本地化分组LL选项使用当前 locale 设置插入相应的数字分组分隔符如千位分隔符仅对数字类型有效。使用方式参见 Format Examples 中的 comma 示例。3.7 展示类型typetype决定数据的呈现方式不同类型有不同的可用集合详见下一节。四、各类型的展示类型presentation type4.1 字符串展示类型类型含义s字符串格式字符串的默认类型可省略?Debug 格式字符串加引号且转义特殊字符无与s相同4.2 字符展示类型类型含义c字符格式字符的默认类型可省略?Debug 格式字符加引号并转义特殊字符无与c相同4.3 整数展示类型整数展示类型也可用于字符与布尔值唯一例外c不能与bool连用。未指定展示类型时布尔值按文本true/false输出。类型含义b二进制基 2。配#加前缀0bB二进制基 2。配#加前缀0Bc字符格式把数字当作字符输出d十进制整数基 10o八进制基 8x十六进制基 169 以上的数字用小写字母配#加前缀0xX十六进制基 169 以上的数字用大写字母配#加前缀0X无与d相同4.4 浮点展示类型类型含义a十六进制浮点格式基 16前缀0x用小写字母用p表示指数A同a但前缀、9 以上数字与指数指示均用大写e指数记法科学计数法用小写e表示指数E同e用大写E作为分隔字符f定点格式F同f但把nan转成NAN、inf转成INFg通用格式对给定精度p 1把数字舍入到p位有效数字再依据数值大小在定点与科学记数法之间选择精度0等价于精度1G同g但数字过大时切换到E且 infinity 与 NaN 表示大写无类似于g但默认精度取到足以表示该特定值4.5 指针展示类型类型含义p指针格式指针的默认类型可省略无与p相同五、Chrono 格式规范时间与时长格式化std::chrono::duration、时间点类型以及std::tm使用专门的 chrono 格式规范语法为chrono_format_spec :: [[fill]align][width][. precision][chrono_specs] chrono_specs :: conversion_spec | chrono_specs (conversion_spec | literal_char) conversion_spec :: % [padding_modifier] [locale_modifier] chrono_type literal_char :: 除 {、}、% 之外的字符 padding_modifier :: - | _ | 0 locale_modifier :: E | O字面字符原样复制到输出precision仅对表示类型为浮点数的std::chrono::duration有效。chrono_type的完整取值及含义类型含义a缩写的星期名如 Sat值不含合法星期时抛format_errorA完整的星期名如 Saturday同上b缩写的月份名如 Nov值不含合法月份时抛format_errorB完整的月份名如 November同上c日期与时间表示如 Sat Nov 12 22:04:00 1955%Ec产生 locale 的备选表示C年除以 100向下取整如 19单数字时补 0%EC为备选世纪表示d月份中的日十进制单数字补 0%Od为 locale 备选表示D等价于%m/%d/%y如 11/12/55e月份中的日十进制单数字前补空格%Oe为 locale 备选表示F等价于%Y-%m-%d如 1955-11-12gISO 基于周的年份的最后两位十进制数字单数字补 0GISO 基于周的年份十进制不足四位左补 0 至四位h等价于%b如 NovH24 小时制小时十进制单数字补 0%OH为 locale 备选表示I12 小时制小时十进制单数字补 0%OI为 locale 备选表示j若被格式化类型是 duration 特化则为不带填充的天数否则为一年中的第几天Jan 1 为 001不足三位左补 0m月份十进制Jan 为 01单数字补 0%Om为 locale 备选表示M分钟十进制单数字补 0%OM为 locale 备选表示n换行字符p12 小时制时钟对应的 AM/PM 标识qduration 的单位后缀Qduration 的数值等价于.count()提取r12 小时制时间如 10:04:00 PMR等价于%H:%M如 22:04S秒十进制小于 10 补 0若输入的精度无法用秒精确表示则以定点十进制浮点输出精度与输入精度一致若 18 位小数内无法转换为浮点秒则取微秒精度%OS为 locale 备选表示t水平制表符T等价于%H:%M:%SuISO 星期1-7星期一为 1%Ou为 locale 备选表示U一年中的周数十进制第一个星期天为第 01 周起点其前为 00 周单数字补 0%OU为 locale 备选表示VISO 基于周的周数十进制单数字补 0%OV为 locale 备选表示w星期0-6星期天为 0%Ow为 locale 备选表示W一年中的周数十进制第一个星期一为第 01 周起点其前为 00 周单数字补 0%OW为 locale 备选表示x日期表示如 11/12/55%Ex为 locale 备选日期表示X时间表示如 10:04:00%EX为 locale 备选时间表示y年份最后两位十进制数字单数字补 0%Oy为 locale 备选表示%Ey为相对%EC偏移的备选表示仅年份Y年份十进制不足四位左补 0%EY为 locale 备选完整年份表示z相对 UTC 的偏移ISO 8601:2004 格式如-0430表示落后 UTC 4 小时 30 分偏移为零时用0000%Ez与%Oz在小时与分钟之间插入冒号-04:30偏移信息不可用则抛format_errorZ时区缩写不可用则抛format_error%输出一个%字符约束含日历成分的说明符如d只对std::tm与时间点有效对 duration 无效。填充修饰符padding_modifier类型含义_用空格填充数字结果-不填充数字结果字符串0用零填充数字结果字符串这些修饰符仅支持H、I、M、S、U、V、W、Y、d、j、m这 11 种展示类型。六、Range 格式规范容器的一键格式化{fmt} 还支持对 Range 类型如std::vector、std::array等的格式化语法为range_format_spec :: [n][range_type][range_underlying_spec]n选项去掉范围两端的方括号输出range_type的取值类型含义无默认格式s字符串格式把范围当作字符串输出?sDebug 格式把范围当作转义后的字符串输出当range_type为s或?s时范围元素类型必须是字符类型且n选项与range_underlying_spec与它们互斥range_underlying_spec按范围元素类型的 formatter 解析。默认情况下字符或字符串的范围以转义加引号的方式输出但只要提供了任意range_underlying_spec即使为空就按该规格输出元素。官方示例syntax.md 的 Range 一节fmt::print({}, std::vector{10, 20, 30}); // 输出: [10, 20, 30] fmt::print({::#x}, std::vector{10, 20, 30}); // 输出: [0xa, 0x14, 0x1e] fmt::print({}, std::vector{h, e, l, l, o}); // 输出: [h, e, l, l, o] fmt::print({:n}, std::vector{h, e, l, l, o}); // 输出: h, e, l, l, o fmt::print({:s}, std::vector{h, e, l, l, o}); // 输出: hello fmt::print({:?s}, std::vector{h, e, l, l, o, \n}); // 输出: hello\n fmt::print({::}, std::vector{h, e, l, l, o}); // 输出: [h, e, l, l, o] fmt::print({::d}, std::vector{h, e, l, l, o}); // 输出: [104, 101, 108, 108, 111]七、格式示例与 printf 对照及高级用法7.1 与 printf 的映射关系大多数场景下 {fmt} 语法与 printf 相似区别在于用{}代替%、用:分隔字段与格式。例如%03.2f可翻译为{:03.2f}。同时新语法还支持 printf 不具备的选项。7.2 按位置访问参数fmt::format({0}, {1}, {2}, a, b, c); // a, b, c fmt::format({}, {}, {}, a, b, c); // a, b, c fmt::format({2}, {1}, {0}, a, b, c); // c, b, a fmt::format({0}{1}{0}, abra, cad); // abracadabra索引可重复使用7.3 对齐与宽度fmt::format({:30}, left aligned); // left aligned fmt::format({:30}, right aligned); // right aligned fmt::format({:^30}, centered); // centered fmt::format({:*^30}, centered); // ***********centered************ 作填充符7.4 动态宽度与动态精度fmt::format({:{}}, left aligned, 30); // 宽度由第二个参数给出 fmt::format({:.{}f}, 3.14, 1); // 精度由第二个参数给出 - 3.1这正是第 2.3 节所说的嵌套替换字段的典型用法{}只允许放置 arg_id用于动态指定宽度或精度。7.5 符号控制fmt::format({:f}; {:f}, 3.14, -3.14); // 3.140000; -3.140000恒显符号 fmt::format({: f}; {: f}, 3.14, -3.14); // 3.140000; -3.140000正数前加空格 fmt::format({:-f}; {:-f}, 3.14, -3.14); // 3.140000; -3.140000仅负数显符号等价于 {:f}; {:f}7.6 进制转换与前缀fmt::format(int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}, 42); // int: 42; hex: 2a; oct: 52; bin: 101010 // 带 0x / 0 / 0b 前缀 fmt::format(int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}, 42); // int: 42; hex: 0x2a; oct: 052; bin: 0b1010107.7 填充的十六进制字节fmt::format({:#04x}, 0); // 0x00前缀 恒输出两位十六进制{:#04x}是前缀 最小宽度 4 零填充 十六进制的组合0x占 2 位00占 2 位。这是格式化二进制数据、MAC 地址、哈希摘要时最常用的惯用法之一。7.8 用 Unicode 填充绘制边框fill 支持任意 Unicode 码点可以构造出精美的文本图形fmt::print( ┌{0:─^{2}}┐\n │{1: ^{2}}│\n └{0:─^{2}}┘\n, , Hello, world!, 20);输出┌────────────────────┐ │ Hello, world! │ └────────────────────┘7.9 类型专属格式化chrono 与 locale#include fmt/chrono.h auto t tm(); t.tm_year 2010 - 1900; t.tm_mon 7; t.tm_mday 4; t.tm_hour 12; t.tm_min 15; t.tm_sec 58; fmt::print({:%Y-%m-%d %H:%M:%S}, t); // 打印: 2010-08-04 12:15:587.10 本地化数字L 选项与数字分组#include fmt/format.h auto s fmt::format(std::locale(en_US.UTF-8), {:L}, 1234567890); // s 1,234,567,890L选项需要显式传入std::locale如上面的std::locale(en_US.UTF-8)它会按 locale 规则插入千位分隔符。八、仓库实战libaz 中的格式化输出剖析回到 PowerInfer/libaz可以看到上述语法在真实代码中的完整形态8.1 基准测试中的浮点与统计输出random_memtest.cpp 是 libaz 的向量点积随机压力测试工具集中展示了多种格式fmt::println(Row size{}, az::ggml::block_q4_0::row_size(row_dim)); // L29整数字段 fmt::println(Weight data size: {:.3f} GiB, weight_size / 1024.0 / 1024 / 1024); // L46定点 3 位小数 fmt::println(sum{:.3f}, sum); // L92定点 3 位小数 fmt::println(#thread{}, count{}, {:.3} TOPS, n_threads, current_count, tops); // L106通用格式 3 位有效数字其中第 46 行的{:.3f}是定点格式 3 位小数第 106 行的{:.3}则是通用格式 3 位有效数字——两者含义不同前者保留 3 位小数后者只保留 3 位有效数字正对应第 4.4 节f与g类型的精度规则。8.2 路径输出的 Debug 格式perfetto_trace.cpp 在保存 Perfetto 性能追踪数据时使用了?debug格式让路径字符串以带引号、可转义的形式呈现便于在日志中区分字符串内容与前后缀文本fmt::println(Saving Perfetto trace data to {:?}..., trace_path); fmt::println(stderr, Cannot open {:?}., trace_path);stderr作为第一个参数传入fmt::println实现把输出定向到标准错误流——这是 {fmt} 对输出流对象的内建支持对应 fmt/base.h 文档中的fmt::print(stderr, Dont {}!, panic)用法。8.3 断言消息中的多字段拼接assert.hpp 中的AZ_ASSERT断言失败时输出完整上下文通过{}依次填入文件名、行号、函数名与表达式fmt::println(stderr, {}:{}: {}: Assertion failed: \{}\, file, line, func, expr); // L25 fmt::println(Expect \{}\, but got \{}\, (value), (expr)); // L69其中第 25 行同时使用 4 个位置参数展示了多个{}按顺序映射到多个参数的自动编号机制第 69 行则是AZ_ASSERT((expr) (value))失败时打印期望值与实际值的典型诊断。8.4 运行时格式串与编译期检查从 fmt/base.h 的文档注释可以看出 {fmt} 对格式串安全的完整支持链编译期检查推荐直接用字符串字面量调用fmt::print(The answer is {}., 42)L2936{fmt} 在编译期校验格式串与参数类型运行时格式串当格式串来自变量无法编译期校验时需显式包装为fmt::runtime(...)否则编译期检查会拒绝非常量格式串L2708命名参数fmt::arg(answer, 42)让格式串通过名字引用参数L2823输出到任意容器fmt::format_to(std::back_inserter(out), {}, 42)L2849可把结果写入任意输出迭代器生命周期注意fmt::format_args args fmt::make_format_args()会产生悬垂引用L2554-L2555format_args 只应在参数包的直接消费中使用。九、延伸{fmt} 的模块划分与进一步阅读{fmt} 在 external/fmt/include/fmt/ 下按功能拆分为多个头文件base.h核心格式化基础、format.hfmt::format等高层 API、chrono.h时间格式化第 5 节的 chrono 语法实现在此、ranges.h第 6 节的 Range 格式化、color.h终端彩色输出、compile.h编译期格式化优化、args.hdynamic_format_arg_store、os.h、ostream.h、printf.h、xchar.h等。需要用到对应语法时按需包含对应头文件即可。更完整的 API 列表见 fmt/doc/api.mdCMake 集成方式fmt::fmt与fmt::fmt-header-only两个目标见 fmt/doc/get-started.md。在 PowerInfer 的 libaz 中external/fmt以子目录方式内嵌进构建因此所有#include fmt/...均可直接编译使用无需额外安装系统级 fmt 包。十、小结{fmt} 的格式字符串语法可以概括为一条主线replacement field{}及其中的 arg_id 与:后的 format_spec加字面文本其中 format_spec 由[[fill]align][sign][#][0][width][.precision][L][type]组成chrono 类型在此基础上叠加%引导的转换说明符range 类型则通过n、s、?s与 underlying spec 控制容器输出。掌握这套语法你不仅能写出对齐、填充、进制、精度、本地化等全部展示形式还能直接读懂 PowerInfer/libaz 中 random_memtest.cpp、perfetto_trace.cpp 与 assert.hpp 等文件里的每一处格式化调用并借助编译期检查写出类型安全的日志代码。赞分享人工智能大模型推理引擎本地部署【免费下载链接】PowerInferHigh-speed Large Language Model Serving for Local Deployment项目地址https://gitcode.com/gh_mirrors/po/PowerInfer点击查看免费下载相关推荐fmt 库格式字符串语法完全指南替换字段、格式规格与 Chrono/Range 扩展规范fmt 库格式字符串语法完全指南替换字段、格式规格与 Chrono/Range 扩展规范 本文是 fmt https://link.gitcode.com/i标准库fmtlib/fmt 格式化字符串语法详解fmtlib/fmt 格式化字符串语法详解 fmtlib/fmt 是一个现代 C 格式化库提供了高效、安全的格式化功能。本文将深入解析其格式化字符串语法标准库如何在3分钟内完成专业级人声分离本地化AI音频处理终极指南如何在3分钟内完成专业级人声分离本地化AI音频处理终极指南 你是否曾梦想过将喜欢的歌曲分离成纯净的人声和伴奏或者需要从视频中提取背景音乐用于创作传统音频分音频处理后端AI 应用上一篇Open Policy AgentOPA贡献者开发指南从环境搭建、make 构建到 PR 提交与 CI 全流程实战下一篇THCalendarDatePicker 选择模式解析单选、多选与范围选择的完整教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Altium Designer元件库体系搭建:SchLib/PcbLib/IntLib/DbLib分层部署指南
Altium Designer元件库体系搭建:SchLib/PcbLib/IntLib/DbLib分层部署指南

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

Windows管理员权限失效原因与提权全路径解析
Windows管理员权限失效原因与提权全路径解析

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

LaTeX字体字号修改全指南:从文档类到局部控制
LaTeX字体字号修改全指南:从文档类到局部控制

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

wp-calypso 中的 Quick Start(Business Concierge)预约流程:路由设计、多步向导组件与数据层实现
wp-calypso 中的 Quick Start(Business Concierge)预约流程:路由设计、多步向导组件与数据层实现

前端CMS 【免费下载链接】wp-calypso The JavaScript and API powered WordPress.com 项目地址: https://gitcode.com/gh_mirrors/wp/wp-calypso 点击查看 免费下载 本篇技术文章以 client/me/concierge/README.md 为骨架,结合 wp-calypso(T… · 2026/9/25 5:36:21

hunkdiff 内容搜索的空白保留:从 less 式 `/` 查询到 n/N 重复的完整实现剖析
hunkdiff 内容搜索的空白保留:从 less 式 `/` 查询到 n/N 重复的完整实现剖析

开发工具代码评审CLIAI 应用 【免费下载链接】hunk Review-first terminal diff viewer for agentic coders 项目地址: https://gitcode.com/gh_mirrors/hu/hunk 点击查看 免费下载 hunk 是面向 agent 化开发者的 review-first 终端 diff 查看器,其内置… · 2026/9/25 5:36:21

阅读笔记:《云计算关键领域安全指南v5》
阅读笔记:《云计算关键领域安全指南v5》

云计算是一种运营模型和一组技术,用于通过对计算、网络、存储等资源的抽象来管理共享资源池。云计算能够实现通过网络访问可扩展且具有弹性的可共享的物理或虚拟资源池,并可按需进行自助式资源调配和管理。云可以由几乎任何计算资源组成,从处… · 2026/9/25 5:36:09

OpenShell Release Canary 实战指南:发布工件的最后一道冒烟关卡
OpenShell Release Canary 实战指南:发布工件的最后一道冒烟关卡

【免费下载链接】OpenShell OpenShell is the safe, private runtime for autonomous AI agents. 项目地址: https://gitcode.com/gh_mirrors/op/OpenShell 点击查看 免费下载 OpenShell 的 Release Canary(工作流定义位于 .github/workflows/release-c… · 2026/9/25 5:36:09

Agent技能管理实战:从Prompt堆砌到结构化技能编排
Agent技能管理实战:从Prompt堆砌到结构化技能编排

做Agent开发也有小半年了,我最大的感受是:大多数人不是被模型能力卡住的,而是被“技能管理”卡住的。你让Agent做的事越多,它的行为就越不可控,Prompt越堆越长,到最后修一个bug能扯出一串连锁问题。这个项目… · 2026/9/25 5:36:09

ESPnet 2 端到端语音识别实战:基于 OpenSLR 35 爪哇语(Javanese)语料库的 Transformer ASR 配方与 WER/CER/TER 结果深度解析
ESPnet 2 端到端语音识别实战:基于 OpenSLR 35 爪哇语(Javanese)语料库的 Transformer ASR 配方与 WER/CER/TER 结果深度解析

人工智能语音音频深度学习NLP 【免费下载链接】espnet End-to-End Speech Processing Toolkit 项目地址: https://gitcode.com/gh_mirrors/es/espnet 点击查看 免费下载 本篇技术指南以 ESPnet 仓库中 egs2/jv_openslr35/asr1/README.md 的实验结果记录为核心&… · 2026/9/25 5:36:03

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

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

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

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

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

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

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码