引言
本教程将引导您通过 Semantic Kernel SDK 在 C# 环境中集成 Ollama AI模型,包括 DeepSeek、LLaMA和qwen 等。
我们将通过创建一个.NET 9控制台应用程序,连接到本地的Ollama AI模型,确保实现无缝的交互,提升隐私性、性能和灵活性。
为什么需要编程框架?
AI 模型的集成通常需要进行复杂的操作,如连接模型、处理提示信息和管理响应。虽然像 Python 的 LlamaIndex 和 LangChain 这样的框架在特定语言中提供了帮助,本教程专注于使用 C# 的 Semantic Kernel SDK 来简化这些操作。该框架通过封装低级 API 调用,极大地降低了集成的复杂度,使得您可以更加便捷地将其集成到现有的 .NET 应用程序中。
使用 Semantic Kernel 的主要优势包括:
- 简化模型交互:通过更高级的框架,避免直接处理低级 API 调用,提升开发效率。
- 高效集成:将 AI 能力无缝融入您的应用程序,减少开发时间。
- 增强功能:支持聊天历史和上下文管理等内置功能,使得与模型的交互更为灵活。
集成架构概述
在本集成过程中,我们将使用以下组件:
- Semantic Kernel C# SDK:用于与 Ollama 模型进行通信的编程框架。
- .NET 9 控制台应用程序:与模型进行交互的应用程序。
- Ollama 连接:与本地 Ollama 实例连接,运行 AI 模型。
- 本地 AI 模型:如 DeepSeek、LLaMA、qwen 等。
确保 Ollama 正在运行
在开始之前,请确保您的机器上已经成功启动 Ollama 模型。
- 打开浏览器并访问 http://localhost:11434。
- 如果 Ollama 正在运行,您应该能看到确认页面。
步骤指南:构建控制台应用程序
步骤 1:创建 .NET 9 控制台应用程序
在命令行中输入以下命令来创建一个新的控制台应用程序:
dotnet new console -n Deepseek_Integration
cd Deepseek_Integration
此命令将创建一个名为 Deepseek_Integration 的新项目,并进入该项目目录。
步骤 2:安装必要的包
为了与 Ollama 模型进行交互,我们需要安装 Semantic Kernel 和 Ollama Connectors。
使用.NET CLI安装:
dotnet add package Microsoft.SemanticKernel --version 1.37.0
dotnet add package Microsoft.SemanticKernel.Connectors.Ollama --version 1.37.0-alpha
更新项目文件:
打开 .csproj 文件,确保添加以下内容,并抑制实验性警告:
SKEXP0070
步骤 3:编写 Program.cs
打开 Program.cs 文件,将其内容替换为以下代码:
using System;
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.ChatCompletion;
using System.Threading.Tasks;
namespace Ollama_Integration
{
class Program
{
static async Task Main(string[] args)
{
// 创建一个内核构建器
var builder = Kernel.CreateBuilder();
// 添加Ollama聊天完成服务
builder.AddOllamaChatCompletion("deepseek-r1:1.5b", new Uri("http://localhost:11434"));
// 构建内核
var kernel = builder.Build();
// 获取聊天完成服务
var chatService = kernel.GetRequiredService();
// 初始化聊天历史
var chatHistory = new ChatHistory("你是费曼,特别善于把知识讲的很清楚!");
while (true)
{
// 设置用户输入颜色为绿色
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("你: ");
var userMessage = Console.ReadLine();
if (string.IsNullOrWhiteSpace(userMessage))
{
break;
}
// 添加用户消息
chatHistory.AddUserMessage(userMessage);
// 设置助手输出颜色为蓝色
Console.ForegroundColor = ConsoleColor.Cyan;
// 输出 deepseek 标识
Console.WriteLine("DeepSeek: ");
// 使用流式聊天响应获取实时更新
await foreach (StreamingChatMessageContent chatUpdate in chatService.GetStreamingChatMessageContentsAsync(chatHistory))
{
// 输出每次流式返回的内容
Console.Write(chatUpdate.Content);
}
// 恢复为默认颜色
Console.ResetColor();
// 保证用户每次输入都能得到完整的响应
Console.WriteLine();
}
}
}
}
这个程序通过 Semantic Kernel 和 Ollama 聊天服务,创建了一个简单的命令行聊天应用,支持实时流式聊天响应。它模拟了 费曼 风格的助手,可以生动且清晰地回答用户的问题,同时通过流式输出提供互动体验。
步骤 4:验证并运行应用程序
验证 Ollama 是否正在运行
访问 http://localhost:11434 确保 Ollama 正在正常运行。
运行控制台应用程序
在终端中运行以下命令:
dotnet run
测试交互
启动应用程序后,您将看到类似以下的交互:
探索其他模型
您可以通过更改 AddOllamaChatCompletion 方法中的模型名称来切换不同的 Ollama 模型。例如:
// 添加Ollama聊天完成服务,比如阿里的通义千文
builder.AddOllamaChatCompletion("qwen:1.8b", new Uri("http://localhost:11434"));
结论:解锁本地AI能力
通过将 Ollama 模型与 Semantic Kernel SDK 集成,我们实现了以下目标:
- 本地 AI 交互:与完全在本地运行的 AI 模型进行通信。
- 增强隐私性:确保所有数据处理都保持本地,保护敏感信息。
- 低延迟:避免网络延迟,提供更快速的响应体验。
- 灵活集成:将 AI 能力轻松集成到 .NET 应用程序中。
借助 Semantic Kernel SDK 和 Ollama 模型的集成,您可以在应用程序中轻松实现 AI 功能,同时保障数据隐私和控制。
本文暂时没有评论,来添加一个吧(●'◡'●)