API 参考
所有参数、变量、端点与公共类型集于一处。在输入框中键入即可即时过滤下方全部表格 —— 或按 / 进行全站搜索。
· 匹配的行会在所有区块中实时高亮。
CLI 参数 —— TensorSharp.Cli
| 参数 | 说明 |
|---|---|
--model <path> | GGUF 模型文件路径(必需)。 |
--input <path> | 包含用户提示词的文本文件。 |
--input-jsonl <path> | 含批量请求的 JSONL 文件(每行一个 JSON)。 |
--multi-turn-jsonl <path> | 带 KV 缓存复用的多轮对话模拟 JSONL。 |
--output <path> | 将生成文本写入此文件。 |
--image / --video / --audio <path> | 用于视觉 / 视频 / 音频推理的媒体。 |
--pdf <path> | PDF 文档单次输入:数字 PDF 内联为文本;扫描 PDF 转为页面图像交给视觉模型(页数上限:TS_PDF_MAX_PAGES)。 |
--mmproj <path> | 多模态投影器 GGUF。建议显式传入;CLI 自动检测只识别少数旧伴随文件名。 |
--max-tokens <N> | 最大生成 token 数(默认 100)。 |
--backend <type> | cpu、cuda、mlx、ggml_cpu、ggml_metal、ggml_cuda、ggml_vulkan。 |
--gpu-device <N> | ggml_vulkan 在多 GPU 主机上使用的 Vulkan 设备索引(默认 0;环境变量 TS_GGML_VULKAN_DEVICE)。 |
--list-gpus | 列出可见的 Vulkan 设备(索引 + 显卡名称)后退出。 |
--kv-cache-dtype <type> | KV 缓存精度:f32、f16、q8_0、q4_0(默认按后端/模型自动选择;q4_0 约为 f32 的 1/7;量化档位需原生 GGML flash-attention 路径)。 |
--interactive / -i | 启动交互式 REPL。 |
--system <text> / --system-file <path> | 设定系统提示。 |
--think | 启用思考 / 推理模式。 |
--tools <path> | 含工具 / 函数定义的 JSON 文件。 |
--skills-dir <path> · --skill <name> · --list-skills · --no-skills · --skills-no-discovery | 发现、选择、列出或禁用 Agent Skills,并可限制发现。对支持工具的模型,已选择技能也先只披露元数据,正文按需读取。环境变量 TS_SKILLS_DIR / TS_NO_SKILLS。 |
--skills-allow-exec · --skills-sandbox <off|preferred|required> · --skills-allow-network | 启用 skills_run 并选择脚本隔离/联网策略。执行和网络默认关闭,沙箱默认 required。macOS 使用 Seatbelt,Linux 需要 bubblewrap 0.12+,Windows 作业对象无法限制文件/网络。 |
--skills-max-rounds <1..64> | 内部模型/工具轮次上限:默认 8;提供代码执行时为 24;显式取值不变。 |
--code-exec | 启用服务端拥有的五个智能体工具:read_file、edit_file、write_file、shell、apply_patch。默认关闭;环境变量 TS_CODE_EXEC。 |
--code-exec-allow-install · --code-exec-packages <list> | 允许宿主代为安装 pip/npm 包,并可限制包名;不会授予生成命令网络访问权。 |
--code-exec-install-domains <list> · --code-exec-install-index <url> | 安装器主机白名单(默认 pypi.org,files.pythonhosted.org,registry.npmjs.org)与运维方指定的索引。 |
--code-exec-allow-network | 允许生成命令不受限地使用宿主 IP 网络,包括局域网/回环与监听套接字。默认关闭,且独立于安装和技能联网开关。 |
--code-exec-timeout <seconds> · --code-exec-max-output <bytes> · --code-exec-shell <path|name> · --code-exec-temperature <0..2> | 命令时限(默认 120 秒)、保留输出上限(32768 字节,中间截断)、shell 覆盖与可选的代码轮温度覆盖(仅替换仍为默认值的请求温度)。只要代码工具可运行,代码轮就始终关闭内置的 1.1 重复惩罚。 |
--code-exec-unconfined | 在操作系统隔离不足时仍运行。Windows 必须使用;不适合不受信任的宿主用户。 |
--code-exec-languages | 已移除,启动时会拒绝;没有替代参数。shell 可访问每次调用时重建的 PATH 上所有解释器,因此宿主改为报告已安装解释器,而不再假装提供语言白名单。 |
--spec / --no-spec | 启用 / 禁用推测解码:草稿器提出接下来的几个 token,主干在一次批量前向中完成校验。每个吐出的 token 仍取自主干的一行、并使用本次运行自己的采样器,因此这只是一条加速路径。必须在模型加载之前传入 —— 正是它告诉 glm-dsa 把约 3 GiB 的 NextN 层调入显存,同时也就挤掉了一部分上下文空间。在草稿块借用主干 LM head 的检查点上(包括 GLM-5.2 与 GLM-5.3)不支持 --tp N>1 —— 在它们上面,投机只在不传 --tp 的默认按层切分下生效。对内嵌在主干检查点里的草稿器(GLM-5.2、GLM-5.3、Qwen 3.6 NextN),这是显式的开启开关;用 --draft-model 指定的草稿器无需它即可生效。默认关闭。环境变量 TS_SPEC(或 TS_MTP_SPEC;glm-dsa 还认 TS_GLM_MTP=1/0,其优先级高于前两者)。 |
--spec-type <name> | 用哪种推测算法起草:auto(默认)使用检查点自带的草稿器,draft-head 固定为逐 token 的 NextN/MTP 头,block 固定为块级草稿器,ngram 完全不需要训练好的权重 —— 它在上下文里查找最近几个 token 此前出现的位置,把当时的后续内容作为草稿,因此对每个检查点都有效,在答案会引用提示词的场景(摘要、编辑、翻译、重复性结构化输出、agent 循环)中最强。环境变量 TS_SPEC_TYPE。 |
--spec-draft <N> | 每个推测步最多起草的 token 数(范围 1–64,默认 8;块级草稿器默认取自己训练时的块大小并把取值压到该块大小,DSpark 为 5)。它同时决定加载时原生图缓存的大小,因此要和 --spec 写在同一条命令行上。环境变量 TS_SPEC_DRAFT。 |
--spec-pmin <f> | 低于该置信度就停止起草。这个数字的含义由算法自己决定,因此各自带默认值:逐 token 头为 0.15(top-1 概率),块级草稿器为 0.35(此处是累积前缀概率,同一个数字严格得多),n-gram 为 0 —— 在它那里该值改为缩放所需的匹配长度。0 也被接受,表示完全不设门限。环境变量 TS_SPEC_PMIN。 |
--draft-model <path> | 所有以独立文件发布的草稿器共用的 GGUF 参数(DeepSeek V4 的 DSpark、Muse-Glimmer 的 DFlash、Gemma 4 的 gemma4-assistant 草稿头)。由文件自身的 general.architecture 决定加载方式;写出文件名本身就是请求 —— 不需要 --spec(显式的 --no-spec 可将其否决)。块级草稿器必须在模型层切分之前常驻;DSpark 仅在 cuda / ggml_cuda 上生效。Qwen 3.6、GLM-5.2 与 GLM-5.3 把 NextN 块嵌在主干 GGUF 里,不需要该参数 —— GLM-5.3 在 blk.78 上带的就是完整的一块,没有额外文件要下载。环境变量 TS_DSV4_DSPARK、TS_SPEC_DRAFT_MODEL。 |
--temperature / --top-k / --top-p / --min-p | 采样控制。 |
--repeat-penalty / --presence-penalty / --frequency-penalty | 惩罚(1.0 / 0 = 关闭)。 |
--seed <N> / --stop <string> | 随机种子(-1 = 随机) / 停止序列(可重复)。 |
--dump-prompt | 渲染提示词 + 分词后退出。 |
--diffusion-steps / --diffusion-seed / --diffusion-blocks <N> | DiffusionGemma 生成控制。 |
--prompt <text> | Qwen-Image-Edit 编辑指令(与 --image 一起;编辑后的 PNG 写入 --output)。 |
--cfg <F> | true-CFG 引导尺度。Qwen-Image-Edit:自动 2.5,使用 Lightning LoRA 时为 1.0;<= 1 关闭负向分支。视频生成复用同一个参数 —— MiniMax-H3 是 CFG 蒸馏模型,会拒绝任何高于 1.0 的取值,因此它只接受 --cfg 1.0。 |
--qwen-image-vae / --qwen-image-vl / --qwen-image-mmproj <path> | 覆盖解析到的 Qwen-Image-Edit 伴随 GGUF(VAE / Qwen2.5-VL 文本编码器 / mmproj)。 |
--qwen-image-lora <path> | Lightning 蒸馏 LoRA(.safetensors),以运行期 F32 旁路的形式挂在原封不动的量化基础权重旁边(不合并);从文件名自动推导步数(如 4 或 8),并将 CFG 切换为 1.0。 |
--width <px> / --height <px> | 媒体家族的输出画布。Qwen-Image-Edit:0 = 自动(源尺寸,按显存夹取)。视频生成:MiniMax-H3 会把两者都向上取整到 32 的倍数,默认 640×384,或按条件图像的宽高比取同等面积。分辨率是最主要的成本杠杆,而人脸需要像素 —— 起步点是 640×384,不是 256×256。 |
--video-frames <N> / --fps <N> | 输出帧数,向上对齐到模型自己的时间网格 —— MiniMax-H3 为 17k+5(5、22、39、56、73、90、107…,默认 22),Wan 为 4k+1(默认 33,Wan2.2-TI2V 为 49)—— 以及 MP4 播放帧率(Wan 默认 16,Wan2.2-TI2V 为 24)。以固定帧率训练的模型会覆盖传入值:MiniMax-H3 固定为 24 fps。 |
--video-mode <mode> | MiniMax-H3 的条件模式,不指定时按传入内容自动推断:t2v(纯文本)、i2v(图像就是第一帧,被动画化)、fl2v(首帧与尾帧)、ref(图像是身份/外观参考,用于全新场景)。i2v/fl2v 需要 fl2va 检查点,ref 需要 ref2va —— 它们是两个独立文件,拒绝对方的输入时会直接指出该改加载哪一个。在 ref2va 上,单独的 --image 会被当作一张参考图。 |
--end-image <file> | 尾帧条件图像(MiniMax-H3 首尾帧模式)。与 --image 一起使用时,片段会被引导为以这两帧开头和结尾。 |
--ref-image <file> | MiniMax-H3 Ref2VA 的参考静图:主体被保留下来,而镜头、背景与构图来自提示词。可重复,参考总数上限 9;提示词按位置以 <Picture 1>、<Picture 2>… 引用。参考图只会被缩小并保持自身宽高比,因此输出画布仍由 --width/--height 决定。 |
--ref-video <path> / --ref-video-audio <file> | 参考片段(视频文件或一个装帧的目录,都会被重采样到 MiniMax-H3 自己的 24 fps 与画布,提示词中记作 <Video 1>、<Video 2>…)及其音轨,音轨按位置配对:第一个 --ref-video-audio 对应第一个 --ref-video。之所以分成两个参数,是因为容器里的音轨无法通过帧解码器读取。参考片段是 H3 最贵的一种输入:一段 22 帧 448×320 的片段会在输出所需的 1680 个 token 之上再加 980 个条件 token。 |
--ref-audio <file> | 独立的参考音轨(<Audio 1>…),WAV / MP3 / Ogg,会重采样到音频 VAE 的 32 kHz 立体声并截断到生成片段的时长。可重复;静图、片段与音频共用同一个 9 个参考的预算。 |
--no-audio | 在与视频联合生成音轨的模型(MiniMax-H3)上跳过音频解码,省下音频 VAE 的时间与内存。纯视频模型会忽略该参数。 |
--flow-shift <F> / --sampler <name> | FlowMatch 时间步偏移(0 = 使用模型官方配方;MiniMax-H3 为 12.0,且只作用于视频流)与采样器:unipc(默认)或 euler。--sampler 是 Wan 家族的旋钮 —— MiniMax-H3 跑自己的 flow-match 调度,会忽略它。 |
--negative-prompt <text> | 无分类器引导的负向提示词(默认为模型官方的那一条)。--cfg 1.0 下不会跑无条件分支,因此它在只接受 1.0 的 MiniMax-H3 上、以及本就无引导的步数蒸馏 Wan 检查点上都不起作用。 |
--cfg-cache-stride <N> | Wan 引导缓存:每 N 步只跑一次无条件 CFG 分支,其间复用缓存的引导方向(默认 0 = 关闭)。50 步下 2 为 1.30×、3 为 1.43×。属于近似方法,且在 --cfg 1.0 下无效 —— 所以对 MiniMax-H3 和蒸馏 Wan 检查点都不起作用。 |
--video-vae / --video-text-encoder / --audio-vae <path> | 覆盖解析到的视频伴随文件:视频 VAE(MiniMax-H3 用 minimax_h3_video_vae_fp16.safetensors,Wan 用因果 3D VAE)、文本编码器(MiniMax-H3 用 Qwen3-VL-32B,Wan 用 UMT5-XXL;也可写作 --video-te),以及 MiniMax-H3 解码音轨所用的音频 VAE —— 不给它模型照样能跑,只是没有声音。环境变量 TS_VIDEO_VAE / TS_VIDEO_TEXT_ENCODER / TS_VIDEO_AUDIO_VAE;Wan A14B 的第二个专家是 --video-dit2。旧拼写 --wan-vae / --wan-te / --wan-dit2 仍然接受。 |
--paged-kv-quant-bits <0|2|4|8> | TurboQuant 分页 KV 块压缩(0 = 关闭)。 |
--benchmark / --bench-prefill / --bench-decode / --bench-runs | 合成吞吐基准。 |
--bench-kvcache / --bench-kv-turns <N> | 多轮 KV 缓存复用基准。 |
--warmup-runs <N> | 计时前丢弃的前向次数(默认 0)。 |
--test / --test-templates <dir> | 内置分词器/模板测试;对照 GGUF Jinja2 校验模板。 |
--tp <N> | 张量并行度 —— 在单个进程内把模型切分到 N 张 GPU 上(默认 1;需要 --backend cuda、ggml_cuda 或 ggml_vulkan)。TensorSharp.Server 同样支持该参数。 |
--tp-node-id <N> / --tp-peers <list> | 多节点分布式 TP:本节点的 0 起始编号,以及所有节点共用的逗号分隔 host:port 列表。 |
--log-level / --log-dir / --log-file / --log-console | 日志级别、目录,以及文件/控制台开关。 |
服务器参数 —— TensorSharp.Server
| 参数 | 说明 |
|---|---|
--model <path> | 启动时要托管的 GGUF 文件(必需);无模型进程不能通过 /api/models/load 选择 GGUF。 |
--mmproj <path> | 显式多模态投影器 GGUF;none 可禁用。服务端不会自动检测。 |
--backend <type> | 计算后端;macOS 默认 ggml_metal,其他平台默认 ggml_cpu。 |
--gpu-device <N> / --list-gpus | ggml_vulkan 的 Vulkan 设备选择 / 列出可见 Vulkan 设备后退出。 |
--help | 打印参数说明后退出(不带任何参数启动时也会显示)。 |
--max-tokens <N> | 所有端点的生成上限:请求未指定时填充,请求要求更多时截断(默认 20000,只填充不截断)。 |
--temperature / --top-k / --top-p / --min-p | 默认采样值。 |
--repeat-penalty / --presence-penalty / --frequency-penalty / --seed | 默认惩罚与随机种子。 |
--stop <string> | 停止序列(可重复);在 config 优先级下与逐请求列表合并,在 request 下被其替换。 |
--sampling-precedence <config|request> | 已配置的采样参数是否优先于请求中携带的同名参数(默认 config)。未配置的参数始终取请求中的值。 |
--continuous-batching / --no-continuous-batching | 启用(默认) / 禁用迭代级分页批处理。别名 --paged-batching。 |
--spec / --no-spec | 启用 / 禁用推测解码(默认关闭);对独占的非并发序列生效。对内嵌在主干检查点里的草稿器,这是显式的开启开关;用 --draft-model 指定的草稿器无需它即可生效。 |
--spec-type <name> | 推测算法:auto(默认)使用检查点自带的草稿器,draft-head 与 block 显式固定其一,ngram 完全不需要训练好的权重 —— 它按上下文中的后缀匹配起草,因此对每个检查点都有效。 |
--spec-draft <N> | 每个推测步草拟的最大 token 数(1–64,默认 8;块级草稿器默认取其训练块大小,并把取值压到该块大小)。 |
--spec-pmin <f> | 草稿置信度门限,取值 [0, 1](0 表示完全不设门限),低于它就停止起草。默认值按算法各自决定 —— 逐 token 头为 0.15,块级草稿器为 0.35(门限是累积前缀概率),n-gram 为 0。 |
--draft-model <path> | 所有以独立文件发布的草稿器共用的 GGUF 参数(DeepSeek V4 的 DSpark、Muse-Glimmer 的 DFlash、Gemma 4 gemma4-assistant)。由文件自身的 general.architecture 决定加载方式;写出文件名本身就是请求,因此不需要 --spec(显式的 --no-spec 可将其否决)。Qwen 3.6、GLM-5.2 与 GLM-5.3 把 NextN 块嵌在主干里,不需要该参数;DSpark 在 cuda / ggml_cuda 上对单序列请求生效。环境变量 TS_DSV4_DSPARK。 |
--prefill-chunk-size <N> | 每个调度步的最大 prefill token 数(设置 TS_SCHED_PREFILL_CHUNK)。 |
--kv-cache-dtype <type> | KV 缓存精度:f32、f16、q8_0、q4_0(默认按后端/模型自动选择;环境变量 KV_CACHE_DTYPE)。 |
--skills-dir · --skill · --list-skills · --no-skills · --skills-no-discovery | 服务端 Agent Skills 注册表、启动时选择和发现策略;语义与 CLI 相同。 |
--skills-allow-exec · --skills-sandbox · --skills-allow-network · --skills-max-rounds | 脚本选择加入、隔离/联网策略与 1–64 轮上限。默认:执行/网络关闭,沙箱 required,轮数 8;启用代码执行时为 24。 |
--code-exec · --code-exec-allow-install · --code-exec-allow-network · --code-exec-unconfined | 启用内置代码工具及独立的安装、联网、无隔离权限。它们都是运维方的启动决策;没有逐命令审批端点。 |
--code-exec-packages · --code-exec-install-domains · --code-exec-install-index · --code-exec-timeout · --code-exec-max-output · --code-exec-shell · --code-exec-temperature | 包/安装源策略、命令限制、shell 与可选的代码轮温度。只要代码工具可运行,代码轮就会独立于温度参数关闭内置的 1.1 重复惩罚。参见智能体工作。 |
--code-exec-languages | 已移除,启动时会拒绝;没有替代参数。shell 可访问每次调用时重建的 PATH 上所有解释器。 |
--qwen-image-vae / --qwen-image-vl / --qwen-image-mmproj <path> | 覆盖解析到的 Qwen-Image-Edit 伴随 GGUF。 |
--qwen-image-lora <path> | Qwen-Image-Edit Lightning LoRA,以运行期旁路形式挂在原封不动的量化权重旁边(不合并);去噪步数更少,CFG 1.0。 |
--video-width <px> / --video-height <px> | 请求未给出 width/height 时的默认输出尺寸 —— 最主要的质量杠杆,而且是启动参数,因为浏览器自己不会发送任何尺寸。别名 --width / --height;会向上对齐到模型的网格(MiniMax-H3 为 32 的倍数)。MiniMax-H3 推荐从 640×384 起步;只给出其中一个时,H3 会按条件图像的宽高比推出另一个。 |
--video-steps <N> | 请求未给出 steps 时的默认去噪步数 —— 分辨率之后第二大的质量/耗时权衡。MiniMax-H3 默认 20 步,4–8 步是它的快速工作点,16–24 步画面明显更干净,超过约 30 步收益很小。服务端完全没有 --cfg 这个参数。 |
--video-mode <mode> | 请求未给出 videoMode 时的默认条件模式:t2v、i2v、fl2v 或 ref。不设置时按每个请求的内容推断,通常这就是你想要的;只对外提供单一模式的部署可以固定它。 |
--video-frames <N> / --fps <N> | 请求未给出 frames/fps 时的默认帧数与 MP4 播放帧率。帧数会对齐到模型的时间网格 —— MiniMax-H3 为 17k+5(默认 22),Wan 为 4k+1(默认 33,Wan2.2-TI2V 为 49)。无论请求什么,MiniMax-H3 都固定为 24 fps。 |
--video-vae / --video-text-encoder / --audio-vae <path> | 视频伴随文件:视频 VAE、文本编码器(MiniMax-H3 用 Qwen3-VL-32B,Wan 用 UMT5-XXL;也可写作 --video-te),以及 MiniMax-H3 解码音轨所用的音频 VAE —— 不给它模型照样能跑,只是输出无声视频。环境变量 TS_VIDEO_VAE / TS_VIDEO_TEXT_ENCODER / TS_VIDEO_AUDIO_VAE;Wan A14B 的第二个专家是 --video-dit2。 |
--paged-kv* / --paged-kv-quant-bits | 遗留的独立分页 KV 参数(KV 状态现由引擎管理)。 |
环境变量
| 变量 | 说明 |
|---|---|
BACKEND | 默认后端(macOS 上为 ggml_metal,其他平台为 ggml_cpu)。 |
MAX_TOKENS | 默认最大生成长度(20000)。 |
TS_PDF_MAX_PAGES | PDF 上传与 CLI --pdf 读取的最大页数;0 = 全部(默认)。 |
VIDEO_SAMPLE_FPS / VIDEO_MAX_FRAMES | 视频抽帧速率 / 上限。 |
TENSORSHARP_TEMPERATURE / _TOP_K / _TOP_P / _MIN_P | 默认采样值。 |
TENSORSHARP_REPEAT_PENALTY / _PRESENCE_PENALTY / _FREQUENCY_PENALTY / _SEED | 默认惩罚与随机种子。 |
TENSORSHARP_SAMPLING_PRECEDENCE | config(默认)或 request:上述取值是否优先于客户端发来的同名参数(= --sampling-precedence)。 |
TENSORSHARP_LOG_LEVEL / _LOG_DIR / _LOG_FILE | 日志级别、目录、文件开关(CLI + 服务器)。 |
TS_SKILLS_DIR / TS_NO_SKILLS / TS_SKILLS_ALLOW_EXEC / TS_SKILLS_MAX_ROUNDS / TS_SKILLS_SANDBOX / TS_SKILLS_ALLOW_NETWORK | Agent Skills 根目录、禁用开关、脚本选择加入、轮次上限、沙箱模式和脚本联网选择加入。 |
TS_CODE_EXEC / TS_CODE_EXEC_ALLOW_INSTALL / TS_CODE_EXEC_ALLOW_NETWORK / TS_CODE_EXEC_INSTALL_DOMAINS / TS_CODE_EXEC_INSTALL_INDEX | 代码工具选择加入、独立的安装/联网授权和宿主安装器来源策略。 |
DIFFUSION_STEPS / DIFFUSION_MAX_BATCH | DiffusionGemma 每块步数 / 最大批处理请求数。 |
KV_CACHE_DTYPE | CLI + 服务端 KV 缓存精度:f32、f16、q8_0、q4_0;默认自动(= --kv-cache-dtype)。 |
TS_SCHED_DISABLE_BATCHED | 1 强制逐序列 KV 交换(= --no-continuous-batching)。 |
TS_SCHED_MAX_BATCHED_TOKENS | 每步 token 预算(4096)。 |
TS_SCHED_MAX_RUNNING_SEQS | 最大在飞序列数(16)。 |
TS_SCHED_PREFILL_CHUNK | 混合步骤中每请求的 prefill 上限(256);仅 prefill 时用满批预算。 |
TS_SCHED_SOLO_PREFILL_CHUNK | 独占 / 无竞争请求的 prefill 分块(8192)。 |
TS_SCHED_DECODE_QUANTUM | 切换序列前的 decode token 数(256 = 块大小)。 |
TS_SCHED_NUM_BLOCKS / TS_SCHED_BLOCK_SIZE | 引擎块池大小(256) / 每块 token 数(256)。 |
TS_SCHED_PREFIX_CACHE | 0 禁用块哈希前缀共享。 |
TS_<FAMILY>_BATCHED | 0 强制某家族走逐序列路径(如 TS_GEMMA4_BATCHED、TS_QWEN35_BATCHED)。 |
TS_SPEC / TS_SPEC_TYPE / TS_SPEC_DRAFT / TS_SPEC_PMIN / TS_SPEC_DRAFT_MODEL | 推测解码旋钮,对应 --spec* 参数:开关、算法(auto、draft-head、block、ngram)、草稿长度、置信度门限,以及独立的草稿头 GGUF。 |
TS_MTP_SPEC / TS_MTP_DRAFT / TS_MTP_PMIN / TS_MTP_DRAFT_MODEL | 上面四个 TS_SPEC* 名字的别名(算法一项没有 TS_MTP_* 拼写)。glm-dsa 另外还认 TS_GLM_MTP=1/0,其优先级高于两种拼写。 |
TS_DSV4_DSPARK / TS_DSV4_NGPU / TS_DSV4_UBATCH / TS_DSV4_PERF | DeepSeek V4:DSpark 草稿器路径(对应 --draft-model)、层切分使用的 GPU 数、prefill 微批大小,以及吞吐 / 分阶段日志。 |
TS_DSV4_THREADS / TS_DSV4_CPU_TRACE_DIR | --backend cpu 上的 DeepSeek V4.1 Flash,即纯 C# 执行器 DeepSeek4CpuExecutor —— 不用 ggml、不依赖原生库、也不用 GPU,因此 .NET 能跑的地方它都能跑。TS_DSV4_THREADS 是计算线程数,在该后端上默认取 Environment.ProcessorCount,其他后端上则是 min(核数, 32);TS_DSV4_CPU_TRACE_DIR 写出的逐张量文件与 eng/dsv41-reference.py --output 写出的完全同名,因此两个目录可以逐张量对差。它是一条正确性与可移植性路径,而非服务路径。deepseek41.engram.bin 附属文件依旧是必需的,而这里的 MAX_CONTEXT 默认压到 65,536。 |
TS_DSV41_TP / TS_DSV41_ENGRAM_DEVICE | 原生 DeepSeek V4.1 加载器的放置选项:实验性 routed-MoE 张量并行的 rank 数(0 = 关闭,否则 2–8,且需等于选中的 GPU 数,仅 ggml_cuda)与 Engram 表放在哪个设备上。这两项在 --backend cpu 上会在读取任何权重之前被拒绝 —— TS_DSV41_TP 必须为 0,TS_DSV41_ENGRAM_DEVICE 只接受 0 —— 同样被拒绝的还有分布式 TP 组,以及任何草稿模型或 TS_DSV4_DSPARK(任何后端上都不存在 V4.1 的 DSpark,而在 V4.1 上指定它是硬拒绝,不是 DeepSeek V4 的告警后继续)。TS_DSV41_ENGRAM_WARM / _THREADS / _RANDOM / _SIDECAR、TS_DSV41_SPARSE_FA 与 TS_DSV41_COMPACT_RAW_GATHER 只对原生加载器有意义,在 cpu 上无效。 |
TS_GMTP_NO_FUSED / TS_GMTP_NO_FAST_ROLLBACK / TS_GMTP_BATCHED_TRUNK | Gemma 4 MTP 草稿路径 A/B 开关。 |
TS_QWEN_IMAGE_VAE / TS_QWEN_IMAGE_TE / TS_QWEN_IMAGE_MMPROJ | Qwen-Image-Edit 伴随文件路径(VAE / Qwen2.5-VL 文本编码器 / mmproj)。 |
TS_QWEN_IMAGE_LORA / TS_QWEN_IMAGE_LORA_SCALE | 以运行期旁路形式挂在原封不动的量化权重旁边(不合并)的 Lightning LoRA .safetensors / 缩放覆盖。 |
TS_QWEN_DIT_CACHE / TS_QWEN_DIT_CACHE_MODE | 整步 DiT 缓存:0 禁用 / 模式 easycache、fbc、both、off。 |
TS_VIDEO_VAE / TS_VIDEO_TEXT_ENCODER / TS_VIDEO_AUDIO_VAE / TS_VIDEO_DIT2 | 视频伴随文件路径(= --video-vae / --video-text-encoder / --audio-vae / --video-dit2):视频 VAE、文本编码器(MiniMax-H3 用 Qwen3-VL-32B,Wan 用 UMT5-XXL)、MiniMax-H3 解码音轨所用的音频 VAE,以及 Wan 2.2 A14B 的第二个高/低噪专家 GGUF。 |
TS_WAN_VAE / TS_WAN_TE / TS_WAN_DIT2 | 上面第一、第二与第四项的旧拼写,仍然有效。音频 VAE 没有对应的 TS_WAN_* 名字。 |
TS_VIDEO_TOKENIZER | 存放 MiniMax-H3 的 vocab.json 与 merges.txt 的目录。文本编码器 GGUF 不带分词器,而自动下载只能补全属于命令行选项的东西,所以要从 MiniMaxAI/MiniMax-H3 的 processor/ 取这两个文件,放到编码器旁边或用该变量指向它们所在的目录。 |
TS_H3_TRACE | 1 打印 MiniMax-H3 每个去噪步的潜变量与速度幅值。采样器本身已经会在速度出现非有限值时让请求失败并指出是第几步,而不是写出一个全黑的片段;该变量用于看清幅值是在哪里越出 FP16 范围的。 |
TS_H3_PREFAULT | 顺序读一遍 MiniMax-H3 的去噪器文件,使它的首次上传是从页缓存里做一次拷贝,而不是在 host-to-device 传输内部引发一场缺页风暴(边拷边缺页 0.91 GB/s,页面已常驻时 5.97 GB/s,RTX 3080 Laptop)。默认 3:文本主干交出隐藏状态的那一刻就开始读,并与上传流水线并行,而不是先把它读完再上传。1 为串行;2 与文本条件化重叠 —— 实测更差,因为编码器会把自己的 17 GB 也刷过同一份页缓存,把刚放进去的页挤掉;0 关闭。各模式输出逐字节一致。 |
TS_H3_PREFAULT_THREADS | 预读使用的读取流数(默认 1)。调大在这台机器上实测更差 —— RTX 3080 Laptop、640x384、三次取最好:1 流 63.9 秒、4 流 64.9 秒、16 流 66.6 秒 —— 因为这次读取是与编码器拆解、以及它正在预热的那次上传并发进行的,并非独占整台机器。 |
TS_H3_PHASE | 1 打印 MiniMax-H3 的分阶段耗时:文本编码器 open / 主干 / 拆解、预读、每一个去噪步,以及 VAE open / decode。原有的一行汇总只告诉你哪个阶段慢,它告诉你慢在这个阶段的哪一半。 |
TS_H3_TE_GROUP | <n> 让 MiniMax-H3 那 50 层文本编码器主干按每组 n 层运行,每组结束即交还该组的设备副本。默认关闭:在 16 GB 的 RTX 3080 Laptop 上它确实消除了主干的溢出(峰值 16041 -> 12981 MiB)且逐位一致,但主干是对一段短提示的一次性 prefill,反而慢 3 秒。 |
TS_WAN_DIT_KV_F16 | 0 恢复 Wan DiT 中 F32 的注意力键值。默认使用 F16:单次 27k token 自注意力快 2.02×,DiT 余弦同为 0.999964。 |
TS_WAN_VAE_MPS_CONV | 仅 Metal:0 恢复 Wan VAE 卷积的 ggml im2col+GEMM 下降路径。默认走 MPSGraph(736x544x81f 的一次解码从 159 秒降到 80 秒,数值不变)。 |
TS_WAN_VAE_GEMM_MAX_MB / TS_WAN_VAE_TILE | Wan VAE im2col GEMM 预算(MB,默认按设备可用显存推导),以及用 0 关闭 ~0.5 MP 以上使用的水平分带切块。 |
TS_WAN_METAL_TENSOR_API | 为 Wan DiT 强制开启(1)或关闭(0)Metal 4 tensor API。默认:A14B/14B 级 DiT 开启,TI2V-5B 等较小模型关闭。 |
TS_WAN_DIT_CAPTURE / TS_WAN_DIT_FLASH | 0 分别关闭常驻的 CUDA graph 捕获 Wan DiT 图 / 强制使用物化注意力。两者都更慢,仅用于 A/B 与调试。 |
TS_WAN_HEARTBEAT_S | Wan 进度心跳间隔(秒,默认 30;0 表示不打印)。 |
TS_FFMPEG | 用于写出近无损 MP4 的 ffmpeg 路径(默认使用 PATH 上的 ffmpeg)。 |
TENSORSHARP_TP_DEGREE | 本地张量并行度 —— 模型切分到多少张 GPU(= CLI 与服务端的 --tp)。 |
TENSORSHARP_TP_DEVICES | 各 TP rank 使用的 GPU 序号,例如 0,2(默认 0..tp-1)。用于 GGML 后端。 |
TENSORSHARP_TP_NODE_ID / TENSORSHARP_TP_PEERS | 多节点分布式 TP:0 起始的节点编号与所有节点共用的 host:port 列表(= --tp-node-id / --tp-peers)。 |
TENSORSHARP_TP_CONNECT_TIMEOUT_SECONDS / _RECV_TIMEOUT_SECONDS | 分布式 TP 网格的 peer 连接重试窗口(120 秒)与单次接收超时(300 秒)。 |
TENSORSHARP_TP_DISABLE_P2P / TENSORSHARP_TP_HOST_ALLREDUCE | 1 强制跨 GPU 拷贝 / 本地 AllReduce 走主机内存,而非 CUDA P2P(诊断用)。 |
TS_KV_CACHE_REDIS_URL / TS_KV_CACHE_REDIS_TTL_MINUTES | Redis 支撑的共享 KV 缓存层及其条目 TTL(默认 1440 分钟;0 = 不过期)。 |
TS_RESPONSES_STORE_REDIS_URL | Redis 支撑的 OpenAI Responses API 存储(取代内存存储)。 |
TS_GGML_VULKAN_DEVICE | ggml_vulkan 使用的 Vulkan 设备索引(= --gpu-device)。 |
TS_FUSED_QKNORM_ROPE | 0 禁用 direct cuda 后端中 Qwen 3.5/3.6 文本 prefill 的融合 QK-Norm + RoPE kernel(默认开启)。 |
TS_JSON_FORCE_OPEN | 0 关闭结构化输出的首 token { 约束(json_object / json_schema 默认开启)。 |
TS_MLX_* | MLX 后端调参:流水线 decode、mlock GGUF、融合 KV 写、批量 MoE decode、内存上限。 |
TENSORSHARP_MLX_LIBRARY / _LIBRARY_DIR | 覆盖 libmlxc 的搜索路径。 |
TENSORSHARP_GGML_NO_UPDATE / _GGML_GIT_REF | 在原生构建时跳过 / 固定 ggml 源码克隆。 |
TENSORSHARP_GGML_NATIVE_ENABLE_VULKAN | 在原生构建时强制开启/关闭 GGML Vulkan 后端(ON/OFF = 构建脚本 --vulkan/--no-vulkan)。检测到 Vulkan 运行时时自动启用;显式选择会在重复构建中保持。 |
HTTP 端点
| 方法与路径 | 风格 | 用途 |
|---|---|---|
GET / · GET /index.html | Web UI | 存在 wwwroot 时提供浏览器聊天应用;仅在无 UI 部署中,裸 / 才回退为存活响应。 |
GET /health | 工具 | 稳定的纯文本存活响应。 |
POST /api/generate | Ollama | 单提示补全(流式或非流式)。 |
POST /api/chat/ollama | Ollama | 多轮对话,可选 think / tools / images。 |
GET /api/tags | Ollama | 列出托管模型。 |
POST /api/show | Ollama | 模型信息。 |
POST /v1/chat/completions | OpenAI | Chat Completions(流式、工具、response_format)。 |
POST /v1/responses · GET /v1/responses/{id} | OpenAI | Responses API 生成与已存储响应查询。 |
GET /v1/models | OpenAI | 列出模型。 |
POST /api/chat | Web UI | 带会话 + KV 复用字段的 SSE 聊天流。 |
POST /api/sessions · DELETE /api/sessions/{id} | Web UI | 创建 / 销毁每标签页会话。 |
POST /api/upload | Web UI | 上传图像 / 音频 / 视频 / PDF / 文本文件。 |
GET /v1/skills/{name?} | OpenAI | 列出已注册技能,或读取一个包含说明正文的技能描述。 |
GET /api/skills · GET /api/skills/{name} · GET /api/skills/{name}/files/{*path} | Web UI | 列出/读取技能并安全获取技能所带文件。 |
POST /api/skills · POST /api/skills/rescan · DELETE /api/skills/{name} | Web UI | 安装技能 ZIP、重新扫描根目录或删除已安装技能。 |
GET /api/code/artifacts/{runId} · GET /api/code/artifacts/{runId}/{*path} | Web UI | 列出一次代码运行保留的文件,或强制以附件下载一个文件。 |
POST /api/image-edit | Web UI | Qwen-Image-Edit 单次编辑(multipart 或 JSON)。 |
POST /api/image-edit/stream | Web UI | 带实时去噪预览的 SSE 图像编辑。 |
POST /api/video-generate | Web UI | 用托管模型生成视频(MiniMax-H3、Wan)。JSON { prompt, width, height, frames, steps, cfg, fps, imagePath, videoMode, generateAudio, endImage, referenceImages, referenceVideos, referenceAudios, referenceVideoAudios } —— videoMode、generateAudio、endImage 与四个 reference* 列表同时接受 snake_case 拼写(两者同时出现时以 camelCase 为准);其余字段只接受 camelCase,写成 image_path 之类会被静默忽略。referenceVideoAudios 按下标与 referenceVideos 配对,所有文件字段都必须指向此前通过 /api/upload 上传的文件。返回 MP4 的 URL 以及 audioUrl(模型没有产生音轨时为 null)。模型层面的拒绝(检查点不对、关键帧与参考同时给出)会以 400 返回,并原样带上模型自己的报错信息。 |
POST /api/video-generate/stream | Web UI | 请求体相同,按去噪步以 SSE 推送进度。 |
POST /v1/videos/generations | OpenAI | 同一个解析器之上的 OpenAI 风格信封(size: "640x384");旁挂音轨以 audio_url 返回。 |
GET /api/models | Web UI | 托管模型、支持的后端、默认值。若是视频模型,还会返回一个 video 对象 —— family、supportsAudio、supportsImageConditioning、supportsEndImageConditioning、supportsReferenceConditioning、maxReferenceImages —— 非视频模型下为 null,客户端因此只需判断一个字段,而不必去匹配架构字符串。 |
POST /api/models/load | Web UI | 重新加载启动模型(可切换后端,但不能选择任意新文件)。 |
GET /api/version · GET /api/queue/status | 工具 | 服务器版本 / 遗留队列快照。 |
采样参数
Ollama(options) | OpenAI(顶层) | 默认 | 含义 |
|---|---|---|---|
num_predict | max_tokens | --max-tokens / 20000 | 最大生成 token 数;省略时所有端点都使用服务端默认值。同时接受 OpenAI 的 max_completion_tokens。 |
temperature | temperature | 0.8 | 采样温度(0 = 贪心)。 |
top_k | — | 40 | Top-K 过滤(0 = 禁用)。 |
top_p | top_p | 0.9 | 核采样阈值(1.0 = 禁用)。 |
min_p | — | 0 | 最小概率过滤。 |
repeat_penalty | — | 1.1 | 重复惩罚(1.0 = 关闭)。 |
presence_penalty / frequency_penalty | presence_penalty / frequency_penalty | 0 | 存在 / 频率惩罚。 |
seed | seed | -1 | 随机种子(-1 = 随机)。 |
stop | stop | null | 停止序列。 |
| — | response_format | null | text、json_object 或 json_schema。 |
C# 公共 API
| 成员 | 签名 / 取值 | 说明 |
|---|---|---|
ModelBase.Create | static ModelBase Create(string ggufPath, BackendType backend) | 从 GGUF 元数据自动识别架构。 |
ModelBase.Forward | float[] Forward(int[] tokens) | 返回下一 token 的 logits(长度 = 词表大小)。 |
ModelBase.Sample | int Sample(float[] logits, SamplingConfig config, IList<int> generated = null) | 应用惩罚 + 采样。 |
ModelBase.SampleGreedy | int SampleGreedy(float[] logits) | 确定性 argmax。 |
ModelBase.Config / .Tokenizer | ModelConfig / ITokenizer | Config.VocabSize、上下文长度等。 |
BackendType | Cpu, GgmlCpu, GgmlMetal, GgmlCuda, Cuda, Mlx | 后端选择枚举。 |
ITokenizer.Encode | Encode(string text, bool addSpecial) | 文本 → token id。 |
ITokenizer.Decode | string Decode(List<int> ids) | token id → 文本。 |
ITokenizer.IsEos / .EosTokenIds | bool IsEos(int id) / int[] EosTokenIds | 序列结束检测。 |
SamplingConfig | Temperature、TopK、TopP、MinP、惩罚、Seed、StopSequences、MaxTokens | 见 C# 库。 |
IBatchedPagedModel.ForwardBatch | 批量/分页前向 | 多数架构为连续批处理而实现。 |
REPL 命令
| 命令 | 说明 |
|---|---|
/help、/? | 显示所有交互命令。 |
/exit、/quit | 离开会话。 |
/reset、/new | 清空对话历史与 KV 缓存。 |
/history · /save <file> | 打印 / 追加记录。 |
/system <text> | 设置系统提示(重置 KV 缓存)。 |
/think on|off · /multiline on|off | 切换推理模式 / 多行输入。 |
/info、/status | 显示模型、后端、架构、上下文/词表、投影器、深度。 |
/model <path> · /backend <name> · /mmproj <path> | 热切换模型、后端或投影器。 |
/sampling、/show | 打印当前采样配置。 |
/max · /temp · /topk · /topp · /minp | 设置回复长度 / 温度 / top-k / top-p / min-p。 |
/repeat · /presence · /frequency · /seed | 设置惩罚与随机种子。 |
/stop <text> · /clearstop | 添加 / 清除停止序列。 |
/image · /audio · /video · /text <path> · /clearattach | 为下一轮附加媒体 / 文本;丢弃待发送附件。 |