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/misc/test_load_conversation.py

86 lines
2.6 KiB

from swarms.structs.conversation import (
Conversation,
get_conversation_dir,
)
import os
import shutil
def cleanup_test_conversations():
"""Clean up test conversation files after running the example."""
conv_dir = get_conversation_dir()
if os.path.exists(conv_dir):
shutil.rmtree(conv_dir)
print(
f"\nCleaned up test conversations directory: {conv_dir}"
)
def main():
# Example 1: In-memory only conversation (no saving)
print("\nExample 1: In-memory conversation (no saving)")
conv_memory = Conversation(
name="memory_only_chat",
save_enabled=False, # Don't save to disk
autosave=False,
)
conv_memory.add("user", "This conversation won't be saved!")
conv_memory.display_conversation()
# Example 2: Conversation with autosaving
print("\nExample 2: Conversation with autosaving")
conversation_dir = get_conversation_dir()
print(f"Conversations will be stored in: {conversation_dir}")
conv_autosave = Conversation(
name="autosave_chat",
conversations_dir=conversation_dir,
save_enabled=True, # Enable saving
autosave=True, # Enable autosaving
)
print(f"Created new conversation with ID: {conv_autosave.id}")
print(
f"This conversation is saved at: {conv_autosave.save_filepath}"
)
# Add some messages (each will be autosaved)
conv_autosave.add("user", "Hello! How are you?")
conv_autosave.add(
"assistant",
"I'm doing well, thank you! How can I help you today?",
)
# Example 3: Load from specific file
print("\nExample 3: Load from specific file")
custom_file = os.path.join(conversation_dir, "custom_chat.json")
# Create a conversation and save it to a custom file
conv_custom = Conversation(
name="custom_chat",
save_filepath=custom_file,
save_enabled=True,
)
conv_custom.add("user", "This is a custom saved conversation")
conv_custom.add(
"assistant", "I'll be saved in a custom location!"
)
conv_custom.save_as_json()
# Now load it specifically
loaded_conv = Conversation.load_conversation(
name="custom_chat", load_filepath=custom_file
)
print("Loaded custom conversation:")
loaded_conv.display_conversation()
# List all saved conversations
print("\nAll saved conversations:")
conversations = Conversation.list_conversations(conversation_dir)
for conv_info in conversations:
print(
f"- {conv_info['name']} (ID: {conv_info['id']}, Created: {conv_info['created_at']})"
)
main()