Files
agent-framework/python/packages/redis
T
Eduard van Valkenburg 6138487888 Python: Phase 2: Embedding clients for Ollama, Bedrock, and Azure AI Inference (#4207)
* Phase 2: Embedding clients for Ollama, Bedrock, and Azure AI Inference

Add embedding client implementations to existing provider packages:

- OllamaEmbeddingClient: Text embeddings via Ollama's embed API
- BedrockEmbeddingClient: Text embeddings via Amazon Titan on Bedrock
- AzureAIInferenceEmbeddingClient: Text and image embeddings via Azure AI
  Inference, supporting Content | str input with separate model IDs for
  text (AZURE_AI_INFERENCE_EMBEDDING_MODEL_ID) and image
  (AZURE_AI_INFERENCE_IMAGE_EMBEDDING_MODEL_ID) endpoints

Additional changes:
- Rename EmbeddingCoT -> EmbeddingT, EmbeddingOptionsCoT -> EmbeddingOptionsT
- Add otel_provider_name passthrough to all embedding clients
- Register integration pytest marker in all packages
- Add lazy-loading namespace exports for Ollama and Bedrock embeddings
- Add image embedding sample using Cohere-embed-v3-english
- Add azure-ai-inference dependency to azure-ai package

Part of #1188

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix mypy duplicate name and ruff lint issues

- Rename second 'vector' variable to 'img_vector' in image embedding loop
- Combine nested with statements in tests
- Remove unused result assignments in tests

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* updates from feedback

* Fix CI failures in embedding usage handling

- Fix Azure AI embedding mypy issues by normalizing vectors to list[float],
  safely accumulating optional usage token fields, and filtering None entries
  before constructing GeneratedEmbeddings
- Avoid Bandit false positive by initializing usage details as an empty dict
- Update OpenAI embedding tests to assert canonical usage keys
  (input_token_count/total_token_count)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
6138487888 ยท 2026-02-25 17:45:08 +00:00
History
..

Get Started with Microsoft Agent Framework Redis

Please install this package via pip:

pip install agent-framework-redis --pre

Components

Memory Context Provider

The RedisProvider enables persistent context & memory capabilities for your agents, allowing them to remember user preferences and conversation context across sessions and threads.

Basic Usage Examples

Review the set of getting started examples for using the Redis context provider.

Redis Chat Message Store

The RedisChatMessageStore provides persistent conversation storage using Redis Lists, enabling chat history to survive application restarts and support distributed applications.

Key Features

  • Persistent Storage: Messages survive application restarts
  • Thread Isolation: Each conversation thread has its own Redis key
  • Message Limits: Configurable automatic trimming of old messages
  • Serialization Support: Full compatibility with Agent Framework thread serialization
  • Production Ready: Connection pooling, error handling, and performance optimized

Basic Usage Examples

See the complete Redis history provider examples including:

  • User session management
  • Conversation persistence across restarts
  • Session serialization and deserialization
  • Automatic message trimming
  • Error handling patterns

Installing and running Redis

You have 3 options to set-up Redis:

Option A: Local Redis with Docker

docker run --name redis -p 6379:6379 -d redis:8.0.3

Option B: Redis Cloud

Get a free db at https://redis.io/cloud/

Option C: Azure Managed Redis

Here's a quickstart guide to create Azure Managed Redis for as low as $12 monthly: https://learn.microsoft.com/en-us/azure/redis/quickstart-create-managed-redis