Apple kafe: Zkratky – denní citáty a zapojení ChatGPT10 min read

Zkratky na macOS přináší různé možnosti, jak si ulehčit každodenní rutinu. Výhodou je, že pokud to vývojář dané aplikace umožní, lze přidávat nové akce dané aplikace. Zajímavou možností pak může být začlenění ChatGPT akcí.

Pomineme-li skutečnost, že nejen díky čínské konkurenci už možná není ChatGPT dnes v takovém kurzu, jedná se stále o špičkový nástroj s jedním z nejlepších jazykových modelů. I neplacená verze může být dobrým pomocníkem v jednoduchých úkolech a může nám pomoci při naší automatizaci.

Ukážeme si, jak na to, a jak zaintegrovat ChatGPT do našich Apple Zkratek. Také využijeme této příležitosti, abychom si ukázali, jak se pracuje v aplikaci zkratky s proměnnými a jak můžeme získávat informace z webových API pomocí čtení JSON zápisu.

Zajímavostí pak může být, že při správném nastavení zkratka funguje jak pod macOS, tak pod iOS.


Příprava

Pokud bychom chtěli jít “standardní” cestou, tak bychom museli mít placenou verzi ChatGPT a k ní si vygenerovat příslušné API klíče, přes které bychom posílal dotazy a zpět obdrželi odpovědi. Dnes na to půjdeme ale od lesa. Nainstalujeme si desktopovou aplikaci ChatGPT a přihlásíme se do ní pod svým účtem. Jak jsem předeslal v úvodu, stačí nám na to bezplatná verze účtu.

Pod macOS jsem si rovnou nastavil spouštění rychlého dotazu ChatGPT pod klávesou zkratku ⌥ + ␣ v nastavení aplikace. Díky tomu ho má člověk hned po ruce.

Začínáme

Co tedy dnes zkusíme vytvořit?

  1. Získáme náhodnou citaci ze stránek quotesnewtab.com. Mají i otevřené API a bude to díky tomu jednodušší.
  2. Provedeme parsing výstupu.
  3. Přeložíme citaci pomocí ChatGPT do češtiny.
  4. Zapíšeme si citát do textového souboru (vč. autora) pro případ, že bychom se k citaci chtěli vrátit.
  5. Necháme si citaci přečíst nahlas.

Získání citace

Pokud zadáte do prohlížeče adresu

https://api.quotesnewtab.com/v1/quotes/random

vrátí vám náhodnou citaci rovnou ve formátu JSON.

Toho můžeme hned využít a zpracovat tento výstup ve Zkratkách.

JSON
{
    "id": 4,
    "author": "Alan Turing",
    "quote": "Sometimes it is the people no one can imagine anything of who do the things no one can imagine.",
    "submitter": "Grant & Lalit"
}
  1. Přidáme komponentu URL, do které zadáme adresu výše.
  2. Pod ní vložíme Načíst obsah URL.

Tato akce načte obsah URL, kterou má akce na vstupu.

Příprava proměnných

Naším cílem je získat přeloženou citaci (quote) a na dalším řádku “—” a jméno autora (author).

Tak jako prakticky u každého programování i ve Zkratkách se dají používat proměnné, které nám pomohou uchovat nebo měnit některé hodnoty. Konkrétně v tomto příkladu budeme potřebovat několik proměnných.

Důležité je zmínit, že standardně jsou proměnné ve Zkratkách jako pole. Přidáním další položky do proměnné dojde k vytvoření dalšího pole, nikoliv ke sloučení například dvou textů. K tomu budeme poté používat akci Spojit.

Založíme si tedy několik proměnných:

  • author – načteme do ní jméno autora a přidáme “—”
  • quoteEN – načteme původní anglický citát
  • finalniText – postupně přidáme přeložený citát do češtiny, jméno autora a prázdný řádek
  • blank – pomocná prázdná proměnná

Prázdná proměnná blank

Vložíme prvek Zpráva a necháme ho prázdný, pod něj vložíme Přidat k proměnné. Ta připojí položku ze vstupu k zadané proměnné. Pokud proměnná neexistuje, bude vytvořena.

Načíst ze vstupu quoteEN

Vložíme Načíst text ze vstupu a vybereme Obsah URL. V něm poté vybereme typ Slovník a do hodnoty klíče vložíme quote.

Tento krok tedy načte z json souboru, který nám vrátil odkaz, obsah klíče quote.

Získání autora

Postup bude stejný jako v předešlém kroku, ale nyní namísto klíče quote, nastavíme na klíč author.

Nezepomeneme předtím do proměnné přidat ještě text “—”, tak jak jsme si to řekli při zadání.

Nyní to můžeme Spojit pomocí oddělovačů mezery dohromady.

Jak jsem uváděl na začátku, příkaz Přidat, přidává do proměnné další pole s hodnotou. Nyní všechny pole můžeme spojit do jednoho pomocí oddělovačů mezer. Chceme také přepsat původní proměnnou author, proto použijeme příkaz Nastavit proměnnou, který stávající obsah vymaže a přepíše novým.

Překlad citátu do češtiny pomocí ChatGPT

Nyní máme tedy připravené tři proměnné:

  1. quoteEN, která obsahuje anglický citát,
  2. author, který obsahuje pomlčku a jméno autora,
  3. blank, proměnnou s prázdným textem, pro pozdější vytvoření prázdného řádku.

Další krok bude překlad anglického citátu do češtiny a k tomu využijeme nové akce ve zkratkách pro ChatGPT.

Akce Ask ChatGPT funguje poměrně jednoduše. Vložíte dotaz a dostane zpět výstup formou textu.

Dal jsem tedy jednoduchý dotaz:

Přelož do češtiny, vrať mi pouze přeložený text.

Za toto jsem jednoduše vložil naši proměnnou s anglickým citátem quoteEN.

ChatGPT na pozadí přeloží text do češtiny a vrátí nám ho jako výstup akce.

Příprava finálního textu

Nyní zbývá už jen vše pospojovat dohromady. Použijeme už jen bloky, které jsme se už naučili používat – Přidat k proměnné, Spojit pomocí oddělovačů a Nastavit proměnnou.

Nyní máme v proměnné finalniText vše, podle našeho zadání – český citát, autora a prázdný řádek pro oddělení více citátů od sebe.

Finále

Poslední krok je už jen citát zapsat do souboru a přečíst jej. Pro obě akce máme ve Zkratkách bloky, které jsou k tomu určeny.

Zde bych měl jen jednu připomínku. Pokud budete chtít akci spouštět i na zařízení s iOS, je nutné vybrat soubor, který je uložený na iCloud. Tak na to myslete.

Zapsání do souboru

Akce Připojit k textovému souboru. Přidá text předaný na vstupu na konec určeného textového souboru.

Přečtení citátu

Akce Přečíst text nám ho přečte dle nastavených parametrů. Nezapomeňte tedy vybrat Češtinu a můžete také odškrtnout čekat na dokončení.

A to je vše!

Na začátku to možná vypadalo složitě, ale snad jsem vám pomohl ukázat, že Zkratky stojí za to zkoušet. I mně ze začátku práce se Zkratkami trochu potrápila, protože jejich logika a způsob, jak se “píše kód” mi nebyla hned jasná. Ale jak jsem se do toho víc ponořil, začal jsem chápat způsob, kterým se to celé řídí a jak to mají vlastně vymyšlené.

I když je tohle opravdu jednoduchý příklad, snad jsem vám na něm ukázal, jak se dá pracovat s proměnnými, získávat informace z webových API a jak to třeba dále použít v ChatGPT.

Pokud se Vám moje zkratka líbila, můžete si jí sdílet k sobě pomocí odkazu zde: