mirror of
https://github.com/kennethreitz/simplemind.git
synced 2026-06-05 06:46:18 +00:00
60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
import time
|
|
|
|
from _context import simplemind as sm
|
|
|
|
|
|
class ConversationDisplay(sm.BasePlugin):
|
|
def post_send_hook(self, conversation, response):
|
|
# Simple print output instead of Rich formatting
|
|
print(f"\n{conversation.llm_provider}:")
|
|
print(f"{response.text.strip()}\n")
|
|
|
|
|
|
def four_way_conversation(topic: str, rounds: int = 3):
|
|
# Create conversations for four different AIs
|
|
with (
|
|
sm.create_conversation(llm_provider="anthropic") as claude_conv,
|
|
sm.create_conversation(llm_model="gpt-4", llm_provider="openai") as gpt4_conv,
|
|
sm.create_conversation(
|
|
llm_model="llama3.2", llm_provider="ollama"
|
|
) as llama_conv,
|
|
sm.create_conversation(llm_provider="groq") as groq_conv,
|
|
):
|
|
# Add display plugin to each conversation
|
|
display = ConversationDisplay()
|
|
for conv in [claude_conv, gpt4_conv, llama_conv, groq_conv]:
|
|
conv.add_plugin(display)
|
|
|
|
# Initial prompt
|
|
print(f"\nTopic: {topic}\n")
|
|
|
|
# Start with Claude
|
|
claude_conv.add_message(
|
|
"user",
|
|
f"Share your thoughts on this topic: {topic}. Keep your response concise.",
|
|
meta={},
|
|
)
|
|
last_response = claude_conv.send()
|
|
|
|
# Continue the conversation
|
|
for _ in range(rounds):
|
|
for conv in [llama_conv, gpt4_conv, groq_conv, claude_conv]:
|
|
# Add a small delay between responses
|
|
time.sleep(1)
|
|
|
|
# Each AI responds to the previous statement
|
|
conv.add_message(
|
|
"user",
|
|
f"Respond to this perspective from another AI about {topic}: "
|
|
f"{last_response.text}\nKeep your response concise and add your own insights.",
|
|
meta={},
|
|
)
|
|
last_response = conv.send()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
topic = "A new platform for AI and humans to co-create together. What would it look like? Discuss."
|
|
print("\nStarting a four-way AI conversation...\n")
|
|
four_way_conversation(topic)
|
|
print("\nConversation ended.\n")
|