-------------------------------------------------------------------------------------
Tworzenie aplikacji nakładkowej, która generuje odpowiedzi na Twoje wiadomości e-mail
-------------------------------------------------------------------------------------

import functions_framework
from openai import OpenAI

@functions_framework.http
def get_message(request):

    request_json = request.get_json(silent=True) email = request_json['email']
    client = OpenAI(api_key = '<Tutaj-Twój-klucz-API>')

    ### Tutaj kod Playground ###
    result = {
        'choice_1': response.choices[0].message.content,
        'choice_2': response.choices[1].message.content,
        'choice_3': response.choices[2].message.content,
    }

    return result

-------------------------------------------------------------------------------------

import functions_framework
from openai import OpenAI

@functions_framework.http
def get_message(request):

    request_json = request.get_json(silent=True)
    email = request_json['email']
    client = OpenAI(api_key = '<Tutaj-Twój-klucz-API>')

    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
          {
            "role": "system",
            "content": [
              { 
                "type": "text",
                "text": "Jesteś pomocnym asystentem, który tworzy odpowiedzi na maile, uprzejmie odmawiając wykonania przydzielonego zadania. Zwróć tylko odpowiedź na maila, nic innego."
              }
            ]
          },
          {
            "role": "user",
            "content": email
          }
        ],
        temperature=1.4,
        max_tokens=1000,
        top_p=1,
        frequency_penalty=0,
        presence_penalty=0,
        n=3
    )

    result = {
        'choice_1': response.choices[0].message.content,
        'choice_2': response.choices[1].message.content,
        'choice_3': response.choices[2].message.content,
    }

    return result

-------------------------------------------------------

{
    "email": "Hej,\n\n Dawida nie ma w pracy, więc może mógłbyś przygotować ofertę dla Nowaka do jutra rana?\n\nDzięki,\nRobert"
}

------------------------------------------------------------------------
Tworzenie aplikacji multimodalnej, która generuje plan zwiedzania miasta
------------------------------------------------------------------------

import functions_framework
from openai import OpenAI

@functions_framework.http
def get_travel_details(request):

  request_json = request.get_json(silent=True)
  city = request_json['city']

  client = OpenAI(api_key = '<tutaj klucz API>')
  response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
    {
      "role": "system",
      "content": "Jesteś pomocnym asystentem, który tworzy jednodniowe plany zwiedzania miasta wybranego przez użytkownika. Utwórz tylko 3 aktywności (rano, po południu, wieczór). Podaj tylko plan zwiedzania, nic innego."
    },
    {
      "role": "user",
      "content": "Rzym, Włochy"
    },
    {
      "role": "assistant",
      "content": "Rano: \n\Rozpocznij dzień w Koloseum, jednym z najbardziej znanych zabytków Rzymu. Wybierz się na wycieczkę z przewodnikiem, aby w pełni docenić jego historię i znaczenie. \n\nPopołudnie: \n\nUdaj się do Watykanu. Odwiedź Muzea Watykańskie, w których znajduje się ogromna kolekcja dzieł sztuki i artefaktów historycznych. Nie przegap Kaplicy Sykstyńskiej, słynącej z sufitu z freskiem Michała Anioła.\n\ nWieczór: \n\nWybierz się na spokojny spacer do Fontanny di Trevi. Pamiętaj, aby na szczęście wrzucić monetę przez ramię do fontanny. Następnie zakończ dzień pyszną włoską kolacją w jednej z pobliskich restauracji."
    },
    {
      "role": "user",
      "content": "Lizbona, Portugalia"
    },
    {
      "role": "assistant",
      "content": "Rano: \n\nRozpocznij dzień wizytą w słynnej wieży Belem, wpisanej na Listę Światowego Dziedzictwa UNESCO, skąd roztacza się panoramiczny widok na Lizbonę. \n\nPopołudnie: \n\nOdkryj historyczną dzielnicę Alfama. Przechadzaj się wąskimi, krętymi uliczkami, odwiedź katedrę Se i zjedz tradycyjny portugalski lunch w lokalnej tawernie.\n\nWieczór: \n\nUdaj się na kolację do Bairro Alto, artystycznej dzielnicy miasta. Następnie wybierz się na pokaz Fado – tradycyjnego portugalskiego tańca – w jednym z lokalnych barów."
    },
    {
      "role": "user",
      "content": city
    },
    ],
    temperature=0.64,
    max_tokens=1024,
    top_p=1,
    frequency_penalty=0,
    presence_penalty=0
  )

  itinerary = response.choices[0].message.content
  
  response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
    {
      "role": "system",
      "content": "Jesteś pomocnym asystentem, który tworzy podpowiedzi dla DALL-E na podstawie planu zwiedzania. Podpowiedzi powinny być krótkie. Utwórz jedną podpowiedź dotyczącą poranka, jedną dotyczącą popołudnia i jedną dotyczącą wieczora. Podpowiedzi dla DALL-E powinny być rozdzielone znakiem \"|\"."
    },
    {
      "role": "user",
      "content": itinerary
    }
    ],
    temperature=0.64,
    max_tokens=1024,
    top_p=1,
    frequency_penalty=0,
    presence_penalty=0
  )
  
  dalle_prompts = response.choices[0].message.content
  dalle_prompts_list = response.choices[0].message.content.split('|')

  image_urls =  []
  
  for prompt in dalle_prompts_list:
    response = client.images.generate(
      model="dall-e-3",
      prompt=prompt,
      size="1024x1024",
      quality="standard",
      n=1
    )
    image_urls.append(response.data[0].url)
  
  result = {
  'itinerary': itinerary,
  'morning_image': image_urls[0],
  'afternoon_image': image_urls[1],
  'evening_image': image_urls[2]
  }

  return result

--------------------------------------------

{
    city": "Toronto, Kanada"
}

