今天发现 Semantic Kernel 的 Memory 有两种实现,分别是 Semantic Memory 与 Kernel Memory,它们的区别是什么?
从 Kernel Memory github 仓库的 readme 中找到了答案:
关于 Semantic Memory:
Semantic Memory (SM) is a library for C#, Python, and Java that wraps direct calls to databases and supports vector search. It was developed as part of the Semantic Kernel (SK) project and serves as the first public iteration of long-term memory. The core library is maintained in three languages, while the list of supported storage engines (known as "connectors") varies across languages.
关于 Kernel Memory:
Kernel Memory (KM) is a service built on the feedback received and lessons learned from developing Semantic Kernel (SK) and Semantic Memory (SM). It provides several features that would otherwise have to be developed manually, such as storing files, extracting text from files, providing a framework to secure users' data, etc. The KM codebase is entirely in .NET, which eliminates the need to write and maintain features in multiple languages. As a service, KM can be used from any language, tool, or platform, e.g. browser extensions and ChatGPT assistants.
Kernel Memory 的仓库名称 kernel-memory 是从 semantic-memory 改名过来的 https://github.com/microsoft/semantic-memory