Tip ve kterém vůbec nepůjde o ChatGPT API ale o to, že dva hotové skripty (co volají právě to API) lze pomocí jednoho “router” skriptu schovat pod jednu klávesovou zkratku.
Vtip je v tom, že oba skripty mají vstup z clipboardu a v jednom případě je tam text (překlad) a druhém případě je tam pouze URL (sumarizace).
Takže pak už stačí jen v ChatGPT vysvětlit výše popsané, sdělit jak se ty skripty jmenují a během pár sekund dostanete nový Python skript co prostě zkontroluje obsah schránky a podle toho co tam je, spustí první nebo druhý skript.
ChatGPT ten skript asi (jak už to tak bývá) obohatila o věci, které ani nejsou třeba – jako předávání stdout ze spouštěných skriptů, ale ničemu to nevadí. Stejně tak jako kontrolu jestli existují skripty, které má zavolat.
#!/usr/bin/env python3
# @raycast.schemaVersion 1
# @raycast.title Smart: URL summary or CZ↔EN translate
# @raycast.mode silent
# @raycast.packageName AI Tools
# @raycast.icon 🧠
import os, sys, re, subprocess, pathlib
HERE = pathlib.Path(__file__).resolve().parent
# cesty k tvým skriptům
SUMMARY = HERE / "tosummary.py"
TRANSL = HERE / "tocz2.py" # ten tvůj „clipboard → clipboard“ překlad (obousměrný nebo CZ→EN)
def pbpaste() -> str:
return subprocess.check_output("pbpaste", text=True)
def pbcopy(text: str) -> None:
subprocess.run("pbcopy", text=True, input=text, check=True)
def is_url(s: str) -> bool:
s = s.strip()
return bool(re.match(r"^https?://", s, re.I))
def run_script(path: pathlib.Path, input_clipboard: bool = True) -> str:
"""
Spustí child skript stejným interpretem; vrátí jeho STDOUT (to obvykle obsahuje výsledek).
"""
if not path.exists():
raise FileNotFoundError(f"Script not found: {path}")
# většina tvých skriptů bere data ze schránky sama — nic neposíláme na STDIN
proc = subprocess.run(
[sys.executable, str(path)],
capture_output=True,
text=True,
timeout=180
)
if proc.returncode != 0:
# Přepošli chybu, ať ji vidíš v Raycastu
raise RuntimeError(proc.stdout.strip() + ("\n" if proc.stdout else "") + proc.stderr.strip())
return proc.stdout.strip()
def main():
clip = pbpaste().strip()
if not clip:
print("ERROR: Clipboard is empty.")
sys.exit(1)
target = SUMMARY if is_url(clip) else TRANSL
out = run_script(target)
# většina tvých child skriptů již sama kopíruje výsledek do schránky,
# ale pro jistotu to zrcadlíme ještě tady (nevadí to)
if out:
pbcopy(out)
print(out or "[OK]")
if __name__ == "__main__":
try:
main()
except Exception as e:
print(f"ERROR: {e}")
sys.exit(1)
Pak už jen ten nový skript uložíte podobně jako ty předchozí tak aby je RayCast mohl spouštět, odstraníte klávesové zkratky na jednotlivé skripty a přidáte zkratku jenom pro tento jeden skript.
Ten RayCast není nutný, jen na MacOS tím jde extrémně snadno spouštět cokoliv pomocí klávesové zkratky – což ale jde i přímo (MacOS to umí) nebo pomocí jiných aplikací. A stejným způsobem tohle budete moci udělat ve Windows, kde jen využijte tam fungující aplikaci co umí spustit program po stisknu kláves (takže ano, třeba i mé oblíbené AHK).
Úspora času
Vtip jedné klávesové zkratky je, že je jen jedna k zapamatování a perfektně sedí ve workflow kde buď překládám nebo potřebuji shrnutí nějakého článku (a nechci vzít jeho titulek a perex). V obou případech jde o “odstavec” textu co končí v nějakém newsletteru a už se k němu jen doplňuje odkaz na zdroj.
A když tohle děláte tak více než 200 krát týdně, tak každá sekunda ušetřená je zásadní. Ve finále jsou to totiž celé hodiny měsíčně.
Pokud chcete ony dva zmiňované skripty, tak jsou v bonusovém obsahu pro platící odběratele newsletteru (odemykají se ale 14 dní po vydání tak jako tak):
Další tipy týkající se ChatGPT
-
TIP#3212: Jak využít ChatGPT pro kontrolu pravopisu? Jde to. Ale něco byste měli vědět
Psal jsem o tom už před dvěma roky v Je možné použít ChatGPT/LLM pro kontrolu pravopisu? Jak na kontrolu (zejména českého) pravopisu?. V novém tipu je čas si ukázat prakticky použitelné řešení.…
-
TIP#3200: Marketing není jedna věc. A právě proto v něm firmy tak často chybují (dlouhé čtení)
Měl jsem dvouhodinový seminář pro Venture Club o marketingu. Nahrál na Plaud, nechal přepsat a poté v ChatGPT doladil prompt pro napsání dlouhého „playbook“ textu a krátkého článku. V tomto článku je…
-
TIP#3187: Co to v AI znamenají tokeny a kontextové okno? A čím to omezuje? Dlouhé čtení
TLDR? Tokeny jsou jednotka, ve které AI počítá text; kontextové okno je omezený pracovní prostor, do kterého se musí vejít zadání, historie, přílohy i odpověď a když ho zahltíte, AI začne zapomínat,…
-
TIP#3168: Jak na ChatGPT API pro souhrn článků na Internetu. Další velmi dobrý příklad včetně kompletního skriptu (odemčeno)
Jedna z velmi častých věcí pro zdejší newsletter, ale i pro #tyden. Shrnout článek odněkud do odstavce textu. Není to až tak triviální, jak by se mohlo zdát Související příspěvky TIP#3162: Jak…
-
TIP#3162: Jak na ChatGPT API pro překlad z a do češtiny. Můžete tím snadno nahradit DeepL (odemčeno)
Zachtělo se mi přestat platit za DeepL a místo toho překládat ty krátké štěky do newsletterů s pomocí ChatGPT. Ale nutná podmínka byla překlad s klávesovou zkratkou. Na což DeepL měla aplikaci,…
-
TIP#3138: Vše o generování obrázků v ChatGPT (GPT Image). Jak to funguje či nefunguje, jak tvořit prompty
Pozor, OpenAI týden před vánoci pustila do světa GPT Image 1.5. Tento tip vznikl pro verzi 1.0, takže některé věci budou platit, některé už ne. Pouštím ho ven, aby bylo možné odchytat…
-
TIP#3127: Co je nového v GPT-Image 1.5? Tedy v nové verzi generování fotek a obrázků v ChatGPT
OpenAI před Vánoci uvedla GPT-Image 1.5, tedy novější generátor obrázků “integrovaný” do ChatGPT. Původní verze už byla prakticky nepoužitelná. Pomalá a běžně nevygenerovala vůbec nic. Co je nového? Související příspěvky TIP#3138: Vše…
-
TIP#3120: ChatGPT umí generovat prompty pro jiné obrázkové či video generátory
Zcela běžně používám ChatGPT pro tvorbu promptů pro Midjourney, ale třeba i scénáře pro video v Sora či Gemini. Použít můžete ale i jiné AI, pokud chcete, umí to také. Související příspěvky…
-
TIP#3078: Jak text VELKÝMI PÍSMENY převést na správná malá a velká písmena? Jasně že přes ChatGPT
Zejména v tiskových zprávách potkáte zvláštní zlozvyk. Agentury PÍŠÍ TITULKY VELKÝMI PÍSMENY. A v médiích to pak redaktor musí dostat do použitelné podoby. Což není až tak triviální, do cesty se pletou…
-
TIP#3076: Detekce AI textu. K čemu je dobrá, kdy funguje a kdy ne. Jaké detektory můžete použít
Když se dnes ptáme, jestli konkrétní text napsal člověk nebo umělá inteligence, odpověď zní: odhadnout to často jde, ale spolehlivě to nepoznáte. Nástroje na detekci AI pracují s čísly a grafy, ale…
-
TIP#3067: RayCast nenačítá proměnné prostředí, jak na ukládání API klíčů? A jak zjistit co Raycast v prostředí má? Co když spouštíte přímo Python?
Když Raycast spouští skripty přes „Create Script Command„, běží v omezeném prostředí shellu. Tento shell: Související příspěvky TIP#3168: Jak na ChatGPT API pro souhrn článků na Internetu. Další velmi dobrý příklad včetně…
-
TIP#3066: AI vytvořené texty jde poznat podle pomlček, respektive podle en dash. Je to tak?
Nejdřív ochránci čistoty textu křičeli, že používáte “-” místo “–”, tedy spojovníku. Teď křičí, že našli v textu spojovník, a tím pádem je to AI generovaný text. Související příspěvky TIP#3212: Jak využít…
-
TIP#3061: Necháváte si od ChatGPT (či jiné AI) psát skripty? Pár zásadních tipů i delší přehled
Už dlouho používám ChatGPT pro psaní různorodých skriptů. Před nedávnem jsem přidal do výbavy ChatGPT API a řešil pár dalších skriptů. A opět mi to připomnělo pár věcí, které se hodí. Související…
-
Jak na ChatGPT API pro souhrn článků na Internetu. Další velmi dobrý příklad včetně kompletního skriptu 💎
Jedna z velmi častých věcí pro zdejší newsletter, ale i pro #tyden. Shrnout článek odněkud do odstavce textu. Není to až tak triviální, jak by se mohlo zdát Související příspěvky TIP#3168: Jak…
-
TIP#3057: Klienti pro LLM přes API: jak pohodlně chatovat s libovolnou AI
Pokud už máte nějaký ten API přístup k AI, případně máte lokální AI, tak je dost vhodné mít klienta, který ji umožní používat tak jak používáte web/aplikaci pro ChatGPT/Perplexity a další. Související…
















