本文是 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 的部署成本。
  • 传统推理保持稳定:只使用 Core、Model、CompiledModel、InferRequest 的老项目,不会强制加载 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.2OpenVINO 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# 类型。

主要新增类型包括:

类作用
GenAIGenAI runtime 初始化与可用性检查
GenerationConfig文本生成配置
LLMPipelineLLM 文本生成 pipeline
DecodedResults文本生成结果
PerformanceMetrics性能指标
WhisperPipelineWhisper 语音识别 pipeline
WhisperGenerationConfigWhisper 生成配置
WhisperDecodedResultsWhisper 识别结果
VLMPipeline视觉语言模型 pipeline
VLMDecodedResultsVLM 输出结果

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

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多候选路径搜索,适合更稳定的生成任务
Multinomialtemperature、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 x64JYPPX.OpenVINO.GenAI.runtime.win
Ubuntu 24 x64JYPPX.OpenVINO.GenAI.runtime.ubuntu.24-x86_64
Ubuntu 22 x64JYPPX.OpenVINO.GenAI.runtime.ubuntu.22-x86_64
Ubuntu 22 ARM64JYPPX.OpenVINO.GenAI.runtime.ubuntu.22-arm64
RHEL 8 x64JYPPX.OpenVINO.GenAI.runtime.rhel8-x86_64
macOS ARM64JYPPX.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 等,方便后续做设备对比、版本验证和参数调优。


🎯 适合哪些项目关注?

更多推荐