74 lines
2.5 KiB
Python
74 lines
2.5 KiB
Python
#!/usr/binpython3
|
|
|
|
import os
|
|
from dotenv import load_dotenv
|
|
from openai import OpenAI
|
|
import anthropic
|
|
|
|
gpt_messages = ["Hi there! is this the right room for an argument?"]
|
|
claude_messages = ["No it is not"]
|
|
|
|
def load_api_keys():
|
|
# Load environment variables in a file called .env
|
|
load_dotenv(override=True)
|
|
openai_api_key = os.getenv('OPENAI_API_KEY')
|
|
anthropic_api_key = os.getenv('ANTHROPIC_API_KEY')
|
|
|
|
# Check the key
|
|
if not openai_api_key:
|
|
return "Error: No OpenAI API key was found!"
|
|
elif not anthropic_api_key:
|
|
return "Error: No Anthropic API key was found!"
|
|
else:
|
|
return "API keys found!"
|
|
|
|
def call_gpt(openai):
|
|
gpt_model = "gpt-4.1-mini"
|
|
gpt_system = "You are a patient visiting the Argument Clinic from the famous Monty Python sketch. \
|
|
You are very eager to have a real arguement and will quickly be irritated if someone merely contradicts you."
|
|
messages = [{"role": "system", "content": gpt_system}]
|
|
for gpt, claude in zip(gpt_messages, claude_messages):
|
|
messages.append({"role": "assistant", "content": gpt})
|
|
messages.append({"role": "user", "content": claude})
|
|
completion = openai.chat.completions.create(
|
|
model=gpt_model,
|
|
messages=messages
|
|
)
|
|
return completion.choices[0].message.content
|
|
|
|
def call_claude(claude):
|
|
claude_model = "claude-3-5-haiku-latest"
|
|
claude_system = "You are a proffesional arguer at the Argument Clinic from the famous Monty Python sketch. \
|
|
You love to contradict whatever the person talking to you is saying."
|
|
messages = []
|
|
for gpt, claude_message in zip(gpt_messages, claude_messages):
|
|
messages.append({"role": "user", "content": gpt})
|
|
messages.append({"role": "assistant", "content": claude_message})
|
|
messages.append({"role": "user", "content": gpt_messages[-1]})
|
|
message = claude.messages.create(
|
|
model=claude_model,
|
|
system=claude_system,
|
|
messages=messages,
|
|
max_tokens=500
|
|
)
|
|
return message.content[0].text
|
|
|
|
def main():
|
|
load_api_keys()
|
|
openai = OpenAI()
|
|
claude = anthropic.Anthropic()
|
|
|
|
print(f"GPT:\n{gpt_messages[0]}\n")
|
|
print(f"Claude:\n{claude_messages[0]}\n")
|
|
|
|
for i in range(5):
|
|
gpt_next = call_gpt(openai)
|
|
print(f"GPT:\n{gpt_next}\n")
|
|
gpt_messages.append(gpt_next)
|
|
claude_next = call_claude(claude)
|
|
print(f"Claude:\n{claude_next}\n")
|
|
claude_messages.append(claude_next)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|