|
37 | 37 | use Symfony\AI\Chat\Bridge\HttpFoundation\SessionStore; |
38 | 38 | use Symfony\AI\Chat\Bridge\Meilisearch\MessageStore as MeilisearchMessageStore; |
39 | 39 | use Symfony\AI\Chat\Bridge\Pogocache\MessageStore as PogocacheMessageStore; |
| 40 | +use Symfony\AI\Chat\Bridge\Redis\MessageStore as RedisMessageStore; |
40 | 41 | use Symfony\AI\Chat\MessageStoreInterface; |
41 | 42 | use Symfony\AI\Platform\Bridge\Anthropic\PlatformFactory as AnthropicPlatformFactory; |
42 | 43 | use Symfony\AI\Platform\Bridge\Azure\OpenAi\PlatformFactory as AzureOpenAiPlatformFactory; |
@@ -1393,6 +1394,30 @@ private function processMessageStoreConfig(string $type, array $messageStores, C |
1393 | 1394 | } |
1394 | 1395 | } |
1395 | 1396 |
|
| 1397 | + if ('redis' === $type) { |
| 1398 | + foreach ($messageStores as $name => $messageStore) { |
| 1399 | + if (isset($messageStore['client'])) { |
| 1400 | + $redisClient = new Reference($messageStore['client']); |
| 1401 | + } else { |
| 1402 | + $redisClient = new Definition(\Redis::class); |
| 1403 | + $redisClient->setArguments([$messageStore['connection_parameters']]); |
| 1404 | + } |
| 1405 | + |
| 1406 | + $definition = new Definition(RedisMessageStore::class); |
| 1407 | + $definition |
| 1408 | + ->setArguments([ |
| 1409 | + $redisClient, |
| 1410 | + $messageStore['index_name'], |
| 1411 | + new Reference('serializer'), |
| 1412 | + ]) |
| 1413 | + ->addTag('ai.message_store'); |
| 1414 | + |
| 1415 | + $container->setDefinition('ai.message_store.'.$type.'.'.$name, $definition); |
| 1416 | + $container->registerAliasForArgument('ai.message_store.'.$type.'.'.$name, MessageStoreInterface::class, $name); |
| 1417 | + $container->registerAliasForArgument('ai.message_store.'.$type.'.'.$name, MessageStoreInterface::class, $type.'_'.$name); |
| 1418 | + } |
| 1419 | + } |
| 1420 | + |
1396 | 1421 | if ('session' === $type) { |
1397 | 1422 | foreach ($messageStores as $name => $messageStore) { |
1398 | 1423 | $definition = new Definition(SessionStore::class); |
|
0 commit comments