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 包含了一下步驟:
- extract
- summarize
- gen_embeddings
- 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標記的段落進行檢索。
同理,生成摘要的過程也可以進行自定義的過程,例如文章分類,關鍵詞提取,實體提取,題圖生成等任何的文章處理流程。后續也會詳細介紹【自定義流程】的處理。
參考
- Summarizing documents
- kernel-memory/service/Abstractions/KernelMemoryExtensions.cs
總結
以上是生活随笔為你收集整理的Kernel Memory 入门系列:生成并获取文档摘要的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文选题后怎么找文献
- 下一篇: 论文感谢文献英语