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

Semantic Kernel实现调用Kernel Memory

1、背景

目前Semantic Kernel是C#调用大模型的主流操作,因此如何将Semantic KernelKernel Memory结合起来,就可以试试了。

2、具体实现

Kernel Memory就是上一篇的所述内容,在上一篇中,也是可以直接声明Kernel Memory进行调用。这次SK调用KM如下:

// See https://aka.ms/new-console-template for more information
using Microsoft.KernelMemory;
using Microsoft.SemanticKernel;
using System.ComponentModel;var modelName = "llama3.2:3b";
var ollamaEndpoint = "http://localhost:11434";
var ollamaUri = new Uri(ollamaEndpoint);var kernelBuilder = Kernel.CreateBuilder().AddOllamaChatClient(modelName, ollamaUri);var kernel= kernelBuilder.Build();var memoryUrl = "http://127.0.0.1:9001/";
var memoryPlugin = new MemoryPlugin(memoryUrl,"",true);kernel.ImportPluginFromObject(memoryPlugin,"memory");var text = "北京动物园有10只猴子, 8只老虎, 6头大象, 4匹马, 100头狼,以及99头骆驼.\n\n" +"门票价格如下:\n\n" +"成人: 100元/人\n" +"儿童: 50元/人\n" +"联系方式: 13813818188\n" +"地址: 北京市海淀区西直门附近";await memoryPlugin.SaveAsync(text);var skprompt = """
提问:{{$input}}
回答:{{memory.ask $input}}
""";var myfunction= kernel.CreateFunctionFromPrompt(skprompt);var answer =await myfunction.InvokeAsync(kernel, "北京动物园有多少只动物?");Console.WriteLine(answer);Console.ReadLine();

2.1 实现效果

在这里插入图片描述

3、总结

个人理解:Semantic Kernel和Kernel Memory是并列的关系。上述的代码实际上给kernel Memory创建了一个实例,然后注册到Semantic kernel中,然后再调用,有点脱裤子放屁。为啥不直接调用呢?
另外,在之前的文章中,我们可以将方法注册到Semantic kernel中,然后通过kernel的实例,通过InvokePromptAsync实现大模型的处理,但上面的例子是通过这句var answer =await myfunction.InvokeAsync(kernel, "北京动物园有多少只动物?");来调用的,而myfunction又是从kernel Memory中提取出来的,所以感觉有点乱。
再弄弄Agent试试,看看Agent能不能直接调用kernel Memory

http://www.dtcms.com/a/293762.html

相关文章:

  • 华为云数据库 GaussDB的 nvarchar2隐式类型转换的坑
  • Python-初学openCV——图像预处理(一)
  • C++刷题 - 7.23
  • 开源 Arkts 鸿蒙应用 开发(九)通讯--tcp客户端
  • 在 Ubuntu 20.04.5 LTS 系统上安装 Docker CE 26.1.4 完整指南
  • Spring Cloud Alibaba Sentinel 基本工作原理源码阅读
  • MACOS安装配置Gradle
  • 国产数据库转向 “融合” 赛道:电科金仓的下一代形态定义之路
  • 基于Matlab传统图像处理技术的车辆车型识别与分类方法研究
  • 资本押注会成长的玩具,AI潮玩赛道开始升温
  • 华为云ELB(弹性负载均衡)持续报异常
  • 永磁同步电机控制算法--弱磁控制(负载能力最大化的定交轴)
  • 【C++】C++ 的入门语法知识1
  • 在easyui中如何设置自带的弹窗,有输入框
  • 解决Spring事务中RPC调用无法回滚的问题
  • 零基础学编程,编程从入门到精通系列教程,附:编程工具箱之时间计算构件的用法#零基础自学编程 学习计划#新手学编程 高效学习方法
  • HF83311_VB1/HF83311Q_VB1:高性能USB HiFi音频解码器固件技术解析
  • Leetcode-15. 三数之和
  • 《计算机“十万个为什么”》之 [特殊字符] 深浅拷贝 引用拷贝:内存世界的复制魔法 ✨
  • 1.1 Deep learning?pytorch ?深度学习训练出来的模型通常有效但无法解释合理性? 如何 解释?
  • 英语词汇积累Day1-10(summary)
  • Django实战:Python代码规范指南
  • 【Java】Reflection反射(代理模式)
  • 算法竞赛备赛——【图论】最小生成树
  • 《元素周期表》超高清PDF
  • IDEA如何管理多个Java版本。
  • STM32 基础知识 定时器【概念】
  • 基于PyTorch的多视角二维流场切片三维流场预测模型
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页-微博点赞量Top6实现
  • 19.动态路由协议基础