Kernel Memory 入门系列:Kernel Memory Service

在 Kernel Memory 的 GitHub 仓库中有一个单独的项目 Service , 用于提供独立的Kernel Memory OpenAPI 服务。可以用于独立的部署后台,也可以为其他语言提供接口调用服务。

1. 初始化

使用 Kernel Memory Service 需要先下载该项目的源码。使用Git Clone 命令下载源码到本地即可。

git clone https://github.com/microsoft/kernel-memory.git

然后打开/service/Service目录,根据操作系统选择执行使用setup.sh或者setup.cmd,就可以进行快速的初始化了。

也可以直接执行dotnet run setup命令进行初始化。

这个过程会调用初始化服务,将所有选择的配置项都存储到appsettings.Development.json文件中。

当然也可以直接通过修改appsettings.json文件,来修改配置项。该文件中包含详细的配置说明。

这其中的大部分的配置项都和Kernel Memory的组件有关,例如ContentStorageTypeTextGeneratorType

MemoryDbTypes等等。大部分的组件将会在后续的文章中进行介绍。如果测试的话,可以选择Simple开头的选项,基本都是使用本地文件作为存储。

这其中需要注意的 TextGeneratorTypeEmbeddingGeneratorType 及其相关配置是必须的,因为这部分是调用大语言模型的需要的配置。

2. 启动服务

完成配置之后,就可以启动服务了。运行项目下的run.cmd或者run.sh即可启动服务。

这里为了演示方便,启用了Swagger和同步处理,使用了本地的文件存储和向量存储。

3. 使用服务

服务其中后,如果是在本地运行,可以通过http://localhost:9001/swagger/index.html访问服务的Swagger页面。

其他语言可以使用Swagger.json 生成OpenAPI的客户端代码,也可以直接使用HTTP请求调用接口。

C# 可以使用 Microsoft.KernelMemory.WebClient 包来调用接口。

var memory = new MemoryWebClient("http://127.0.0.1:9001");

这里的memory 的使用和 ServerlessMemory 一样。

4. 一些其他的工具脚本

在该项目的另外一个目录下提供了一些工具脚本,可以更加方便的使用 Kernel Memory Service。

  • run-qdrant.sh 用于启动 Qdrant 服务,该服务是用于提供向量数据库,用于存储生成的向量。使用Docker 运行,因此需要提前安装好Docker。

  • run-rabbitmq.sh 用于启动 RabbitMQ 服务,该服务是用于提供消息队列服务,用于异步管理文件上传和处理进度。也是使用Docker 运行。

  • setup-service.sh 用于初始化 Kernel Memory Service,和上面的setup.sh是一样的。

  • run-service.sh 用于启动 Kernel Memory Service,和上面的run.sh是一样的。

  • upload-file.sh 用于上传文件到 Kernel Memory Service,需要提供服务地址(默认是http://localhost:9001)和文件路径。

  • ask.sh 用于向 Kernel Memory Service 提问,需要提供服务地址和问题文本。

  • search.sh 用于向 Kernel Memory Service 搜索,需要提供服务地址和问题文本。

参考

Kernel Memory 入门系列:Kernel Memory Service的更多相关文章

  1. Semantic Kernel 入门系列:🥑Memory内存

    了解的运作原理之后,就可以开始使用Semantic Kernel来制作应用了. Semantic Kernel将embedding的功能封装到了Memory中,用来存储上下文信息,就好像电脑的内存一样 ...

  2. Android系统编程入门系列之服务Service齐头并进多线程任务

    在上篇文章中初步了解了Android系统的四大组件之一的服务Service,在服务内可以执行无用户交互的耗时操作任务,但是包括之前关于界面系列文章在内,生命周期方法都是在主线程内被系统回调的.如果直接 ...

  3. Android系统编程入门系列之服务Service中的进程间通信

    在上篇文章以线程间的通信方式Handler类结尾,服务Service还支持的进程间通信,又是具体怎么实现的呢?这就要用到加载服务一文中提到的AIDL语言规范了. AIDL是 Android Inter ...

  4. Semantic Kernel 入门系列:📅 Planner 计划管理

    Semantic Kernel 的一个核心能力就是实现"目标导向"的AI应用. 目标导向 "目标导向"听起来是一个比较高大的词,但是却是实际生活中我们处理问题的 ...

  5. Reentrant protected mode kernel using virtual 8086 mode interrupt service routines

    A method for allowing a protected mode kernel to service, in virtual 8086 mode, hardware interrupts ...

  6. golang pprof 监控系列(3) —— memory,block,mutex 统计原理

    golang pprof 监控系列(3) -- memory,block,mutex 统计原理 大家好,我是蓝胖子. 在上一篇文章 golang pprof监控系列(2) -- memory,bloc ...

  7. linux入门系列12--磁盘管理之分区、格式化与挂载

    前面系列文章讲解了VI编辑器.常用命令.防火墙及网络服务管理,本篇将讲解磁盘管理相关知识. 本文将会介绍大量的Linux命令,其中有一部分在"linux入门系列5--新手必会的linux命令 ...

  8. 快速入门系列--WebAPI--03框架你值得拥有

    接下来进入的是俺在ASP.NET学习中最重要的WebAPI部分,在现在流行的互联网场景下,WebAPI可以和HTML5.单页应用程序SPA等技术和理念很好的结合在一起.所谓ASP.NET WebAPI ...

  9. k8s入门系列之扩展组件(一)DNS安装篇

    DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址. Cluster DNS扩展插件用于支持k8s集群系统 ...

  10. Maven入门系列(二)--设置中央仓库的方法

    原文地址:http://www.codeweblog.com/maven入门系列-二-设置中央仓库的方法/ Maven仓库放在我的文档里好吗?当然不好,重装一次电脑,意味着一切jar都要重新下载和发布 ...

随机推荐

  1. 数据可视化【原创】vue+arcgis+threejs 实现立体光圈闪烁效果

    本文适合对vue,arcgis4.x,threejs,ES6较熟悉的人群食用. 效果图: 素材: 主要思路: 先用arcgis externalRenderers封装了一个ExternalRender ...

  2. 3 分钟把高质量 AI 知识库 FastGPT 装进企业微信

    FastGPT V4 已经上线,直接冲上 GitHub Trending. 如果你还不知道 FastGPT 是什么,可以先去看看作者的介绍 使用 FastGPT 构建高质量 AI 知识库 非常多的企业 ...

  3. PostgreSQL快速导入千万条数据

    目录 一.测试环境 二.修改源数据为COPY可用的格式 三.DDL 四.COPY 五.结论 为了与MySQL做个对比,做一个PG的数据导入测试,使用COPY方式,测试环境保持一致,具体如下所述. 一. ...

  4. vue 基于原生动画的自动滚动表格

    前言 公司展示大屏需要写滚动表格,通过滚动播放数据,自己随便摸了一个基于动画的自动滚动表格 原理 根据每行的大小和设置的每行滚动时间设置滚动位置,动态添加动画,并把数组第一项移动到最后一项,并订阅该动 ...

  5. WPF 中引入依赖注入(.NET 通用主机)

    WPF 中引入依赖注入(.NET 通用主机) 在网上看到的文章都是通过 App.cs 中修改配置进行的,这样侵入性很高而且服务主机是通过 App 启动时加载的而不是服务主机加载的 App 有一点违反原 ...

  6. oracle命令3 冷备份

    用户管理的备份:备份脚本要自己写:备份哪些文件要自己选:恢复时要复制那些文件自己判断:恢复需要的日志,自己找: 备份,需要备份保存关键SCN信息的文件:一次完成的备份包括:控制文件,数据文件,日志文件 ...

  7. 用go封装和实现扫码登录

    用go封装和实现扫码登录 本篇为用go设计开发一个自己的轻量级登录库/框架吧 - 秋玻 - 博客园 (cnblogs.com)的扫码登录业务篇,会讲讲扫码登录的实现,给库/框架增加新的功能,最后说明使 ...

  8. 从输入URL到页面加载完都发生了什么

    1.浏览器的地址栏输入URL并按下回车. 2.浏览器查找当前URL是否存在缓存,并比较缓存是否过期. 3.DNS解析URL对应的IP. 4.根据IP建立TCP连接(三次握手). 5.HTTP发起请求. ...

  9. ASP.NET CORE MVC的一些说明

    1.ASP.NET CORE MVC 是微软公司的Web应用开发框架,结合了MVC架构的高效.简洁等优秀思想并融合了.NET的灵活性. 2.ASP.NET诞生于2002年,当时微软想保持桌面应用程序的 ...

  10. cdq分治/整体二分

    cdq分治: 使用场景: 三维偏序问题 优化dp 将动态问题转静态问题 99%题目能离线的情况下cdq可以替代树套树,时空都更优秀 整体二分: 起初用来解决动态区间第K min/max,在最基础的二分 ...