microsoft / kernel-memory

RAG architecture: index and query any data using LLM and natural language, track sources, show citations, asynchronous memory patterns.
https://microsoft.github.io/kernel-memory
MIT License
1.35k stars 252 forks source link

Add DI helpers for scenarios not requiring AI #472

Closed dluc closed 1 month ago

dluc commented 1 month ago

Kernel Memory can be utilized to create applications that don't require Text Generation or Embedding Generation. However, these dependencies must still be set up. Given the absence of a method that is simultaneously fast, free, and of high quality for this setup — especially for embeddings — without resorting to API calls and authentication keys, the Kernel Memory builder lacks a default configuration and throws an exception (see issue #466 for an example).

To address this, we introduce two straightforward solutions that allow the injection of placeholder text and embedding generators:

Alternatively:

Should these placeholder classes be called upon to generate text or embeddings, they will intentionally throw a NotImplementedException exception. This ensures that any overlooked dependencies can be identified.