概览与架构
TensorSharp 在本地加载 GGUF 模型,通过 .NET 应用提供推理。命令行、HTTP 服务与 TensorAgent 共用引擎能力,但宿主进入引擎的路径不同。
先选择你的入口
- 运行一个提示词或调试模型:CLI 提供单次生成、REPL、JSONL 批处理和基准命令。
- 通过浏览器或现有客户端调用:Server 提供 Web UI,以及 OpenAI / Ollama 兼容 API。兼容范围见接口参考。
- 使用本地应用:TensorAgent 组合聊天、模型管理与个人知识库;平台和发布包的验证范围各不相同。
- 嵌入自己的 C# 程序:从最小示例开始,只引用所需项目。
两条宿主路径,共用运行时能力
下图表示常规自回归文本生成。CLI 有自己的提示词与工具循环;服务端和 TensorAgent 使用与宿主无关的 Chat 层。两条路径最终都能使用 Runtime 的推理调度。
命令行路径
- CLI / REPL自己的提示词与交互循环
- CliInferenceSession直接提交序列
- TensorSharp.RuntimeInferenceEngine
引用 Chat 程序集不代表请求经过 Chat 流水线。
聊天宿主路径
- Server / TensorAgentHTTP 适配器或本地应用宿主
- TensorSharp.Chat会话、生成、流式协议
- TensorSharp.RuntimeInferenceEngine
Chat 不依赖 ASP.NET Core;Server 在其外层处理 HTTP。
模型执行所用的组件
- Models模型架构与多模态编码器
- Core 与后端张量、运算与专用执行器
- CPU / GPU按模型与设备选择实际实现
图的文字版:CLI → CliInferenceSession → Runtime;Server / TensorAgent → Chat → Runtime。运行时调用模型实现,模型通过 Core、后端或专用执行器完成计算。这是职责关系图,不是所有请求都必经的统一调用栈。源码依据 →
按需组合:AgentHost 为宿主提供技能、工具、沙箱与有界智能体循环,Runtime 不反向依赖它。Knowledge 是独立的个人知识存储,可由 Chat、AgentHost 与宿主集成。
一次文本请求如何运行
- 加载模型:读取 GGUF 元数据、选择架构,按后端能力绑定权重。生成模型通常由
ModelBase.Create()分发。 - 准备输入:按模型的
ChatProtocol、聊天模板与分词器处理消息;有多模态能力时先编码相应附件。 - Prefill:计算尚未缓存的提示词,建立请求的状态。长提示可能分块处理,复用范围受缓存与会话策略约束。
- 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 兼容范围 · 工具与沙箱边界