大数跨境
0
0

2026 年在 C# 中使用大型语言模型进行生成式 AI

2026 年在 C# 中使用大型语言模型进行生成式 AI dotNET跨平台
2026-01-07
6
导读:作为.NET开发人员,您不应该必须选择单个提供商或锁定到单个解决方案。这就是为什么.NET团队投资了一组扩展,这些扩展为使用模型提供一致的API,这些API是通用的但又是灵活的



Jeremy Likness
Principal Program Manager - .NET AI 体验

生成式AI成为历史上增长最快的消费技术,超越了InstagramTikTok,在不到两个月内达到了1亿用户。2022年底,OpenAI发布了GPT-3.5的免费预览版,并以对话聊天客户端的形式提供:ChatGPT。该模型使用人类反馈强化学习(RLHF)进行了微调,标志着生成式AI进入主流意识的时刻。2023年初,微软推出了Azure OpenAI服务,允许开发人员在Azure管理的端点后安全地配置和使用与OpenAI兼容的模型。

不久之后,微软推出了:

  • • Semantic Kernel (SK) → 使用 C# 或 Python 编排提示词、记忆和插件工具
  • • Microsoft Extensions for AI (MEAI) → 用于与模型交互的统一抽象(例如 IChatClient)
  • • Microsoft Extensions for Vector Data → 用于RAG系统中向量数据库的标准接口

本文从快速的 AI 创新中退后一步,专注于核心概念,为使用 Microsoft Foundry、GitHub Models、AI Extensions 和 Ollama 等本地运行时的 .NET/C# 开发人员提供基础。

理解 AI 术语

AI 有自己独特的术语集,具有非常特定的含义。

人工智能 (AI)

AI涉及使计算机能够执行通常需要人类智能的任务的技术——推理、语言、规划或感知。AI 并不新鲜,但今天大多数人使用 "AI" 来指代生成式 AI。

生成式 AI (GenAI)

生成式 AI 指的是能够产生文本、图像、音频或其他内容的AI系统。

例如:GPT 代表 Generative Pre‑trained Transformer。分解来看,我们得到:

  • • Generative(生成式) → 它产生内容;
  • • Pre‑trained(预训练) → 在巨大的数据集上训练;
  • • Transformer → 神经网络架构,实现高质量的语言建模

大型语言模型 (LLMs)

LLM 在数十亿 token 标记 上训练,可以生成文本、图像、代码或推理步骤。它们跨多种语言操作的能力来自于学习单词之间的关系——而不是简单的一对一字典翻译。

为什么翻译很困难

单词有很多含义:

  • • pass the car (超过汽车)
  • • mountain pass(山口)
  • • pass on the opportunity(放弃机会)
  • • your park pass on the dashboard(仪表板上的停车证)

传统软件难以处理这种歧义;LLM擅长是因为它们在语义空间中操作。

标记和嵌入

模型不直接读取文本。它们将其分解为标记:

  • • 完整单词
  • • 单词片段
  • • 字符

这些标记被转换为称为嵌入的数字向量——意义的数学表示。

示例短语:

  • • "the actor was a star"(演员是明星)
  • • "they loved the stars"(他们喜欢星星)

单词star出现在两者中,但含义不同。

嵌入捕获了这种差异。

这是一个可视化这个概念的简化方法。在图中,单词"star"的语义含义可以根据其与"天体"(夜晚的星星)概念和"演员"(节目的明星)概念的接近程度来绘制。


语义图

现在想象数十亿个这样的点。模型通过在这个空间中导航并预测下一个可能的向量来生成文本。

语义距离示例:

  • • school ↔ schol(近距离 → 拼写纠正)
  • • cat ↔ dog(近距离 → 相似动物)
  • • cat ↔ laptop(相距甚远)

语义搜索使用嵌入空间中的距离,而不是字符串匹配。

参数:模型大小

LLM通常通过其参数数量来描述:

7B、14B、70B、123B 等。

参数是训练的权重。

更多参数 → 更深入的推理、更丰富的知识、更好的细微差别。

  • • GPT-1 (2018) → 1.17亿参数
  • • 现代前沿模型 → 1000亿-400亿+参数

提示、指令和工具

前面的部分涵盖了关于模型的信息。本节中的术语直接涉及输入模型和从模型输出的内容。

提示

用户输入到模型的内容。"剥芒果皮的最佳方法是什么。"

系统指令

指导模型行为的隐藏"蓝图"。"你是芒果剥皮师,被认为是你领域的专家。"

工具/函数

LLM在历史数据上训练。工具让它们访问当前或权威信息,例如:

  • • 天气API
  • • 数据库查询
  • • 搜索引擎
  • • 公司知识索引

这种模式被称为检索增强生成(RAG)。让我们看两个场景。首先,想象一个礼宾代理,为其提供了本地餐厅的API和天气的API。用户输入提示:


   
   
   
    
   
   
   Can you book me a dinner this week at a restaurant with outdoor seating? 
你能为我预订本周在有户外座位的餐厅吃晚餐吗?

LLM首先调用天气API来确定哪些晚上可能是干燥和温暖的,然后调用餐厅API来找到哪些餐厅开放并有可用座位。最后,它返回一个恰到好处的建议列表。

接下来,想象一个零售店的客户服务代理,上传了所有产品信息。用户输入,

"What kind of batteries does the traveling wonder cube take?"
"旅行奇迹立方体需要什么类型的电池?"

LLM能够提取产品名称"旅行奇迹立方体"。它对查询文本进行向量化,然后使用产品名称和向量调用产品API。通过使用函数查找在产品手册中语义上最接近查询的点来调用语义搜索。如果存在这样的部分,这将返回所需电池的相关结果。

模型上下文协议 (MCP)

模型上下文协议,或简称MCP,是代理和工具之间互操作性的一组标准。它使模型易于理解哪些工具可用以及如何调用它们。这使您能够构建任何模型或代理都可以调用的虚拟工具箱。

那么代理呢?

等等,我说代理了吗?代理只是提供专业解决方案的一种方式,包括模型、工具和上下文。"礼宾代理"可能包括具有提供天气、事件和本地商业信息的工具的推理模型,以及能够生成带有基于转弯指令的地图的专用模型。我将在后续文章中更仔细地研究代理并介绍基于C#的解决方案

我已经涵盖了所有基础概念,所以现在是时候动手了。首先,我想简要分享生成式AI进入主流和今天可用的工具之间的时间线。

从 GPT-1 到今天

以下是过去几年 .NET 中 AI 演变的简要回顾。


AI 演变

.NET生态系统中的模型管理

使用模型不仅仅是识别正确的模型并使用它。许多公司出于对信任、安全性和成本的担忧而选择托管自己的模型。其他公司需要微调的模型和执行自己训练的能力。幸运的是,在.NET和C#中使用模型不仅是可能的,而且在多个产品和服务的帮助下得到了简化。

GitHub Models

GitHub Models通过与OpenAI兼容的API提供开放和前沿模型的托管目录。这是开发人员开始他们的AI之旅的好方法。原因包括:

  • • 无需基础设施
  • • 只需最少的代码更改即可在模型之间切换
  • • 非常适合原型设计、评估、自动化、扩展和CI/CD流水线

Microsoft Foundry(云)

以前称为Azure AI Studio,Microsoft Foundry是企业平台,用于:

  • • 模型目录(OpenAI、Meta、DeepSeek、Cohere、Mistral等)
  • • 代理工作流(Foundry Agent Service)
  • • 安全性、内容安全、治理
  • • 监控、跟踪、评估
  • • 微调和定制

Foundry是组织将AI大规模投入生产的地方。

Foundry Local

Foundry Local将Foundry开发者体验带到离线状态:

  • • 本地部署、隔离或边缘环境
  • • 与云Foundry相同的代理、工具、评估
  • • 支持混合"本地开发 → 云部署"生命周期

这是测试新模型、测试新代码而不耗尽预算以及构建开销最小且不需要第三方托管帐户才能成功的CI/CD流水线的好选择。

Ollama(本地运行时)

Ollama是一个流行的开源引擎,用于在本地运行轻量级和中型模型。

特点:

  • • 运行Mistral、Llama 3、Phi-3等模型
  • • 简单的CLI和服务器
  • • 非常适合隐私敏感的工作流程
  • • 通过OllamaSharp[3]与MEAI(IChatClient)干净集成

将所有内容整合在一起:统一抽象

作为.NET开发人员,您不应该必须选择单个提供商或锁定到单个解决方案。这就是为什么.NET团队投资了一组扩展,这些扩展为使用模型提供一致的API,这些API是通用的但又是灵活的。它还支持中间件等场景,以减轻日志记录、跟踪、注入行为和您可能使用的其他自定义流程的负担。大多数主要提供商都实现了我们的扩展契约,这样您就可以,例如,使用IChatClient实例,无论您是在与以下哪个交互:

  • • GitHub Models
  • • Azure AI Foundry
  • • Open AI / Azure Open AI
  • • Foundry Local
  • • Ollama
  • • 自定义提供商

……代码可以保持不变。

【声明】内容源于网络
0
0
dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,
内容 1007
粉丝 0
dotNET跨平台 专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,
总阅读17.3k
粉丝0
内容1.0k