Kernel Memory
Kernel Memory (KM) is a multi-modal AI Service specialized in the efficient indexing of documents and information through custom continuous data pipelines, with support for Retrieval Augmented Generation (RAG), synthetic memory, prompt engineering, and custom semantic memory processing.
KM supports PDF and Word documents, PowerPoint presentations, Images, Spreadsheets and more, extracting information and generating memories by leveraging Large Language Models (LLMs), Embeddings and Vector storage.
Utilizing advanced embeddings, LLMs and prompt engineering, the system enables Natural Language querying for obtaining answers from the information stored, complete with citations and links to the original sources.
Kernel Memory is designed for seamless integration with any programming language, providing a web service that can also be consumed as an OpenAPI endpoint for ChatGPT, web clients ready to use, and a Plugin for Microsoft Copilot and Semantic Kernel.
Kernel Memory (KM) and Semantic Memory (SM)
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.
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.
Here’s comparison table:
Feature | Kernel Memory | Semantic Memory |
---|---|---|
Data formats | Web pages, PDF, Images, Word, PowerPoint, Excel, Markdown, Text, JSON, HTML | Text only |
Search | Cosine similarity, Hybrid search with filters (AND/OR conditions) | Cosine similarity |
Language support | Any language, command line tools, browser extensions, low-code/no-code apps, chatbots, assistants, etc. | C#, Python, Java |
Storage engines | Azure AI Search, Elasticsearch, MongoDB Atlas, Postgres+pgvector, Qdrant, Redis, MSSQL Server, In memory KNN, On disk KNN. In progress: Azure Cosmos DB for MongoDB vCore, Chroma | Azure AI Search, Chroma, DuckDB, Kusto, Milvus, MongoDB, Pinecone, Postgres, Qdrant, Redis, SQLite, Weaviate |
File storage | Disk, Azure Blobs, MongoDB Atlas, In memory (volatile) | - |
RAG | Yes, with sources lookup | - |
Summarization | Yes | - |
OCR | Yes via Azure Document Intelligence | - |
Security Filters | Yes | - |
Large document ingestion | Yes, including async processing using queues (Azure Queues, RabbitMQ, File based or In memory queues) | - |
Document storage | Yes | - |
Custom storage schema | some DBs | - |
Vector DBs with internal embedding | Yes | - |
Concurrent write to multiple vector DBs | Yes | - |
LLMs | Azure OpenAI, OpenAI, LLamaSharp via llama.cpp, LM Studio, Anthropic, Semantic Kernel connectors | Azure OpenAI, OpenAI, Gemini, Hugging Face, ONNX, custom ones, etc. |
LLMs with dedicated tokenization | Yes | No |
Cloud deployment | Yes | - |
Web service with OpenAPI | Yes | - |
Topics
- Quickstart: test KM in few minutes
- Memory service, web clients and plugins
- Memory API, memory ingestion and information retrieval
- KM Extensions: vector DBs, AI models, Data formats, Orchestration, Content storage
- Embedding serverless memory in .NET apps
- Security, service and users
- How-to guides, customizing KM and examples
- Concepts, KM glossary
- KM packages