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.
86 lines
2.6 KiB
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()
|