You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
swarms/examples/communication_examples/redis_conversation.py

53 lines
1.3 KiB

from swarms.communication.redis_wrap import RedisConversation
import json
import time
def print_messages(conv):
messages = conv.to_dict()
print(f"Messages for conversation '{conv.get_name()}':")
print(json.dumps(messages, indent=4))
# First session - Add messages
print("\n=== First Session ===")
conv = RedisConversation(
use_embedded_redis=True,
redis_port=6380,
token_count=False,
cache_enabled=False,
auto_persist=True,
redis_data_dir="/Users/swarms_wd/.swarms/redis",
name="my_test_chat", # Use a friendly name instead of conversation_id
)
# Add messages
conv.add("user", "Hello!")
conv.add("assistant", "Hi there! How can I help?")
conv.add("user", "What's the weather like?")
# Print current messages
print_messages(conv)
# Close the first connection
del conv
time.sleep(2) # Give Redis time to save
# Second session - Verify persistence
print("\n=== Second Session ===")
conv2 = RedisConversation(
use_embedded_redis=True,
redis_port=6380,
token_count=False,
cache_enabled=False,
auto_persist=True,
redis_data_dir="/Users/swarms_wd/.swarms/redis",
name="my_test_chat", # Use the same name to restore the conversation
)
# Print messages from second session
print_messages(conv2)
# You can also change the name if needed
# conv2.set_name("weather_chat")