OpenVINO™ C# API 3.3 全新发布!正式接入 OpenVINO GenAI,C# 本地大模型开发全面启航!

🚀 OpenVINO™ C# API 3.3 全新发布!正式接入 OpenVINO GenAI,C# 本地大模型开发全面启航!

📖 前言

本文简介

本文是 OpenVINO™ C# API 3.3 的新版本发布文章,重点介绍 3.3 相比 3.2 的核心升级:正式接入 OpenVINO GenAI,让 C#/.NET 项目可以直接调用本地 LLM、Whisper 和 VLM 能力

这不是一篇完整教程。后续系列文章会分别展开文本生成、Whisper 语音识别、视觉语言问答、GenAI runtime 包选择和老项目迁移。本文的目标是先把 3.3 的版本价值、能力边界和升级方向讲清楚,让读者快速判断:这个版本为什么值得关注,适合解决什么问题,应该从哪一篇文章继续读下去。

为什么升级到 3.3?

OpenVINO C# API 3.2 主要解决的是:C# 如何稳定、完整地调用 OpenVINO 做传统推理。到了 3.3,项目继续保留这条主线,同时把能力边界向 GenAI 扩展。

3.3 的升级重点可以概括为:

  • 正式接入 OpenVINO GenAI :新增 OpenVinoSharp.GenAI 命名空间,开始覆盖 LLM、Whisper、VLM 等生成式 AI pipeline。
  • C# 直接调用本地大模型:不再必须绕 Python 服务,也不需要把模型推理拆到外部脚本中。
  • GenAI runtime NuGet 化 :通过 JYPPX.OpenVINO.GenAI.runtime.* 管理 native runtime,减少手动拷 DLL 的部署成本。
  • 传统推理保持稳定 :只使用 CoreModelCompiledModelInferRequest 的老项目,不会强制加载 GenAI runtime。
  • 示例和文章同步补齐 :新增 samples/GenAI,并提供文本生成、Whisper、VLM 三类可复现实战文章。
  • 全目标框架继续覆盖 :从 net46net10.0,兼顾老项目和新项目。

适用读者

读者类型 阅读重点 预期收益
3.2 老用户 是否兼容、是否必须安装 GenAI runtime 判断升级风险和迁移路径
C# AI 开发者 LLM、Whisper、VLM 如何进入 .NET 项目 快速了解 3.3 的新能力
桌面/工业软件开发者 离线部署、runtime 管理、本地推理 评估是否能接入现有业务
技术负责人 包支持平台、示例完整度、后续教程 判断技术选型和落地成本
新用户 项目定位、NuGet 安装、示例入口 建立对 OpenVINO C# API 的整体认知

阅读建议

  1. 想快速了解版本价值,先看【一句话总结】和【核心亮点抢先看】。
  2. 想知道新增了哪些功能,重点看【3.3 核心亮点详解】。
  3. 已经在使用 3.2,重点看【老项目是否需要担心】和后续迁移文章。
  4. 想立即运行示例,可以从本文的 TinyLlama 快速体验开始,再阅读第 2 篇文本生成教程。

🌟 核心亮点抢先看

text 复制代码
┌─────────────────────────────────────────────────────────────────────────────┐
│                         OpenVINO™ C# API 3.3 核心亮点                        │
├─────────────────────────────────────────────────────────────────────────────┤
│  🚀 GenAI 正式接入   新增 OpenVinoSharp.GenAI,C# 直接调用本地生成式 AI       │
│  🧠 LLM 文本生成      支持 Greedy、Beam Search、Sampling、Streaming、Chat     │
│  🎙 Whisper 语音识别  支持本地 WAV 转写、语言设置和时间戳分段                 │
│  🖼 VLM 图文问答      支持图片 Tensor + Prompt 的视觉语言模型调用             │
│  📦 Runtime NuGet     GenAI runtime 平台包发布,减少手动部署 native DLL       │
│  🧩 老项目友好        传统推理不强制加载 GenAI runtime,可按需升级             │
│  🎯 全框架覆盖        net46 到 net10.0,兼顾 .NET Framework 与现代 .NET        │
└─────────────────────────────────────────────────────────────────────────────┘

📢 写在前面:C# 本地大模型开发,终于可以更自然了

在很多真实项目里,C# 仍然是主力工程语言:桌面软件、工业上位机、视觉检测系统、企业内网工具、ASP.NET Core 服务、边缘设备应用,都大量运行在 .NET 生态里。

过去,当这些项目想接入大模型能力时,常见做法是:

  • C# 程序调用 Python 服务;
  • 通过命令行脚本间接运行模型;
  • 把推理逻辑拆到另一个进程;
  • 或者手动封装 native DLL,自己处理依赖加载。

这些方案能用,但工程成本不低。服务部署、进程通信、模型路径、运行时依赖、日志排错、版本锁定,都会变成额外工作。

OpenVINO C# API 3.3 的目标,就是让 C# 开发者可以用更贴近 .NET 工程习惯的方式使用 OpenVINO GenAI。

text 复制代码
C# 应用代码
    ↓
OpenVinoSharp.GenAI
    ↓
OpenVINO GenAI runtime
    ↓
本地 LLM / Whisper / VLM 模型

你仍然写 C#,仍然通过 NuGet 管理包,仍然用 using 管理资源,只是在 3.3 中,文本生成、语音识别、图文问答这些 GenAI 能力开始进入同一个 API 体系。


🎯 一句话总结

text 复制代码
OpenVINO C# API 3.3
= 3.2 的稳定传统推理能力
+ OpenVINO GenAI 托管封装
+ GenAI runtime NuGet 平台包
+ LLM / Whisper / VLM 示例工程
+ 面向 C# 开发者的完整教程系列

如果说 3.2 是一次"传统推理能力的全栈强化",那么 3.3 就是一次"从传统推理走向本地 GenAI 应用"的关键升级。


📊 3.2 与 3.3 对比一览

能力维度 OpenVINO C# API 3.2 OpenVINO C# API 3.3 升级价值
项目定位 传统 OpenVINO 推理封装 核心推理 + GenAI 能力入口 ⭐⭐⭐⭐⭐
GenAI 支持 未系统覆盖 新增 OpenVinoSharp.GenAI ⭐⭐⭐⭐⭐
LLM 文本生成 无完整 C# 示例 Greedy、Beam、Sampling、Streaming、Chat ⭐⭐⭐⭐⭐
Whisper 语音识别 未覆盖 新增 Whisper pipeline 示例 ⭐⭐⭐⭐
VLM 图文问答 未覆盖 新增图片 + 文本 prompt 示例 ⭐⭐⭐⭐
runtime 管理 基础 OpenVINO.runtime.* 新增 JYPPX.OpenVINO.GenAI.runtime.* ⭐⭐⭐⭐⭐
老项目兼容 支持传统推理 传统推理继续稳定,GenAI 按需启用 ⭐⭐⭐⭐⭐
示例体系 YOLO 等传统示例 新增 samples/GenAI 示例树 ⭐⭐⭐⭐⭐
文档教程 安装、API、传统案例 增加 GenAI 系列实战文章 ⭐⭐⭐⭐⭐
目标框架 覆盖 .NET Framework 与现代 .NET 继续覆盖 net46net10.0 ⭐⭐⭐⭐⭐

✨ 3.3 核心亮点详解

1️⃣ 正式接入 OpenVINO GenAI:C# 不再只是传统推理入口

3.3 新增了 OpenVinoSharp.GenAI 命名空间,把 OpenVINO GenAI C API 的核心能力封装成 C# 类型。

主要新增类型包括:

作用
GenAI GenAI runtime 初始化与可用性检查
GenerationConfig 文本生成配置
LLMPipeline LLM 文本生成 pipeline
DecodedResults 文本生成结果
PerformanceMetrics 性能指标
WhisperPipeline Whisper 语音识别 pipeline
WhisperGenerationConfig Whisper 生成配置
WhisperDecodedResults Whisper 识别结果
VLMPipeline 视觉语言模型 pipeline
VLMDecodedResults VLM 输出结果

最小文本生成代码大致如下:

csharp 复制代码
using OpenVinoSharp.GenAI;

using GenerationConfig config = new();
config.SetMaxNewTokens(64);

using LLMPipeline pipeline = new(modelDir, "CPU");
using DecodedResults results = pipeline.Generate("What is OpenVINO?", config);

Console.WriteLine(results.GetText());

这段代码展示了 3.3 最核心的体验:C# 对象 + NuGet runtime + 本地模型目录 + using 资源管理

后续第 2 篇文章会专门展开 LLM 文本生成,包括 Greedy、Beam Search、Multinomial Sampling、Streaming 和 Chat。


2️⃣ LLM 文本生成:从 smoke test 到聊天应用的基础能力

3.3 新增的文本生成示例覆盖多个典型场景:

示例 场景
Greedy 稳定、确定性的文本生成,适合 smoke test
BeamSearch 多候选路径搜索,适合更稳定的生成任务
Multinomial temperature、top-p、top-k 采样,适合开放式输出
Streaming 逐 token 输出,适合聊天窗口和长文本生成
Chat 支持交互式输入和 --turn 脚本化对话
Benchmark 输出 TTFT、TPOT、吞吐等性能指标

其中 Chat 示例已经加入中文 prompt 验证路径,适合自动化测试:

powershell 复制代码
dotnet run --project samples/GenAI/TextGeneration/Chat/Chat.csproj --framework net8.0 -- `
  --model E:\LlmModel\TinyLlama-1.1B-Chat-v1.0-int4-ov `
  --device CPU `
  --turn "请用中文列出三个 OpenVINO 关键词。"

需要注意的是,C# 编码链路能正确传递中文,并不代表所有模型都有稳定中文能力。TinyLlama 适合作为轻量验证模型;正式中文应用建议选择中文或多语能力更强的 OpenVINO 模型。


3️⃣ Whisper 语音识别:本地音频转写进入 .NET 应用

3.3 新增 WhisperPipeline 示例,演示如何在 C# 中加载 OpenVINO 格式 Whisper 模型,把 16 kHz mono WAV 转成文本,并输出时间戳分段。

典型调用流程:

csharp 复制代码
float[] samples = WavFile.ReadMonoFloat(audio, 16000);

using WhisperPipeline pipeline = new(model, device);
using WhisperGenerationConfig config = pipeline.GetGenerationConfig();

config.SetLanguage("<|en|>");
config.SetTask("transcribe");
config.SetReturnTimestamps(true);

using WhisperDecodedResults results = pipeline.Generate(samples, config);
Console.WriteLine(results.GetString());

这个能力适合:

  • 离线语音识别;
  • 会议音频预处理;
  • 桌面软件语音输入;
  • 工业现场本地转写;
  • 内网环境下不出网的语音文本化。

第 3 篇文章会详细讲模型准备、音频转换、WAV 读取、timestamp chunks 和常见错误。


4️⃣ VLM 视觉语言问答:图片 + Prompt 的多模态入口

3.3 也新增了 VLM 示例,用 C# 把图片加载成 OpenVINO Tensor,再和文本 prompt 一起送入 VLMPipeline

核心代码大致如下:

csharp 复制代码
using Tensor imageTensor = ImageTensorLoader.LoadRgbTensor(image);
using GenerationConfig config = GenAISample.CreateTextConfig(maxNewTokens);
using VLMPipeline pipeline = new(model, device);

using VLMDecodedResults results = pipeline.Generate(
    prompt,
    new[] { imageTensor },
    config);

Console.WriteLine(results.GetText());

这个方向可以扩展到:

  • 图片内容描述;
  • 工业检测结果解释;
  • 文档截图理解;
  • 设备状态问答;
  • 本地多模态助手。

第 4 篇文章会进一步讲图片 Tensor、RGB BMP/PPM 输入、中文 VLM prompt 和交互式问答。


5️⃣ GenAI Runtime NuGet:部署不再靠手动拷 DLL

OpenVINO GenAI 不是只有一个 openvino_genai_c.dll。一个正常运行的 GenAI 应用,还需要 OpenVINO core runtime、tokenizers、plugins、frontends、TBB 等 native 依赖。

3.3 对使用者最直接的改进是:GenAI runtime 可以通过平台 NuGet 包引入。

Windows GenAI 项目示例:

xml 复制代码
<ItemGroup>
  <PackageReference Include="JYPPX.OpenVINO.CSharp.API" Version="3.3.0" />
  <PackageReference Include="JYPPX.OpenVINO.GenAI.runtime.win" Version="2026.2.0" />
</ItemGroup>

当前 2026.2.0 GenAI runtime 包覆盖:

平台 GenAI runtime 包
Windows x64 JYPPX.OpenVINO.GenAI.runtime.win
Ubuntu 24 x64 JYPPX.OpenVINO.GenAI.runtime.ubuntu.24-x86_64
Ubuntu 22 x64 JYPPX.OpenVINO.GenAI.runtime.ubuntu.22-x86_64
Ubuntu 22 ARM64 JYPPX.OpenVINO.GenAI.runtime.ubuntu.22-arm64
RHEL 8 x64 JYPPX.OpenVINO.GenAI.runtime.rhel8-x86_64
macOS ARM64 JYPPX.OpenVINO.GenAI.runtime.macos-arm64

如果项目需要 GenAI,通常使用对应平台的 JYPPX.OpenVINO.GenAI.runtime.* 即可。GenAI runtime 包已经包含 GenAI 所需的 OpenVINO native 依赖,不建议在同一个项目里再同时引用基础 OpenVINO.runtime.* 包。

第 5 篇文章会专门讲:平台包怎么选、必要 DLL 有哪些、常见加载错误怎么排查。


6️⃣ 老项目友好:传统推理不被 GenAI 绑架

3.3 不是一次"强制所有项目接入 GenAI"的升级。

如果你的项目只使用传统 OpenVINO 推理,例如:

  • Core
  • Model
  • Tensor
  • CompiledModel
  • InferRequest

那么仍然可以只安装基础 runtime:

xml 复制代码
<ItemGroup>
  <PackageReference Include="JYPPX.OpenVINO.CSharp.API" Version="3.3.0" />
  <PackageReference Include="OpenVINO.runtime.win" Version="2026.2.0" />
</ItemGroup>

只有当项目调用 OpenVinoSharp.GenAI 下的 API 时,才需要切换到对应平台的 GenAI runtime 包。

这对 3.2 老用户很关键:你可以先升级 API 包,验证原有推理路径稳定,再决定是否引入 GenAI。


7️⃣ 全框架覆盖:从 .NET Framework 4.6 到 .NET 10.0

JYPPX.OpenVINO.CSharp.API 3.3.0 同时打包以下目标框架:

text 复制代码
net46
net461
net462
net47
net471
net472
net48
net481
netcoreapp3.1
net5.0
net6.0
net7.0
net8.0
net9.0
net10.0

这意味着:

  • 老的 .NET Framework 桌面项目可以继续升级;
  • 新项目可以直接使用 .NET 8、.NET 9、.NET 10;
  • 同一套 API 包可以覆盖更多企业项目和边缘部署场景。

🧪 示例体系:新增 samples/GenAI

3.3 新增完整的 GenAI 示例目录:

text 复制代码
samples/GenAI
├── Common
├── TextGeneration
│   ├── Greedy
│   ├── BeamSearch
│   ├── Multinomial
│   ├── Streaming
│   ├── Chat
│   └── Benchmark
├── WhisperSpeechRecognition
├── VisualLanguageChat
├── README.md
├── RUNBOOK.md
└── RunAllSamples.ps1

这些示例不是空壳 demo,而是配套了:

  • 公共参数解析;
  • runtime 可用性检查;
  • WAV 读取;
  • BMP/PPM 图片 Tensor 加载;
  • 性能指标打印;
  • 批量验证脚本;
  • 中文 prompt 自动化验证。

本地完整验证脚本会依次运行 LLM、Chat、Whisper、VLM 等多个场景,并保存日志,便于文章复现和 CI 验证。


⚡ 快速体验:TinyLlama 文本生成

准备模型路径:

powershell 复制代码
cd E:\GitSpace\OpenVINO-CSharp-API-csharp3.3\OpenVINO-CSharp-API

$modelRoot = "E:\LlmModel"
$llm = Join-Path $modelRoot "TinyLlama-1.1B-Chat-v1.0-int4-ov"

运行 Greedy 示例:

powershell 复制代码
dotnet run --project samples/GenAI/TextGeneration/Greedy/Greedy.csproj --framework net8.0 -- `
  --model $llm `
  --device CPU `
  --prompt "What is OpenVINO?" `
  --max-new-tokens 24

本机实测输出:

示例会输出生成文本和性能指标,包括 load time、TTFT、TPOT、throughput 等,方便后续做设备对比、版本验证和参数调优。


🎯 适合哪些项目关注?

OpenVINO C# API 3.3 尤其适合这些方向:

  • C# 桌面 AI 助手;
  • 工业视觉系统中的本地文本解释;
  • 离线语音识别工具;
  • 内网知识库前端;
  • 本地多模态问答应用;
  • 需要固定 runtime 版本的企业级部署;
  • 已经使用 OpenVINO C# API 3.2 的老项目。

如果你的项目本来就在 .NET 生态中,又希望把本地 AI 能力接进来,3.3 会比"C# 调 Python 服务"更接近工程化方案。


⚠️ 已知说明

当前阶段仍有一些需要说明的地方:

  • GenAI runtime 多平台包依赖上游 OpenVINO GenAI 官方发布物情况。
  • VLM 输出对模型、图片和 runtime 组合更敏感,正式演示建议使用语义明确的真实图片。
  • RAG、图像生成、视频生成等 pipeline 尚未作为 C# 示例加入。
  • 传统核心推理仍保持主线能力,GenAI 不会强制影响传统项目。

这些内容会在后续 runtime 使用指南和迁移文章中展开。


🚀 总结:从传统推理封装,迈向 .NET 本地 AI 工具箱

OpenVINO C# API 3.3 的价值,可以概括为三点:

  1. 它把 OpenVINO GenAI 正式带进 C#/.NET 生态。
  2. 它让 LLM、Whisper、VLM 有了可运行、可教学、可迁移的示例工程。
  3. 它通过可选 runtime 设计,让 3.2 老项目可以平滑升级。

从 3.2 到 3.3,OpenVINO C# API 不再只是传统推理封装,而是在向完整的 .NET 本地 AI 工具箱 演进。

下一篇,我们从最容易跑通、最适合展示的场景开始:用 C# 调用 TinyLlama,完成第一个 OpenVINO GenAI 文本生成示例。


📚 更多资源

资源 链接
📖 完整文档 https://guojin-yan.github.io/OpenVINO-CSharp-API
💻 示例代码 https://github.com/guojin-yan/OpenVINO-CSharp-API/tree/csharp3.3/samples
📦 NuGet 包 https://www.nuget.org/packages/JYPPX.OpenVINO.CSharp.API
🐛 问题反馈 https://github.com/guojin-yan/OpenVINO-CSharp-API/issues
💬 技术交流 QQ群:945057948

📢软件声明

1. 开源协议声明

作者所有开源项目代码均遵循 Apache License 2.0 开源协议。

特别说明:本项目集成了若干第三方库。若任何第三方库的许可协议与 Apache 2.0 协议存在冲突或不一致,均以该第三方库的原始许可协议为准。本项目不包含也不代表这些第三方库的授权声明,使用前请务必阅读并遵守第三方库的相关许可。

2. 代码开发与质量说明

  • AI 辅助开发:本代码在开发过程中使用了人工智能(AI)辅助生成与优化,并非完全由人工逐行编写。
  • 安全性承诺作者郑重声明,本代码中绝无任何有意设置的后门、病毒、木马或旨在破坏用户设备、窃取数据的恶意代码。
  • 技术局限性:受限于作者个人的技术水平与能力,代码中可能存在因逻辑不严谨、优化不足或经验欠缺导致的低级问题(例如但不限于内存泄漏、偶发崩溃、资源未释放等)。这些问题纯属能力不足所致,并非主观故意。
  • 测试范围:由于作者精力有限,未对本软件进行全方位、覆盖所有边缘场景的完整测试。

3. 免责声明(重要)

请在将本代码应用于任何实际项目(特别是商业、工业或关键任务环境)之前,务必进行详尽、严格的自行测试与验证。 鉴于上述可能存在的代码缺陷及测试覆盖不足,因使用本代码而导致的任何直接或间接损失(包括但不限于设备故障、数据丢失、系统瘫痪或利润损失等),本作者概不负责。 一旦您开始使用本代码,即表示您已知晓上述风险并同意自行承担一切后果,相关问题与本作者无关。

4. 代码开源范围

本项目承诺核心逻辑代码完全开源,但上述提到的"第三方库"的二进制文件、源代码或相关资源不在本项目的开源义务范围内,请根据其各自的指引获取。

5. 社区与反馈

尽管存在上述不足,我们仍欢迎大家下载使用、提交 Issue 或参与测试,共同完善项目。如果您在使用过程中发现 Bug、内存溢出或有改进建议,欢迎通过项目主页提供的联系方式与作者取得联系,我们将尽力在有限的时间内提供协助。

Copyright © 2026 Guojin Yan. All Rights Reserved.