Skip to content

.Net: Create ADR for the updated Memory Connector design #5887

@markwallace-microsoft

Description

@markwallace-microsoft

Tasks

  • Create ADR
  • Azure AI Search POC
  • Redis POC
  • Qadrant POC

Context and Problem Statement

Semantic Kernel has a collection of connectors to popular Vector databases e.g. Azure AI Search, Chroma, Milvus, ...
Each Memory connector implements a memory abstraction defined by Semantic Kernel and allows developers to easily intergrate Vector databases into their applications.
The current abstractions are experimental and the purpose of this ADR is to progress the design of the abstractions so that they can graduate to non experimental status.

Decision Drivers

  • API surface must be easy to use and intuitive
    • Alignment with other patterns in the SK
  • Design must allow Memory Plugins to be easily instantiated with any connector
  • Design must support all Kernel content types
  • Design must allow for database specific configuration
  • All NFR's to be production ready are implemented
  • Basic CRUD operations must be supported so that connectors can be used in a polymorphic manner
  • Official Database Clients must be used where available
  • Dynamic database schema must be supported
  • Dependency injection must be supported
  • Azure-ML YAML format must be supported
  • Breaking glass scenarios must be supported

Questions

  • Primary use cases are described in the RAG document.
  • Prioritised list of Memory connectors
    • P1: Azure AI Search, Weaviate, Redis
    • P2: Cosmos dB, Kusto, SQL Server, LlamaIndex*
    • P3: Milvus, Pinecone, Chroma
    • Remove database that do not support vector similarity search
  • For LlamaIndex this is an integration story with their service offering

Resources

Metadata

Metadata

Assignees

Labels

.NETIssue or Pull requests regarding .NET codeenhancementmemorymemory connectorsk team issueA tag to denote issues that where created by the Semantic Kernel team (i.e., not the community)

Type

No type

Projects

Status

Sprint: Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions