当前位置: 首页 > news >正文

C#使用Semantic Kernel:接入本地deepseek-r1

安装Ollama

1.下载Ollama

  • 访问Ollama官网(https://ollama.com),选择适合你操作系统的版本进行下载。

  • 对于Linux用户,可以通过以下命令安装:

curl -fsSL https://ollama.com/install.sh | sudo bash    sudo systemctl start ollama 

2.验证安装

    • 安装完成后,在终端输入ollama -v,若显示版本号(如ollama version is 0.5.7),则说明安装成功。

    • 你还可以在浏览器中访问http://localhost:11434/,确认服务已启动。

    部署DeepSeek模型

    1. 选择模型版本
    • 访问Ollama官网的模型库(https://ollama.com/library/deepseek-r1),选择适合你硬件配置的DeepSeek模型版本。例如:

      • `deepseek-r1:1.5b`:适合低端设备。
      • `deepseek-r1:7b`:适合中端设备。
      • `deepseek-r1:14b`:适合高端设备。
      • `deepseek-r1:32b`:适合科研级设备。
    1. 下载并运行模型

     ollama run deepseek-r1:1.5b 

    1. 验证模型

    curl http://localhost:11434/api/chat -d '{"model": "deepseek-r1:1.5b", "messages": [{ "role": "user", "content": "你好" }]}'

    安装 SK 及 ollama connector

    首先在本地创建一个 Console 项目,然后安装以下包:

    dotnet add package Microsoft.SemanticKernel --version 1.21.1
    dotnet add package Microsoft.SemanticKernel.Connectors.Ollama --version 1.21.1-alpha

    配置 Ollama 服务

    接下来,我们需要配置 Ollama 服务的端点和模型 ID ,并添加 Ollama 的聊天服务:

    var endpoint = new Uri("http://localhost:11434");
    var modelId = "deepseek-r1:1.5b";var builder = Kernel.CreateBuilder();
    #pragma warning disable SKEXP0070 
    builder.Services.AddScoped<IChatCompletionService>(_ => new OllamaChatCompletionService(modelId, endpoint));
    

    获取聊天服务

    var chatService = kernel.GetRequiredService<IChatCompletionService>();
    var history = new ChatHistory();
    history.AddSystemMessage("你是一个乐于助人的助手。");

    聊天循环

    最后,我们实现一个简单的聊天循环,读取用户输入并获取 Ollama 的回复:

    while (true)
    {Console.Write("You:");var input = Console.ReadLine();if (string.IsNullOrWhiteSpace(input)){break;}history.AddUserMessage(input);var contents = await chatService.GetChatMessageContentsAsync(history);foreach (var chatMessageContent in contents){var content = chatMessageContent.Content;Console.WriteLine($"Ollama: {content}");history.AddMessage(chatMessageContent.Role, content ?? "");}
    }
    


    http://www.mrgr.cn/news/92367.html

    相关文章:

  • CSS—引入方式、选择器、复合选择器、文字控制属性、CSS特性
  • 深度学习pytorch之19种优化算法(optimizer)解析
  • java后端开发day18--学生管理系统
  • Language Models are Unsupervised Multitask Learners,GPT-2详细讲解
  • 【考研】复试相关上机题目
  • React进阶之前端业务Hooks库(三)
  • 使用elasticdump导出/导入 -- ES数据
  • WEB1~6通杀
  • 2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(四)
  • 毕业项目推荐:基于yolov8/yolo11的苹果叶片病害检测识别系统(python+卷积神经网络)
  • 九、数据治理架构流程
  • (八)趣学设计模式 之 装饰器模式!
  • Web自动化之Selenium添加网站Cookies实现免登录
  • vue2使用xlsx依赖导出excel并封装组件
  • ros进阶——强化学习倒立摆的PG算法实现
  • 架构思维:分布式缓存_提升系统性能的关键手段(上)
  • Kafka面试题汇总
  • 【算法系列】快速排序详解
  • Ubuntu从零创建Hadoop集群
  • 【STL】4.<list>