OpenVINO C# API 3.3.1 已完成对 OpenVINO 2026.3 的适配。此次更新为 C# AI 开发团队带来两大核心价值:现有推理代码可平滑升级,且 LLM、Whisper 及视觉语言模型等 GenAI 场景拥有了更完整的 C# 调用支持。
目前 API 与对应平台的 2026.3 runtime 均已发布至 NuGet。开发者无需单独安装 OpenVINO SDK 或手动复制 native 动态库,仅需为项目选择正确的平台包即可。
01这次更新带来了什么
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 已弃用的有状态聊天模式。
02NuGet 安装与版本选择
建议将 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 版本,而非四段式的官方归档版本号。
03升级前需要考虑的几件事
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,会让上下文管理、会话持久化和问题排查更加清晰。
04.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 的操作系统和架构要求都不会改变。框架兼容并不代表任意平台包都能在当前机器上加载。
05总结
OpenVINO C# API 3.3.1 是一次以兼容升级为主的发布:传统 Core 推理代码无需大规模改造,只要更新 API 和对应 runtime 即可使用 OpenVINO 2026.3;GenAI 用户则可以通过统一的 C# API 完成文本生成、语音识别、视觉理解和基于 ChatHistory 的多轮对话。
对于准备升级的项目,建议按以下顺序执行:先确认部署平台与架构,再更新 NuGet 版本,运行现有 Core 推理测试,最后迁移 GenAI 的聊天历史调用。这样可以将 native 版本变化、业务代码变化和模型问题分开验证。

