-----------------------------------------------------
Używanie biblioteki Pythona do wywoływania OpenAI API
-----------------------------------------------------

!pip install openai
from openai import OpenAI

api_key = "<api-key>"
client = OpenAI(api_key=api_key)

completion = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {'role': 'system', 'content': 'Jesteś asystentem, który tworzy slogan na podstawie opisu firmy'},
        {"role": "user", "content": "Firma, która sprzedaje lody"}
    ],
    n=1,
    temperature=1
)

import json
completion_json = json.loads(completion.json())
print(completion_json)

print(completion_json['choices'][0]['message']['content'])

-------------------------------------------------------------
Używanie modelu osadzeń do porównywania tekstu i innych celów
-------------------------------------------------------------

!pip install openai
from openai import OpenAI
from numpy import dot
from numpy.linalg import norm

api_key = "<klucz-api>"
client = OpenAI(api_key=api_key)

def create_embeddings(text):
  embedding = client.embeddings.create(input=text, model="text-embedding-ada-002").data[0].embedding
  return embedding

def compare_two_embeddings(a, b):
  cos_sim = dot(a, b)/(norm(a)*norm(b))
  return cos_sim

text_1 = "Lubię jeść jabłka"
text_2 = "Lubię jeść banany"
round(compare_two_embeddings(create_embeddings(text_1), create_ embeddings(text_2)), 2)

text_1 = "Lubię jeść jabłka"
text_2 = "Rzeczpospolita Polska jest dobrem wspólnym wszystkich obywateli"
round(compare_two_embeddings(create_embeddings(text_1), create_ embeddings(text_2)), 2)

text_1 = "Ptaki lubią latać"
text_2 = "Samoloty mogą szybować nad ziemią"
round(compare_two_embeddings(create_embeddings(text_1), create_ embeddings(text_2)), 2)

text_1 = "Ptaki lubią latać"
text_2 = "Muszę lecieć do pracy"
round(compare_two_embeddings(create_embeddings(text_1), create_ embeddings(text_2)), 2)

-----------------------------
Dostrajanie modelu uzupełnień
-----------------------------
!pip install openai
from openai import OpenAI
import os

api_key = "<klucz-api>"
client = OpenAI(api_key=api_key)

training_data = client.files.create(
  file=open("r4danetreningowe.json", "rb"),
  purpose='fine-tune'
)
file_id = training_data.id

fine_tune_job = client.fine_tuning.jobs.create(training_file=file_id, model="gpt-3.5-turbo")

client.fine_tuning.jobs.retrieve(fine_tune_job.id).status

fine_tuned_model = client.fine_tuning.jobs.retrieve(fine_tune_job.id).fine_tuned_model

completion = client.chat.completions.create(
  model=fine_tuned_model,
  messages=[
    {"role": "system", "content": "Jesteś asystentem, który tworzy krótkie żarty na podstawie danego scenariusza."}, {"role": "user", "content": "Człowiek na pustyni "}
  ]
)
print(completion.choices[0].message)

