首页 > 其他分享 >Kernel Memory 入门系列:生成并获取文档摘要

Kernel Memory 入门系列:生成并获取文档摘要

时间:2023-12-25 09:04:23浏览次数:32  
标签:Kernel 摘要 生成 获取 文档 Memory

Kernel Memory 入门系列:生成并获取文档摘要

前面在RAG和文档预处理的流程中,我们得到一个解决方案,可以让用户直接获取最终的问题答案。

但是实际的业务场景中,仍然存在一些基础的场景,不需要我们获取文档的所有详情的,而只是了解的文档的大概信息,得到文章整体的摘要或者总结,此时仍然可以使用Kernel Memory来处理。

生成摘要

我们依然使用Kernel Memory的文件导入方法,不过此时不需要指定默认的处理流程,而只需要指定Summary流程即可。

await memory.ImportDocumentAsync(new Document("doc1")
        .AddFile("file4-SK-Readme.pdf")
        .AddFile("file5-NASA-news.pdf"),
    steps: Constants.PipelineOnlySummary);

其中PipelineOnlySummary 包含了一下步骤:

  1. extract
  2. summarize
  3. gen_embeddings
  4. save_records

相比较默认的流程,仅是将partition变更为了summarize, 但是实际存储的记录将不再是源文档的分片,而是经过LLM总结之后的内容摘要。

获取摘要

获取的摘要的方法更加直接,使用SearchSummariesAsync方法,通过文档过滤条件过滤需要获取文档摘要即可。

// Fetch the list of summaries. The API returns one summary for each file.
var results = await memory.SearchSummariesAsync(filter: MemoryFilters.ByDocument("doc1"));

// Print the summaries!
foreach (var result in results)
{
    Console.WriteLine($"== {result.SourceName} summary ==\n{result.Partitions.First().Text}\n");
}

检索生成数据

摘要的生成和检索在Kernel Memory中实际是数据类型标记和自定义筛选筛选的过程。

在生成摘要的过程中,将摘要内容作为生成内容,通过添加__synth:summary标记进行存储,筛选的时候也是类似。文档的标记和筛选,将会在后续【文档管理】中的详细讲解。

而摘要的检索的过程SearchSummariesAsync实际上也是调用SearchSyntheticsAsync过程,指定了__synth:summary标记的段落进行检索。

同理,生成摘要的过程也可以进行自定义的过程,例如文章分类,关键词提取,实体提取,题图生成等任何的文章处理流程。后续也会详细介绍【自定义流程】的处理。

参考

标签:Kernel,摘要,生成,获取,文档,Memory
From: https://www.cnblogs.com/xbotter/p/kernel_memory_summaries.html

相关文章

  • Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
     001、报错记录合并gvcf使用脚本如下:gatk CombineGVCFs-RGCF_001704415.2_ARS1.2_genomic.fna--variantgvcf.list-Otest.g.vcf.gz 报错如下: 002、解决方法,设置内存上限可以解决上述报错:gatk--java-options"-Xmx480g-Xms480g-XX:+UseSerialGC"CombineGVC......
  • 幽灵和熔断+LR/SC的实现和使用+Consistent和Coherent+memory 属性 Device-nGnRnE+IP-X
    幽灵和熔断幽灵和熔断是基于瞬态指令流的缓存侧信道攻击。在瞬态指令流中被执行的内存加载指令如果将一个数据带入了缓存,则即使流水线回滚期间处理器丢弃了该指令返回的访存结果,已经被修改的缓存状态却无法撤销。由此,攻击者可以通过监测缓存的变化来推断受害者程序的访存地址,如果......
  • Semantic Kernel 正式发布 v1.0.1 版本
    微软在2023年12月19日在博客上(SayhellotoSemanticKernelV1.0.1)发布了Semantickernel的.NET正式1.0.1版本。新版本提供了新的文档,以解释SDK创建AI代理的能力,这些代理可以与用户交互、回答问题、调用现有代码、自动化流程和执行各种其他任务。SemanticKernel是一个开源......
  • 全面的开发者文档和用户目标解析:API 文档指南和开发者旅程
    开发者文档开发者文档,也称为API文档,是一种专门针对软件开发人员的技术写作形式。这种类型的文档通常包括API的技术规范、代码注释、软件设计和架构以及软件开发中涉及的其他详细技术描述。开发者文档是开发人员的重要工具,因为它提供了使用和集成特定软件、库或API的必要指南......
  • 全面的开发者文档和用户目标解析:API 文档指南和开发者旅程
    开发者文档开发者文档,也称为API文档,是一种专门针对软件开发人员的技术写作形式。这种类型的文档通常包括API的技术规范、代码注释、软件设计和架构以及软件开发中涉及的其他详细技术描述。开发者文档是开发人员的重要工具,因为它提供了使用和集成特定软件、库或API的必要指......
  • 使用office打开word文档时候提示错误:0x426-0x0的解决方案
    在使用office打开word文档时候提示错误:0x426-0x0。如下图:昨天还用的好好的,怎么今天就不行了?为什么呢?这个错误导致office无法启动通常是由于office软件所依赖的服务无法正常运行导致。为什么会无法启动呢?突然想到,凯哥昨天手贱,昨天电脑重启时候,提示有需要优化的启动项,于是在wind+R,运......
  • 后端 API 接口文档 Swagger 使用指南
    后端API接口文档Swagger使用指南转载自:https://zhuanlan.zhihu.com/p/98560871前言一:swagger是什么?二:为什么要使用swaager?2.1:对于后端开发人员来说2.2:对于前端开发来说2.3:对于测试三:如何搭一个swagger3.1:引入swagger的依赖3.2:springBoot整合swagg......
  • 博客园SimpleMemory主题美化
    前言:在撰写此文之前,我曾尝试过多种博客平台。每个平台都有其优点和缺点,但始终没有一个平台能够完全符合我的需求。有些平台难以操作,有些平台定制化水平不够高,有些平台又存在一些不足之处。直到我发现了博客园。我被博客园简洁、美观的界面、友好的社区氛围和强大的定制化能力所......
  • OpenPLC官方文档简单翻译(二)OpenPLC Runtime
    参考网址:https://autonomylogic.com/docs/2-1-openplc-runtime-overview/网站更新时间:2022-10-052.1 OpenPLCRuntime概述OpenPLCRuntime用来运行Editor创建的PLC程序。Mainruntime有一个内置的网络服务器,可以配置runtime的多个参数。但OpenPLCruntime的微型实现(直接运行......
  • OpenPLC官方文档简单翻译(三)OpenPLC Editor
    参考网址:https://autonomylogic.com/docs/3-1-openplc-editor-overview/网站更新时间:2022-10-053.1 OpenPLCEditor概略OpenPLC编辑器是一款符合IEC61131-3标准的PLC代码编辑器。它允许您创建、编译IEC61131-3程序并将其上传到OpenPLCRuntime。编辑器使用非常简......