Skip to content

CopilotChat: Low-level memory optimizations when uploading bot - #1149

Merged
Adrian Bonar (adrianwyatt) merged 2 commits into
microsoft:mainfrom
adrianwyatt:optimize-upload-bot
May 22, 2023
Merged

Adrian Bonar (adrianwyatt) merged 2 commits into
microsoft:mainfrom
adrianwyatt:optimize-upload-bot

Conversation

@adrianwyatt

Copy link
Copy Markdown
Contributor

Motivation and Context

High level semantic memory implementations, such as Azure Cognitive Search, do not allow for providing embeddings when storing memories. We wrap the memory store in an optional memory store to allow controllers to pass dependency injection validation and potentially optimize for a lower-level memory implementation (e.g. Qdrant). Lower level memory implementations (i.e., IMemoryStore) allow for reusing embeddings, whereas high level memory implementation (i.e., ISemanticTextMemory) assume embeddings get recalculated on every write.

Description

  • Implemented OptionalIMemoryStore to allow for BotController to pass DI validation and decide on using IMemoryStore or ISemanticTextMemory when uploading a bot.

@adrianwyatt Adrian Bonar (adrianwyatt) changed the title Low-level memory optimizations when uploading bot CopilotChat: Low-level memory optimizations when uploading bot May 22, 2023
@adrianwyatt Adrian Bonar (adrianwyatt) added the PR: ready to merge PR has been approved by all reviewers, and is ready to merge. label May 22, 2023
@adrianwyatt
Adrian Bonar (adrianwyatt) merged commit 92ed59c into microsoft:main May 22, 2023
Shawn Callegari (shawncal) pushed a commit to shawncal/semantic-kernel that referenced this pull request Jul 6, 2023
…soft#1149)

### Motivation and Context
High level semantic memory implementations, such as Azure Cognitive
Search, do not allow for providing embeddings when storing memories. We
wrap the memory store in an optional memory store to allow controllers
to pass dependency injection validation and potentially optimize for a
lower-level memory implementation (e.g. Qdrant). Lower level memory
implementations (i.e., IMemoryStore) allow for reusing embeddings,
whereas high level memory implementation (i.e., ISemanticTextMemory)
assume embeddings get recalculated on every write.

### Description
- Implemented OptionalIMemoryStore to allow for BotController to pass DI
validation and decide on using IMemoryStore or ISemanticTextMemory when
uploading a bot.
golden-aries pushed a commit to golden-aries/semantic-kernel that referenced this pull request Oct 10, 2023
…soft#1149)

### Motivation and Context
High level semantic memory implementations, such as Azure Cognitive
Search, do not allow for providing embeddings when storing memories. We
wrap the memory store in an optional memory store to allow controllers
to pass dependency injection validation and potentially optimize for a
lower-level memory implementation (e.g. Qdrant). Lower level memory
implementations (i.e., IMemoryStore) allow for reusing embeddings,
whereas high level memory implementation (i.e., ISemanticTextMemory)
assume embeddings get recalculated on every write.

### Description
- Implemented OptionalIMemoryStore to allow for BotController to pass DI
validation and decide on using IMemoryStore or ISemanticTextMemory when
uploading a bot.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

.NET Issue or Pull requests regarding .NET code PR: ready to merge PR has been approved by all reviewers, and is ready to merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants