前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

使用Semantic Kernel和C#集成Ollama模型:一步步指南

qiguaw 2025-02-27 16:29:44 资源文章 28 ℃ 0 评论

引言

本教程将引导您通过 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 模型。

  1. 打开浏览器并访问 http://localhost:11434
  2. 如果 Ollama 正在运行,您应该能看到确认页面。

步骤指南:构建控制台应用程序

步骤 1:创建 .NET 9 控制台应用程序

在命令行中输入以下命令来创建一个新的控制台应用程序:

dotnet new console -n Deepseek_Integration
cd Deepseek_Integration

此命令将创建一个名为 Deepseek_Integration 的新项目,并进入该项目目录。

步骤 2:安装必要的包

为了与 Ollama 模型进行交互,我们需要安装 Semantic KernelOllama 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 KernelOllama 聊天服务,创建了一个简单的命令行聊天应用,支持实时流式聊天响应。它模拟了 费曼 风格的助手,可以生动且清晰地回答用户的问题,同时通过流式输出提供互动体验。

步骤 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 SDKOllama 模型的集成,您可以在应用程序中轻松实现 AI 功能,同时保障数据隐私和控制。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表