最近和几个朋友聊天,发现一个有趣的现象:90%的C#开发者都想在项目中加入AI功能,但80%的人觉得太复杂而放弃。
"调用OpenAI API要处理HTTP请求、token管理、错误重试..."
"接入本地模型要学Docker、API封装、流式处理..."
"老板催得紧,但光搭环境就要一周..."
如果你也有这些困扰,今天这篇文章将彻底改变你的想法。Microsoft.Extensions.AI 让AI集成变得像写Hello World一样简单,5行代码就能让你的应用具备AI对话能力!
1. 复杂的SDK集成
2. 繁琐的基础设施
3. 高昂的学习成本
Microsoft推出的 Extensions.AI 包就像是AI界的"万能适配器",一套代码,适配所有主流AI服务!
想象一下,你正在开发一个客服系统,需要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}");
}
}
}

🔥 实际应用场景:
⚠️ 避坑指南:
ollama serve作为技术Leader,代码Review是日常工作的重要部分。让AI来帮你发现潜在问题:
C#using System.Text;
using Microsoft.Extensions.AI;
using OllamaSharp;
namespace AppMsAi
{
internal class Program
{
static async Task Main(string[] args)
{
Console.OutputEncoding = Encoding.UTF8;
Console.InputEncoding = Encoding.UTF8;
// 🎯 创建专门的代码审查AI
IChatClient codeReviewer = new OllamaApiClient(
new Uri("http://localhost:11434"),
"qwen2.5:3b");
// 🎯 关键技巧:使用流式输出,实时看到分析过程
string codeToReview = @"
public class UserService
{
public User GetUser(int id)
{
var user = database.Query($'SELECT * FROM Users WHERE Id = {id}');
return user;
}
}";
string prompt = $@"
请审查以下C#代码,重点关注:
1. 安全隐患(SQL注入等)
2. 性能问题
3. 代码规范
4. 改进建议
代码:
{codeToReview}";
Console.WriteLine("🔍 AI正在分析代码...\n");
// 🔥 流式输出:像ChatGPT一样逐字显示
await foreach (ChatResponseUpdate update in
codeReviewer.GetStreamingResponseAsync(prompt))
{
Console.Write(update); // 实时输出分析结果
}
Console.WriteLine("\n\n✅ 代码审查完成!");
}
}
}

🔥 实际应用场景:
⚠️ 避坑指南:
C#// 🎯 维护对话历史,实现真正的智能对话
List<ChatMessage> conversationHistory = [
new(ChatRole.System, "你是一个C#编程专家"),
];
while (true)
{
Console.Write("👤 你的问题:");
string userInput = Console.ReadLine();
if (string.IsNullOrEmpty(userInput)) break;
// 添加用户消息到历史
conversationHistory.Add(new(ChatRole.User, userInput));
// 获取AI回复
var response = await client.GetResponseAsync(conversationHistory);
// 添加AI回复到历史
conversationHistory.Add(new(ChatRole.Assistant, response.ToString()));
Console.WriteLine($"🤖 AI回复:{response}\n");
}

C#using System.Text;
using Microsoft.Extensions.AI;
using OllamaSharp;
namespace AppMsAi
{
internal class Program
{
static async Task Main(string[] args)
{
Console.OutputEncoding = Encoding.UTF8;
Console.InputEncoding = Encoding.UTF8;
IChatClient client = new OllamaApiClient(
new Uri("http://localhost:11434"),
"qwen2.5:3b");
// 🎯 维护对话历史,实现真正的智能对话
List<ChatMessage> conversationHistory = [
new(ChatRole.System, "你是一个C#编程专家"),
];
while (true)
{
Console.Write("👤 你的问题:");
string userInput = Console.ReadLine();
if (string.IsNullOrEmpty(userInput)) break;
// 添加用户消息到历史
conversationHistory.Add(new(ChatRole.User, userInput));
Console.Write("🤖 AI回复:");
// 🔥 使用流式输出,像ChatGPT一样逐字显示
StringBuilder fullResponse = new StringBuilder();
await foreach (ChatResponseUpdate update in
client.GetStreamingResponseAsync(conversationHistory))
{
Console.Write(update); // 实时输出每个字符
fullResponse.Append(update.ToString()); // 收集完整回复
}
// 添加完整的AI回复到历史记录
conversationHistory.Add(new(ChatRole.Assistant, fullResponse.ToString()));
Console.WriteLine("\n"); // 换行分隔
}
}
}
}

1. 安装依赖包
Bashdotnet add package Microsoft.Extensions.AI dotnet add package OllamaSharp
2. 启动本地AI服务
Bash# 安装Ollama(仅需一次)
curl -fsSL https://ollama.ai/install.sh | sh
# 下载轻量级模型
ollama pull qwen2.5:3b
# 启动服务
ollama serve
3. 复制代码,直接运行 ✅
本地模型 vs 云端服务的选择技巧:
C#// 💡 开发环境:使用免费的本地模型
IChatClient localClient = new OllamaApiClient(
new Uri("http://localhost:11434"), "qwen2.5:3b");
// 💡 生产环境:使用高性能的云端服务
// IChatClient cloudClient = new OpenAIClient("your-api-key");
// 🎯 同样的代码,不同的能力!
var response = await client.GetResponseAsync("解释一下微服务架构");
今天我们探索了Microsoft.Extensions.AI这个神器,相信你已经感受到了它的强大之处:
🎯 核心要点回顾:
💎 黄金法则:
在AI技术飞速发展的今天,掌握AI集成能力已经成为C#开发者的核心竞争力。Microsoft.Extensions.AI让这个门槛变得前所未有的低,现在就是入场的最佳时机!
💬 想听听你的想法:
📱 如果这篇文章对你有帮助,请转发给更多的C#同行,让我们一起拥抱AI时代!
也欢迎在评论区分享你的实战经验,或者遇到的技术问题,我会第一时间回复大家! 🚀
本文作者:技术老小子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!