- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
Kernel Memory (KM) 是一种多模态 AI 服务,专注于通过自定义的连续数据混合管道高效索引数据集。它支持检索增强生成(RAG)、合成记忆、提示工程以及自定义语义记忆处理。KM 支持自然语言查询,从已索引的数据中获取答案,并提供完整的引用和原始来源链接.
通过 KM 我们可以让 LLM 认识更多新的知识。比如认识新的文本内容,WORD文档,PDF, PPT,甚至是直接爬取一个网页然后进行 embedding,连爬虫都帮你写好了.
KM 看起来是专为 RAG 设计的一套框架。很多同学可能已经知道 SK 里面有 Semantic Memory (SM),它可以用来做 RAG。咋一看很容易就把 KM 当作了 SM。但其实 KM 跟 SM 并不是一回事。虽然 KM 是从 SM 发展而来的。但现在 KM 已经可以脱离 SK 独立运行.
KM 现在可以方便的集成进 .NET Backend/Console/Desktop 应用程序里面,使这些程序立马获得本地识别文档的能力。这种模式叫做Synchronous Memory API (aka “serverless”).
如果你的场景是想要搭建大规模的文档识别跟问答平台那么你可能需要把 KM 作为一个完整的服务,异步来处理这些文档与问答请求。这种模式叫做Memory as a Service - Asynchronous API.
使用 KM 还是需要搭配 LLM 的能力。这里还是使用本地的 Ollama 来运行 llama3.1:8b 的模型。下面让我们看看怎么使 KM 认识以下这段我刚编的关于 QIQI 动物园的文字.
Qiqi Zoo features 10 monkeys, 8 tigers, 6 elephants, 4 horses, 100 ostriches, and 99 koalas.\n\n" +
"Ticket Prices:\n\n" +
"Adults: 100 RMB\n" +
"Children: 50 RMB\n" +
"Contact: 13813818188\n" +
"Address: 999 Xinghu Street, Suzhou Industrial Park, Jiangsu, China.
以下代码我们指示了使用 ollama 来进行文本生成跟文本 embedding 生成。同时指定了使用一个简易的内存数据库来存储跟检索向量。然后把 Qiqi zoo 的文本内容导入进去,之后就可以问相关的问题了.
var modelName = "llama3.1:8b";
var ollamaEndpoint = "http://localhost:11434";
var ollamaApiClient = new OllamaApiClient(new Uri(ollamaEndpoint), modelName);
var ollamaModelConfig = new OllamaModelConfig() { ModelName = modelName };
var textEmbeddingGenerator = new OllamaTextEmbeddingGenerator(ollamaApiClient, ollamaModelConfig);
var memory = new KernelMemoryBuilder()
.WithOllamaTextGeneration(modelName, ollamaEndpoint)
.WithOllamaTextEmbeddingGeneration(modelName, ollamaEndpoint)
#pragma warning disable KMEXP03
.AddIngestionMemoryDb(new SimpleVectorDb(SimpleVectorDbConfig.Volatile, textEmbeddingGenerator))
#pragma warning restore KMEXP03
.Build<MemoryServerless>();
var text = "Qiqi Zoo features 10 monkeys, 8 tigers, 6 elephants, 4 horses, 100 ostriches, and 99 koalas.\n\n" +
"Ticket Prices:\n\n" +
"Adults: 100 RMB\n" +
"Children: 50 RMB\n" +
"Contact: 13813818188\n" +
"Address: 999 Xinghu Street, Suzhou Industrial Park, Jiangsu, China.";
await memory.ImportTextAsync(text, "doc01");
var query = Console.ReadLine();
while (!string.IsNullOrEmpty(query))
{
var answer = await memory.AskAsync(query);
Console.WriteLine(answer);
query = Console.ReadLine();
}
问几个关于这段文字的问题,回答的非常精准.
我们还可以使用 KM 来直接识别 word,ppt,pdf 等文档。你都不用自己预处理这些文档,微软简直太贴心了.
await memory.ImportDocumentAsync(new Document("file001").AddFile("memory/QiqiZoo.docx"));
除了本地的文本,文档这些内容,KM 还能直接从远程网页上获取内容。简直了,爬虫都不用自己写了.
await memory.ImportWebPageAsync("https://www.cnblogs.com/kklldog/p/18538651", "web001");
KM 是微软从 SK Semantic memory 的开发经历与用户反馈总结孵化出来的一个框架。它提供了许多开箱即用的能力来让开发者获取 RAG 的能力。它支持导入多种多样的文档(docx,pdf,ppt,json,html...)。它可以直接集成进你的应用内,也可以作为后端服务提供更强大的处理与扩展能力。如果你想快速构建一个问答知识库,不妨试试 Kernel Memory.
参考:https://microsoft.github.io/kernel-memory/ 。
最后此篇关于KernelMemory让SK记住更多内容的文章就讲到这里了,如果你想了解更多关于KernelMemory让SK记住更多内容的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
为什么使用 java 和“du -sk”计算目录的已用空间不同?以及“du -sk”的确切 java 替代方案是什么? PFB Java 代码, final String location =
我在阅读某些方法的名称时确实遇到了一些困难,因为 Apple 没有提供其缩写的附录,对于该方法:SKPaymentQueue,SK 代表什么? 最佳答案 它代表StoreKit。请注意您用于获取该类的
更新: 每个请求我都有 NSLogged [[event touchesForView:self.view] count] 和 touches count 并得到 2 和 1 当故障发生时,那么事件似
使用以下代码,我尝试加载数据集并对其执行 NB 算法。 from sklearn.naive_bayes import MultinominalNB import pandas as pd impor
我有一个 SKAction,如果触摸屏幕上的某个区域,它就会运行一个操作。但是我无法让 SKanimate 仅运行 SKarray 一次(即两个操作),它似乎运行了大约 4 次。 count 参数似乎
我正在使用 SK map 。我可以在 Location 上显示注释,但 map 不会以该位置为中心,而是以某个不同的位置为中心,并且 animateToZoom 无法平滑缩放。任何帮助将不胜感激。 最
在警告消息中使用 OpenSSL 中的库时: warning: pointer type mismatch in conditional expression [enabled by default]
我想调整图像大小。我的图像包含特定值 [0, 1, 2, 7, 9]。调整大小后,会引入新值,例如 5 等。我想阻止这种情况。 我目前正在使用 scikit图像大小调整功能。我已经尝试了所有插值标志,
我在 MySQL 中有一个简单的 posts 表,其中有一个 POST_ID 作为 SK(代理键)。对原始帖子 ID 的回复存储在同一个表的 PARENT_POST_ID 列中,但我想执行以下逻辑:
我有超过六个与 Facebook 集成的应用程序。他们都使用旧的 Facebook iOS SDK(在其 SDK 的单点登录版本之前)。去年左右一切都进展顺利。现在,所有应用程序都会报告错误:“操作链
我让球每 3 秒生成一次,如果分数增加,我希望球生成得更快。问题是我的生成率在 4 秒内保持不变,并且在我的分数增加时不会改变。感谢m8s的帮助 var spawnRate : TimeInt
我有一个名为 Cell 的 SKNode 子类。我设置了所有物理体,它们正确地碰撞。但是,didBeginContact() 函数位于 GameScene 中,我需要它位于 Cell 中,因为我想调用
import pandas import math from csv import reader import sys import numpy as np from pandas.plotting
我在本地计算机上创建了一个 sklearn 模型。然后我把它上传到谷歌存储上。我使用相同的模型在 AI Platform 中创建了模型和版本。它正在用于在线预测。现在我想执行批量预测并将数据存储到大查
当用户点击“购买”按钮时,我的应用程序向 StoreKit 发出 addPayment。之后,我想显示带有“请稍候”和事件指示器的警报 View 。但是,SK 也可以显示警报 View 。有什么办法可
我正在使用 Swift 2 在 XCode 7 中制作游戏。我有一个变量,我想从开始屏幕(它是一个 UIViewController)传递到游戏场景(它是一个 SKScene)。我希望玩家在 UIVi
我正在尝试通过创建自己的游戏(应用程序)来学习 Swift,但我遇到了问题。 我有一个 SKSpriteNode 用作游戏的背景。这是我制作的图像。我的问题是我的背景不会填满 View ,所以我在节点
我非常需要你的帮助。所以我是 XCODE 的 SpriteKit 的新手,我刚刚开始使用这个机制。我目前有一个背景图像和一个位于中心的 Sprite 。 问题 Sprite 在屏幕上水平移动,这正是我
我正在尝试使用适用于 Android 的 SK map SDK,但我遇到了一些问题。我已按照本网站的指导进行操作:http://developer.skobbler.com/getting-start
我正在创建一个基于瓦片 map 的 2d 游戏,这是我自己做的第一个程序,所以请在您花时间回答我时考虑一下 :) 我已经构建了 UI 和一张小 map ,我终于让我的角色可以用箭头键移动了。但是我找不
我是一名优秀的程序员,十分优秀!