Files
LLM_Engineering_OLD/week2/community-contributions/wk2-day1-monty-python-arg.py

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()