Tomur:基于.NET的开源本地AI运行时与开发者工作台

AI新闻 97ai
65

一、Tomur是什么

Tomur 是 IoTSharp 组织推出、基于 .NET 10 和 C# 开发的开源本地AI运行时与开发者工作台,主打离线优先、数据本地留存,面向.NET开发者、边缘设备场景搭建本地大模型推理能力。

项目同时提供两套推理后端,既拥有纯C#原生模型推理实现,也可对接成熟 llama.cpp 生态,可作为命令行工具、HTTP推理服务、系统后台服务、Web对话工作台运行,兼顾本地聊天、模型管理、程序API调用等多种需求,也是 IoTSharp 物联网体系在边缘AI方向的配套组件,方便在物联网网关、边缘设备上接入本地大模型能力。

二、功能特色

  1. 双推理后端可选
    内置两套推理提供程序,按需切换。纯C#托管方案无需原生二进制依赖,直接读取safetensors模型;llama.cpp后端支持GGUF模型,附带语音识别、语音合成、图像生成等多模态能力。

  2. 多形态部署模式
    单程序支持CLI交互、HTTP推理API服务、Windows/Linux后台服务、Web对话工作台四种运行形态,一套程序满足开发调试、对外接口、常驻后台、可视化对话需求。

  3. 本地私密推理
    所有对话、向量数据默认在本地设备运算,不上传云端,适合敏感业务、内网离线环境使用,内置Embedding向量生成与重排能力,支持本地知识库检索。

  4. 模型资产管理与诊断
    自带模型包拉取、版本管理、运行状态监控、推理诊断能力,简化本地模型下载、切换、故障排查流程。

  5. .NET生态原生适配
    项目原生C#开发,和.NET项目集成成本低,方便.NET开发者直接在自有应用、物联网边缘程序嵌入本地大模型能力。

Tomur(图1)

三、技术细节

Tomur 基于 .NET 10 构建,采用模块化 Provider 架构,分离模型加载、张量运算、推理服务、Web界面模块。

  • 纯C# Provider:原生实现 safetensors 文件解析、分词器、张量运算、量化内核、KV Cache、Attention、MoE路由逻辑,原生支持GLM、OLMoE系列模型,全程不依赖第三方原生推理库,方便跨平台移植到受限边缘设备。

  • llama.cpp Provider:底层复用 llama.cpp 成熟C++推理内核,支持GGUF量化模型,支持CPU/GPU硬件加速,自动降级CPU运行;额外扩展语音ASR、TTS语音合成、图像生成多模态能力,同时提供Embedding向量生成、Rerank重排。

  • 对外服务层:内置HTTP服务,提供兼容OpenAI风格的推理接口;Web前端工作台集成聊天界面、模型管理面板;CLI命令行工具支持模型拉取、服务启动、本地对话等命令;支持部署为系统后台服务,长期驻机运行。

  • 架构特点:组件解耦,新增模型Provider无需改动主体框架,适配边缘低算力设备与PC工作站。

四、应用场景

  1. .NET软件开发本地AI集成
    C#/NET项目需要嵌入离线大模型能力,不想依赖云API,可接入Tomur本地HTTP接口,实现私有文档问答、代码助手。

  2. 物联网边缘网关AI增强
    IoTSharp物联网网关配套使用,在边缘设备本地做设备数据分析、告警语义识别、本地指令推理,不需要把设备数据上传公网。

  3. 企业内网离线知识库
    内网无外网环境,部署本地向量检索+大模型,处理企业内部文档、资料问答,保证敏感文档不外流。

  4. 个人隐私本地AI工作台
    个人电脑本地离线聊天,撰写文案、代码,对话数据全部保存在本机,满足隐私需求。

  5. 嵌入式/低算力边缘设备原型验证
    使用纯C#推理后端,在资源受限设备上做模型推理原型开发。

五、使用方法

前置依赖

安装 .NET 10 SDK,Windows / Linux 操作系统均可。

基础操作步骤

  1. 克隆项目代码

git clone https://github.com/IoTSharp/Tomur.git
cd Tomur
  1. 编译项目,构建Tomur主程序

  2. 准备原生运行环境,拉取推荐模型包

tomur native prepare
tomur pull recommended
  1. 启动Web工作台,同时开启HTTP服务

tomur serve --open

执行后自动打开Web对话页面,可直接网页聊天;其他程序可以调用本机HTTP推理接口。
5. CLI模式直接对话

tomur open

进入命令行交互式聊天。

六、竞品对比

选取 Ollama、llama.cpp 两个主流本地大模型工具进行对比。

对比维度 Tomur Ollama llama.cpp
开发语言 C# / .NET10,双推理后端 Go语言封装,底层llama.cpp C++原生推理库
核心特色 纯C#原生推理+llama.cpp双后端;原生适配.NET与物联网边缘场景 开箱即用,命令行极简,GGUF模型生态完善 高性能底层推理内核,高度可定制调参
WebUI 内置Web对话工作台 无内置WebUI,需搭配第三方前端 无内置WebUI,需单独启动服务+前端
多模态能力 llama.cpp后端支持语音识别、语音合成、图生图 仅文本、Embedding,多模态需要额外扩展 仅基础文本推理,多模态需自行扩展组件
.NET集成 原生C#开发,对接.NET项目友好 通过HTTP API调用,无原生SDK HTTP调用,C++接口,.NET集成需要封装
边缘物联网适配 原生面向IoTSharp边缘网关场景 通用PC本地推理,边缘支持一般 适合嵌入式,但集成开发工作量大

七、常见问题解答

Q:Tomur必须使用GPU才能运行吗?

A:不需要。Tomur支持CPU推理,GPU仅作为加速选项;硬件不足时会自动降级到CPU运行,只是推理速度会下降。

Q:纯C#后端和llama.cpp后端应该怎么选择?

A:如果你的项目是.NET应用、部署在资源受限边缘设备,希望减少原生二进制依赖,优先选择纯C# Provider;如果追求成熟稳定、想要语音、图像多模态能力,直接使用llama.cpp后端。

Q:Tomur支持哪些模型格式?

A:纯C#后端支持 safetensors 格式GLM、OLMoE模型;llama.cpp后端支持GGUF量化模型,同时支持Embedding向量模型。

Q:Tomur的HTTP接口是否兼容OpenAI接口格式?

A:是的,内置HTTP推理服务兼容OpenAI风格API,大部分对接OpenAI接口的客户端可以直接接入Tomur。

Q:Tomur可以在没有外网的内网环境使用吗?

A:可以,模型提前下载完成之后,Tomur全部推理运算本地完成,不需要外网连接,适合离线内网场景。

Q:Tomur和IoTSharp物联网平台是什么关系?

A:Tomur是IoTSharp组织下独立开源项目,定位边缘AI运行时,可和IoTSharp物联网平台配合使用,给边缘网关增加本地AI能力,二者并非强制绑定。

八、相关链接

九、总结

Tomur是面向.NET生态的开源本地AI运行时工作台,独创双推理后端架构,兼顾纯C#跨平台轻量化推理与llama.cpp成熟多模态能力,自带Web对话界面、HTTP服务与模型管理工具,尤其适合.NET开发者、物联网边缘场景搭建离线本地大模型,在隐私内网、边缘设备本地AI开发场景,提供了区别于其他本地LLM工具的差异化方案。

打赏
THE END
作者头像
97ai
我不是在训练模型,而是在与未来的自己对话。