编辑
2025-11-20
C#
00

🎯 还在为AI集成发愁?这个方案让你告别加班

最近和几个朋友聊天,发现一个有趣的现象:90%的C#开发者都想在项目中加入AI功能,但80%的人觉得太复杂而放弃

"调用OpenAI API要处理HTTP请求、token管理、错误重试..."

"接入本地模型要学Docker、API封装、流式处理..."

"老板催得紧,但光搭环境就要一周..."

如果你也有这些困扰,今天这篇文章将彻底改变你的想法。Microsoft.Extensions.AI 让AI集成变得像写Hello World一样简单,5行代码就能让你的应用具备AI对话能力


🔍 痛点分析:为什么AI集成这么难?

传统方式的三大拦路虎

1. 复杂的SDK集成

  • 每个AI服务商都有不同的SDK
  • API参数格式千差万别
  • 错误处理机制各不相同

2. 繁琐的基础设施

  • HTTP客户端配置
  • 重试策略实现
  • 流式响应处理

3. 高昂的学习成本

  • 需要深入了解各家API文档
  • 掌握异步编程最佳实践
  • 处理复杂的认证机制

💡 解决方案:Microsoft.Extensions.AI统一天下

Microsoft推出的 Extensions.AI 包就像是AI界的"万能适配器",一套代码,适配所有主流AI服务

🌟 核心优势

  • 统一接口:IChatClient一个接口走天下
  • 开箱即用:无需复杂配置,3行代码启动
  • 厂商无关:支持OpenAI、Ollama、Azure AI等
  • 流式支持:原生支持ChatGPT式的逐字输出

🛠️ 实战场景一:智能客服助手

想象一下,你正在开发一个客服系统,需要AI来回答常见问题。传统方式可能需要几十行代码,现在只需要这样:

C#
using Microsoft.Extensions.AI; using OllamaSharp; namespace AppMsAi { internal class Program { static async Task Main(string[] args) { // 🎯 关键点1:一行代码创建AI客户端 IChatClient client = new OllamaApiClient( new Uri("http://localhost:11434"), // 本地Ollama服务 "qwen2.5:3b"); // 使用轻量级模型 // 🎯 关键点2:设置客服场景的上下文 List<ChatMessage> customerServiceContext = [ new(ChatRole.System, "你是一个专业的电商客服,友好且高效地解决用户问题"), new(ChatRole.User, "我的订单什么时候能到?") ]; // 🎯 关键点3:获取AI回复 ChatResponse response = await client.GetResponseAsync(customerServiceContext); Console.WriteLine($"AI客服回复:{response}"); } } }

image.png

编辑
2025-11-20
C#
00

在人工智能快速发展的今天,如何将AI技术与实际应用场景无缝融合,已成为开发者的热门话题。本文将详细介绍如何使用 Microsoft Semantic Kernel 构建一个智能、高效的天气查询应用,让开发者了解如何利用 AI 赋能传统应用。

什么是 Semantic Kernel?

Semantic Kernel(语义内核)是微软推出的一个开源 SDK,它允许开发者轻松地将大语言模型(LLM)与传统编程方法结合。通过插件机制,开发者可以让 AI 调用 .NET 代码中的方法,实现更智能的交互。

项目架构与关键技术

技术选型

  • 编程语言:C# 10+
  • 框架:.NET 6/7/8
  • AI 服务:DeepSeek API
  • 核心库:Microsoft.SemanticKernel

核心特性

  1. 函数调用(Function Calling)
  2. 聊天历史管理
  3. 可插拔的服务插件
  4. 灵活的 AI 交互模式
编辑
2025-11-20
C#
00

在现代 AI 应用开发中,函数调用是一项强大的功能,它允许 AI 模型直接与应用程序的功能进行交互。Microsoft Semantic Kernel 作为一个开源框架,提供了简单而强大的方式来集成这一能力。本文将详细介绍如何在 Semantic Kernel 中使用聊天完成(Chat Completion)进行函数调用,帮助开发者构建更智能、更实用的 AI 应用。

什么是函数调用?

函数调用(Function Calling)允许 AI 模型识别何时应该调用预定义的函数,并以结构化的方式提供必要的参数。这使得 AI 能够:

  • 执行特定任务
  • 获取外部信息
  • 触发应用程序中的操作

在 Semantic Kernel 中,这一功能与大型语言模型(LLM)的能力无缝集成,使开发体验更加流畅。

Semantic Kernel 环境准备

首先,我们需要创建一个新的 C# 项目并安装必要的 NuGet 包:

image.png

编辑
2025-11-20
C#
00

YAML架构是语义内核提供的一种声明式语法,用于定义AI提示模板。通过使用YAML,开发者可以更加结构化地创建、管理和维护提示,使得提示的版本控制、测试和部署变得更加简单。 问题来了,YAML是我现阶段最不喜欢的配置文件格式。。。。

YAML架构的基本结构

语义内核提示的YAML文件由几个关键部分组成,下面我们将详细介绍每个部分:

YAML
# 提示函数的基本信息 name: SummarizeText # 函数名称 description: 将文本概括为简明扼要的摘要 # 函数描述 template_format: semantic-kernel # 模板格式 template: | # 提示模板内容 请将以下文本概括为简洁的摘要: {{$input}} 摘要: # 输入变量定义 input_variables: - name: input # 变量名称 description: 需要被概括的文本 # 变量描述 is_required: true # 是否必需 default: "" # 默认值 # 输出变量定义 output_variables: - name: summary # 输出变量名 description: 生成的文本摘要 # 输出描述 # 执行设置 execution_settings: default: # 默认设置 service: OpenAI # 服务提供商 model: gpt-4 # 使用的模型 temperature: 0.7 # 温度参数 max_tokens: 500 # 最大令牌数
编辑
2025-11-20
C#
00

在人工智能和大型语言模型(LLM)的世界中,提示词(Prompts)扮演着至关重要的角色。它们是我们与AI沟通的桥梁,决定了AI输出的质量和相关性。本文将深入探讨Microsoft Semantic Kernel中的提示词工程,帮助您理解如何有效地利用提示词来提升AI应用的效果。

提示词的基本概念

提示词是我们提供给模型的输入或查询,以期获取特定的响应。在Microsoft Semantic Kernel中,提示词工程(Prompt Engineering)已成为一个新兴的专业领域,它需要创造力和对细节的关注。

提示词的重要性

有效的提示词设计对于从LLM AI模型中获得预期结果至关重要。通过精心选择正确的词语、短语、符号和格式,可以引导模型生成高质量且相关的文本。

例如,考虑以下两个提示词:

text
请给我讲述人类的历史。 请用3句话给我讲述人类的历史。

第一个提示词可能会产生一个冗长的报告,而第二个提示词则会产生一个简洁的回应。如果您正在构建空间有限的用户界面,第二个提示词会更适合您的需求。