OpenVINO C# API 3.3.1 已完成对 OpenVINO 2026.3 的适配。对于使用 C# 开发 AI 应用的团队,这次更新最直接的价值有两个:现有 OpenVINO 推理代码可以平滑升级, LLM、Whisper 和视觉语言模型等 GenAI 场景也有了更加完整的 C# 调用方式。
目前 API 与对应平台的 2026.3 runtime 均已发布到 NuGet。开发者不需要单独安装 OpenVINO SDK,也不需要手动复制 native 动态库,只需为项目选择正确的平台包。
这次更新带来了什么
Core 推理保持兼容
OpenVINO 2026.3 的 Core C API 没有引入 ABI 破坏性变化,因此已经使用 Core、CompiledModel、InferRequest 和 Tensor 的项目,升级后通常不需要修改 模型加载和推理代码。
常见的图像分类、目标检测、OCR、语义分割和 NLP 推理流程都可以继续使用:
using OpenVinoSharp;
using Core core = new();
using CompiledModel compiledModel = core.CompileModel("model.xml", "CPU");
using InferRequest request = compiledModel.CreateInferRequest();
request.SetInputTensor(inputTensor);
request.Infer();
using Tensor outputTensor = request.GetOutputTensor();
3.3.1 同时保留了原有 C 风格方法名和 PascalCase 方法名。已有代码可以继续运行, 新项目则可以优先使用 CompileModel()、CreateInferRequest()、SetInputTensor() 和 Infer() 等更符合 C# 习惯的写法。
GenAI 仍然是可选能力
只使用传统推理 API 的应用不会主动加载 openvino_genai_c。只有需要以下能力时, 才需要引入 JYPPX.OpenVINO.GenAI.runtime.*:
- LLM 文本生成,包括 greedy、beam search、top-k、top-p 和流式输出;
- Whisper 语音识别;
- VLM 图片理解与多轮视觉问答;
- Tokenizer、GenerationConfig、性能指标和聊天历史管理。
这使普通推理应用不必承担 GenAI runtime 的包体积和部署依赖,而 GenAI 项目仍然可以 通过同一个 OpenVinoSharp.GenAI 命名空间使用托管 API。
VLM 多轮对话使用 ChatHistory
OpenVINO GenAI 2026.3 正式提供 VLM history 调用入口。OpenVINO C# API 通过 ChatHistory 和 GenerateWithHistory() 暴露这项能力,多轮对话的上下文由应用显式管理。
using OpenVinoSharp;
using OpenVinoSharp.GenAI;
using VLMPipeline pipeline = new(modelDirectory, "CPU");
using ChatHistory history = new();
history.AddUserMessage("这张图片里有什么?");
using VLMDecodedResults first =
pipeline.GenerateWithHistory(history, new[] { imageTensor });
history.AddAssistantMessage(first.GetText());
history.AddUserMessage("其中最显眼的物体是什么颜色?");
using VLMDecodedResults second = pipeline.GenerateWithHistory(history);
history.AddAssistantMessage(second.GetText());
图片通常只需要在第一轮传入,后续问题通过 ChatHistory 延续上下文。流式输出也可以在 GenerateWithHistory() 中传入回调处理。
旧版 StartChat() 和 FinishChat() 暂时保留以兼容已有代码,但已经标记为 [Obsolete]。新项目应直接使用 history API;已有项目也建议在本次升级时完成迁移, 避免继续依赖 OpenVINO GenAI 已弃用的有状态聊天模式。
NuGet 安装与版本选择
建议把 C# API 和 native runtime 明确锁定到本次发布版本,避免构建机或部署环境自动 还原到不一致的 native 版本。
Windows Core 推理项目:
<PackageReference Include="JYPPX.OpenVINO.CSharp.API" Version="3.3.1" />
<PackageReference Include="OpenVINO.runtime.win" Version="2026.3.0" />
Windows GenAI 项目:
<PackageReference Include="JYPPX.OpenVINO.CSharp.API" Version="3.3.1" />
<PackageReference Include="JYPPX.OpenVINO.GenAI.runtime.win" Version="2026.3.0" />
其他系统只需替换 runtime 包名。2026.3 当前提供的平台如下:
| 系统与架构 | Core runtime | GenAI runtime |
|---|---|---|
| Windows x64 | OpenVINO.runtime.win |
JYPPX.OpenVINO.GenAI.runtime.win |
| Ubuntu 24 x64 | OpenVINO.runtime.ubuntu.24-x86_64 |
JYPPX.OpenVINO.GenAI.runtime.ubuntu.24-x86_64 |
| Ubuntu 22 x64 | OpenVINO.runtime.ubuntu.22-x86_64 |
JYPPX.OpenVINO.GenAI.runtime.ubuntu.22-x86_64 |
| Ubuntu 22 ARM64 | OpenVINO.runtime.ubuntu.22-arm64 |
JYPPX.OpenVINO.GenAI.runtime.ubuntu.22-arm64 |
| RHEL 8 x64 | OpenVINO.runtime.rhel8-x86_64 |
JYPPX.OpenVINO.GenAI.runtime.rhel8-x86_64 |
| CentOS 8 x64 | OpenVINO.runtime.centos8-x86_64 |
暂无 2026.3 GenAI 包 |
| macOS Apple Silicon | OpenVINO.runtime.macos-arm64 |
JYPPX.OpenVINO.GenAI.runtime.macos-arm64 |
一个应用通常只应引用目标部署平台对应的 runtime 包。不要同时加入多个 Linux 发行版 或多个 CPU 架构的 native 包,否则会增大产物体积,也可能让发布目录中的 native 文件 发生冲突。
需要注意,OpenVINO GenAI 官方版本号为 2026.3.0.0,对应的 NuGet runtime 包版本统一为 2026.3.0。在 .csproj 中应填写 NuGet 版本,而不是四段式的官方归档版本号。
升级前需要考虑的几件事
1. 区分 Core 与 GenAI 模型
Core 推理可以继续使用 OpenVINO IR、ONNX 等受支持模型;LLMPipeline、 WhisperPipeline 和 VLMPipeline 则需要与 OpenVINO GenAI 兼容的模型目录。仅有一个 普通 ONNX 文件并不等于可以直接传给 GenAI Pipeline。
2. 保持托管包和 runtime 版本匹配
本次推荐组合是:
| 组件 | 推荐版本 |
|---|---|
JYPPX.OpenVINO.CSharp.API |
3.3.1 |
OpenVINO.runtime.* |
2026.3.0 |
JYPPX.OpenVINO.GenAI.runtime.* |
2026.3.0 |
如果应用通过环境变量或系统路径加载自行安装的 OpenVINO,需要检查实际被加载的动态库, 避免旧版系统 runtime 优先于 NuGet 包进入进程。
3. 根据设备准备驱动和插件
代码中的 CPU、GPU、AUTO 等设备名称仍遵循 OpenVINO 的设备规则。runtime 包提供 OpenVINO native 库,但 GPU 是否可用仍取决于操作系统、硬件和驱动环境。升级后建议先 枚举可用设备,再在目标机器上进行一次真实模型推理。
4. 检查发布架构
Windows runtime 当前面向 x64,macOS 2026.3 包面向 Apple Silicon,Linux 则需要同时匹配 发行版和 CPU 架构。项目的 RuntimeIdentifier、容器基础镜像和最终部署机器必须一致。
5. GenAI 项目优先迁移聊天历史 API
如果代码中仍调用 StartChat() 或 FinishChat(),升级后会看到弃用警告。这不是立即的 运行时破坏,但表示该调用方式不再是后续版本的推荐路径。将用户消息和模型回复显式写入 ChatHistory,会让上下文管理、会话持久化和问题排查都更加清晰。
.NET 版本支持
OpenVINO C# API 3.3.1 继续覆盖 .NET Framework 4.6 至 4.8、.NET Core 3.1,以及 .NET 5 至 .NET 10。旧项目可以保持当前目标框架,新项目建议优先选择仍处于支持周期内的 .NET LTS 版本。
无论使用哪个目标框架,native runtime 的操作系统和架构要求都不会改变。框架兼容并不 代表任意平台包都能在当前机器上加载。
总结
OpenVINO C# API 3.3.1 是一次以兼容升级为主的发布:传统 Core 推理代码无需大规模改造, 只要更新 API 和对应 runtime 即可使用 OpenVINO 2026.3;GenAI 用户则可以通过统一的 C# API 完成文本生成、语音识别、视觉理解和基于 ChatHistory 的多轮对话。
对于准备升级的项目,可以按下面的顺序执行:先确认部署平台与架构,再更新 NuGet 版本, 运行现有 Core 推理测试,最后迁移 GenAI 的聊天历史调用。这样可以把 native 版本变化、 业务代码变化和模型问题分开验证。
相关资源: