Browse Source

Merge pull request #149 from Daniel15568/main

Create gpt-gemini-ollama.py
pull/178/head
Ed Donner 3 months ago committed by GitHub
parent
commit
6b72bf6559
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 82
      week2/community-contributions/gpt-gemini-ollama.py

82
week2/community-contributions/gpt-gemini-ollama.py

@ -0,0 +1,82 @@
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.
Loading…
Cancel
Save