本文是 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 三类可复现实战文章。
  • 全目标框架继续覆盖:从 net46 到 net10.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 篇文本生成教程。

🌟 核心亮点抢先看

┌─────────────────────────────────────────────────────────────────────────────┐
│                         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。

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

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


🎯 一句话总结

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 继续覆盖 net46 到 net10.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 输出结果

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

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 验证路径,适合自动化测试:

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 转成文本,并输出时间戳分段。

典型调用流程:

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

核心代码大致如下:

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 项目示例:

<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:

<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 同时打包以下目标框架:

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 示例目录:

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 文本生成

准备模型路径:

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 示例:

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

本机实测输出:

TinyLlama greedy output

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


🎯 适合哪些项目关注?

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐