概览与架构

TensorSharp 在本地加载 GGUF 模型,通过 .NET 应用提供推理。命令行、HTTP 服务与 TensorAgent 共用引擎能力,但宿主进入引擎的路径不同。

先选择你的入口

两条宿主路径,共用运行时能力

下图表示常规自回归文本生成。CLI 有自己的提示词与工具循环;服务端和 TensorAgent 使用与宿主无关的 Chat 层。两条路径最终都能使用 Runtime 的推理调度。

宿主负责交互;Runtime 负责安排模型执行

命令行路径

  1. CLI / REPL自己的提示词与交互循环
  2. CliInferenceSession直接提交序列
  3. TensorSharp.RuntimeInferenceEngine

引用 Chat 程序集不代表请求经过 Chat 流水线。

聊天宿主路径

  1. Server / TensorAgentHTTP 适配器或本地应用宿主
  2. TensorSharp.Chat会话、生成、流式协议
  3. TensorSharp.RuntimeInferenceEngine

Chat 不依赖 ASP.NET Core;Server 在其外层处理 HTTP。

模型执行所用的组件

  1. Models模型架构与多模态编码器
  2. Core 与后端张量、运算与专用执行器
  3. CPU / GPU按模型与设备选择实际实现

图的文字版:CLI → CliInferenceSession → Runtime;Server / TensorAgent → Chat → Runtime。运行时调用模型实现,模型通过 Core、后端或专用执行器完成计算。这是职责关系图,不是所有请求都必经的统一调用栈。源码依据 →

按需组合:AgentHost 为宿主提供技能、工具、沙箱与有界智能体循环,Runtime 不反向依赖它。Knowledge 是独立的个人知识存储,可由 Chat、AgentHost 与宿主集成。

一次文本请求如何运行

  1. 加载模型:读取 GGUF 元数据、选择架构,按后端能力绑定权重。生成模型通常由 ModelBase.Create() 分发。
  2. 准备输入:按模型的 ChatProtocol、聊天模板与分词器处理消息;有多模态能力时先编码相应附件。
  3. Prefill:计算尚未缓存的提示词,建立请求的状态。长提示可能分块处理,复用范围受缓存与会话策略约束。
  4. Decode 与流式返回:调度器推进序列,模型计算候选 token,采样器选择输出,宿主把结果转成终端文本或 API 事件。

连续批处理可交错推进请求,但缓存形态因模型而异:有分页 KV,也有原生序列槽位或循环状态。推测解码同样依赖模型、放置方式与草稿器。调度与缓存 · 推测解码

其他工作负载走专门路径:扩散文本与图像/视频模型执行迭代去噪,不遵循逐 token decode;句子编码器通过 EmbeddingModel.Load() 加载。见模型指南与嵌入指南。

按问题找到下一份文档

你想弄清什么下一步
我该引用哪个项目?C# 包与项目边界
在哪个目录扩展模型?源码目录图与架构扩展接口
模型如何使用设备?后端与专用执行器
缓存、批处理与多 GPU 如何组合?高级功能与多 GPU / 多节点

先确认支持与验证边界

一种能力能被配置,不等于每个模型、量化、后端和设备都验证过。通用算子可以回退到 CPU;专用执行器有明确的要求,不支持的组合可能在加载时被拒绝。

先查模型支持表与后端选择表,再按目标工作负载阅读模型卡。保留的能力与实现细节列出了工具、安全、模态、缓存和多 GPU 的限定;源码与发行版本说明保留了原有分发信息。

商业价值

对评估本地推理的决策者而言,核心权衡是用运行自己的硬件换取掌控力与成本。

🔒

数据隐私与合规

本地推理与知识库存储在自己的硬件上运行。下载、启用网络的工具与显式配置的外部伴随服务遵循宿主配置。

💸

成本可预测

没有按 token 计费的 API。容量受限于你本就已预算的硬件。

🧩

无供应商锁定

来自 Hugging Face 的开放 GGUF 模型,以及现有工具已支持的 OpenAI / Ollama 兼容接口。

🏗️

.NET 原生集成

将推理嵌入现有 C# 服务,而非桥接到外部运行时。

📈

单机即可扩展

连续批处理用单个托管模型服务大量并发用户。

🔁

轻松迁移

把现有 OpenAI SDK 代码指向 http://localhost:5000/v1,应用无需改动。

兼容 API 仍有端点和字段差异;本地推理也需要你管理模型、内存与设备。下载、联网工具与外部伴随服务遵循宿主配置。API 兼容范围 · 工具与沙箱边界