Microsoft.KernelMemory是一个开源的服务和插件,专门用于通过自定义的连续数据混合管道对数据集进行高效的索引。
利用先进的嵌入和LLM,系统可以使用自然语言对索引的数据进行查询,同时提供引用和链接到原始来源。
Microsoft.KernelMemory可以作为Semantic Kernel, Microsoft Copilot和ChatGPT的插件,与最流行的AI平台上构建的应用程序进行无缝集成,增强数据驱动的功能。
//项目地址:https://github.com/microsoft/kernel-memory
换句话说,Microsoft.KernelMemory能方便我们使用自然语言来管理和查询索引的数据信息,同时还能自定义每个步骤的处理逻辑及后端应用。
目前,Microsoft.KernelMemory支持以下后端:
- 向量存储:Azure Cognitive Search、Qdrant
- 内容存储:Azure Blobs、本地文件系统
- 异步摄取队列:Azure Queues、RabbitMQ、本地文件基础队列
支持以下几种模式:
- 服务模式:Microsoft.KernelMemory作为一个服务运行,可以吞吐数千个文档和信息,而不会阻塞你的应用程序。你可以使用MemoryWebClient来与服务进行通信,发送文档,查询和请求。
var client = new MemoryWebClient("http://localhost:5000");
- 无服务器模式:可以将MemoryServerlessClient嵌入到你的应用程序中,直接在本地进行文档导入和查询。这种模式适合于小规模的数据集和快速的原型开发。
var memory = new KernelMemoryBuilder () .WithOpenAIDefaults(Env.Var("OPENAI_API_KEY")) .Build();
- 库模式:可以直接使用Microsoft.KernelMemory的核心类和接口,自定义你的数据管道和业务处理逻辑。这种模式适合于高度定制化的场景和高级用户。
var memoryBuilder = new KernelMemoryBuilder().WithOpenAIDefaults(Env.Var("OPENAI_API_KEY")); memoryBuilder.Build(); var orchestrator = memoryBuilder.GetOrchestrator(); // Define custom .NET handlers var step1 = new MyHandler1("step1", orchestrator); var step2 = new MyHandler2("step2", orchestrator); var step3 = new MyHandler3("step3", orchestrator); await orchestrator.AddHandlerAsync(step1); await orchestrator.AddHandlerAsync(step2); await orchestrator
接下来,我们通过一个简单的Demo来了解它。扫个关注吧
标签:orchestrator,索引,KernelMemory,使用,var,new,Microsoft From: https://www.cnblogs.com/anech/p/microsoft-kernelmemory-subject.html