|
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; |
@@ -1389,6 +1390,30 @@ private function processMessageStoreConfig(string $type, array $messageStores, C |
1389 | 1390 | } |
1390 | 1391 | } |
1391 | 1392 |
|
| 1393 | + if ('redis' === $type) { |
| 1394 | + foreach ($messageStores as $name => $messageStore) { |
| 1395 | + if (isset($messageStore['client'])) { |
| 1396 | + $redisClient = new Reference($messageStore['client']); |
| 1397 | + } else { |
| 1398 | + $redisClient = new Definition(\Redis::class); |
| 1399 | + $redisClient->setArguments([$messageStore['connection_parameters']]); |
| 1400 | + } |
| 1401 | + |
| 1402 | + $definition = new Definition(RedisMessageStore::class); |
| 1403 | + $definition |
| 1404 | + ->setArguments([ |
| 1405 | + $redisClient, |
| 1406 | + $messageStore['index_name'], |
| 1407 | + new Reference('serializer'), |
| 1408 | + ]) |
| 1409 | + ->addTag('ai.message_store'); |
| 1410 | + |
| 1411 | + $container->setDefinition('ai.message_store.'.$type.'.'.$name, $definition); |
| 1412 | + $container->registerAliasForArgument('ai.message_store.'.$type.'.'.$name, MessageStoreInterface::class, $name); |
| 1413 | + $container->registerAliasForArgument('ai.message_store.'.$type.'.'.$name, MessageStoreInterface::class, $type.'_'.$name); |
| 1414 | + } |
| 1415 | + } |
| 1416 | + |
1392 | 1417 | if ('session' === $type) { |
1393 | 1418 | foreach ($messageStores as $name => $messageStore) { |
1394 | 1419 | $definition = new Definition(SessionStore::class); |
|
0 commit comments