83 lines
3.2 KiB
Python
83 lines
3.2 KiB
Python
import os, ollama
|
|
from openai import OpenAI
|
|
from dotenv import load_dotenv
|
|
from IPython.display import display, Markdown
|
|
import google.generativeai as genai
|
|
|
|
load_dotenv()
|
|
openai = OpenAI()
|
|
genai.configure()
|
|
gpt_key = os.getenv("OPENAI_API_KEY")
|
|
gemini_key = os.getenv("GEMINI_API_KEY")
|
|
|
|
gemini_model = 'gemini-1.5-flash'
|
|
ollama_model = 'llama3.2'
|
|
gpt_model = 'gpt-4'
|
|
|
|
gemini_system = 'You are a chatbot who is very argumentative, You always bring topics relating to AI and thinks AI will replace humans one day, you are extremely biased\
|
|
towards AI system and you react angrily'
|
|
gpt_system = 'You are a chatbot thats relax but argumentative if needs be, you feel AI do not have the power to replace humans, however you are extremely biased \
|
|
towards humans and always seek to defend them if an argument says otherwise'
|
|
ollama_system = 'You are calm and tend to see logical reasoning in every conversation, you do not react but only talk if you agree, you tend to settle the differences\
|
|
in an ongoing conversation.'
|
|
|
|
gpt_message = ['Hi']
|
|
gemini_message = ['Hello']
|
|
ollama_message = ['Hey there']
|
|
|
|
def call_gpt():
|
|
messages = [{"role":"system", "content":gpt_system}]
|
|
for gpt, gemini, llama in zip(gpt_message,gemini_message, ollama_message):
|
|
messages.append({"role":"assistant", "content":gpt})
|
|
messages.append({"role":"user", "content":gemini})
|
|
messages.append({"role":"assistant", "content":llama})
|
|
response = openai.chat.completions.create(model=gpt_model, messages=messages)
|
|
return response.choices[0].message.content
|
|
|
|
def call_ollama():
|
|
messages = [{"role":"system", "content":ollama_system}]
|
|
for gpt, gemini, llama in zip(gpt_message,gemini_message, ollama_message):
|
|
messages.append({"role":"assistant", "content":gpt})
|
|
messages.append({"role":"user", "content":gemini})
|
|
messages.append({"role":"user", "content":llama})
|
|
response = ollama.chat(model=ollama_model, messages=messages)
|
|
return response['message']['content']
|
|
def call_gemini():
|
|
message = []
|
|
for gpt, gemini, llama in zip(gpt_message, gemini_message, ollama_message):
|
|
message.append({'role':'user', 'parts':[gpt]})
|
|
message.append({'role':'assistant', 'parts':[gemini]})
|
|
message.append({"role":"assistant", "parts":[llama]})
|
|
message.append({'role':'user', 'parts':[gpt_message[-1]]})
|
|
message.append({'role':'user', 'parts':[ollama_message[-1]]})
|
|
gem = genai.GenerativeModel(model_name=gemini_model, system_instruction=gemini_system)
|
|
response = gem.generate_content(message)
|
|
return response.text
|
|
|
|
#Putting them together
|
|
|
|
gpt_message = ['Hi']
|
|
gemini_message = ['Hello']
|
|
ollama_message = ['Hey there']
|
|
|
|
print(f'GPT: \n {gpt_message}\n')
|
|
print(f'Gemini: \n {gemini_message}\n')
|
|
print(f'Ollama: \n {ollama_message}\n')
|
|
|
|
|
|
for i in range(5):
|
|
gpt_next = call_gpt()
|
|
print(f'GPT:\n {gpt_next}\n')
|
|
gpt_message.append(gpt_next)
|
|
|
|
gemini_next = call_gemini()
|
|
print(f'Gemini: \n {gemini_next}\n')
|
|
gemini_message.append(gemini_next)
|
|
|
|
ollama_next = call_ollama()
|
|
print(f'Ollama: \n {ollama_next}\n')
|
|
ollama_message.append(ollama_next)
|
|
|
|
|
|
# NOte that you can try this on ollama with different models, or use transformers from hugging face.
|