🚀 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 篇文本生成教程。

🌟 核心亮点抢先看

┌─────────────────────────────────────────────────────────────────────────────┐
│                         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继续覆盖 net46net10.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 等,方便后续做设备对比、版本验证和参数调优。


🎯 适合哪些项目关注?

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、内存溢出或有改进建议,欢迎通过项目主页提供的联系方式与作者取得联系,我们将尽力在有限的时间内提供协助。

image-20250224211044113

Copyright © 2026 Guojin Yan. All Rights Reserved.

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐