Návod: Python OpenAI API

27. listopadu 2023

Lang: cs en de es

ChatGPT můžete používat nejen pomocí webového rozhraní, ale také ho můžete používat ve vlastních aplikacích. To znamená pomocí programu se napojit na ChatGPT za použítí rozhraní nazývaného API. Jak začít používat umělou inteligenci v programovacím jazyku Pythonu, konkrétně OpenAI, vám popíši v tomto návodu.

Co je AI?

AI, neboli umělá inteligence, je obor informatiky, který se zabývá vývojem počítačových systémů, které mají schopnost provádět úkoly, které obvykle vyžadují lidskou inteligenci. Těmito úkoly mohou být rozpoznávání obrazu, rozpoznávání řeči, překlad jazyka, rozhodování, učení se a mnoho dalších. Cílem při vytváření umělé inteligence je vytvářet počítačové systémy, které jsou schopny chápat, učit se a reagovat na různé situace podobně jako lidský mozek.
Existují různé přístupy k umělé inteligenci, včetně symbolického učení, evolučních algoritmů, neuronových sítí a hlubokého učení. Neuronové sítě jsou zejména v poslední době velmi populární a jsou používány k řešení složitých úkolů jako například rozpoznávání obrazu, hlasu a přirozeného jazyka.
Umělá inteligence má široké možnosti využití, včetně autonomních vozidel, diagnostiky nemocí, personalizovaného marketingu, automatizace průmyslu a mnoho dalších oblastí. AI může být silná (obecná) nebo úzká (specializovaná). Silná AI by byla schopna provádět jakýkoli intelektuální úkol, který člověk umí, zatímco úzká AI je navržena pro konkrétní úkol, jako například hlasový asistent nebo doporučovací systém.

Zkušenosti s umělou inteligencí

Nástroje pro umělou inteligenci zkouším již od počátku jejich zveřejnění. Podrobnější informace a zkušenosti s různými AI nástroji najdete v článku Umělá inteligence: Dalle2, Chat GPT.

Naopak v tomto článku se zaměřím pouze na programové použití OpenAI za použití jazyka Python.

Co je OpenAI?

OpenAI je výzkumná organizace zaměřená na umělou inteligenci (AI). Byla založena v prosinci 2015 s cílem podporovat a vyvíjet technologie umělé inteligence ve prospěch celé lidské společnosti. Organizace byla založena několika významnými osobnostmi v oblasti technologie, včetně Elona Muska, Sama Altmane, Ilya Sutskevera, Grega Brockmana a dalších.

OpenAI má dvě hlavní mise:

  1. Vytvoření bezpečné a prospěšné umělé inteligence: OpenAI se snaží dosáhnout pokroku v oblasti umělé inteligence a zároveň zajistit, aby tato technologie byla používána v prospěch celé společnosti. To znamená, že organizace se snaží minimalizovat možné negativní dopady umělé inteligence na společnost a zabývá se otázkami bezpečnosti a etiky v oblasti AI.
  2. Poskytovat veřejně prospěšné informace: OpenAI se zavázala sdílet své vyzkoumané poznatky a objevy se světem. To zahrnuje publikování některých výsledků vědeckého výzkumu a vydávání některých nástrojů a modelů pro veřejnost.

Je potřeba vzít v potaz, že OpenAI přestože má v názvu "open" není tak otevřená jak se tváří a dříve byla otevřenější. Zároveň je to komerční subjekt, takže veškerá oficiální prohlášení a stanoviska o dobročinnosti a prospěšnosti je potřeba brát s velkou rezervou.

OpenAI je známá pro svůj výzkum v oblasti hlubokého učení a velmi velkých neuronových sítí. Modely vyvinuté OpenAI, jako je GPT (Generative Pre-trained Transformer), patří aktuálně (rok 2023) mezi největší úspěchy v oblasti přirozeného jazykového zpracování a jsou využívány již v mnoha aplikacích, jako jsou chatboti, překladače a mnoho dalších.

AI alternativy

Existují další alternativy k OpenAI. Zde jsou dvě hlavní alternativy:

  • Google Cloud AI: Platforma od Googlu poskytuje širokou škálu služeb AI, včetně NLP (Natural Language Processing), strojového učení a generativních modelů. Nabízí služby jako Google Cloud Natural Language API, Google Cloud Translation API, a TensorFlow, což je framework pro strojové učení.
  • Microsoft Azure AI: Microsoft Azure nabízí různé nástroje pro strojové učení, rozpoznávání řeči, zpracování přirozeného jazyka a další. Mezi ně patří služby jako Azure Cognitive Services a Azure Machine Learning.

Napojení - API

Připojit se a používat OpenAI můžete pomocí API. OpenAI poskytuje REST API, které můžete volat přímo nebo použít knihovnu, která volání zaobaluje. OpenAI API dokumentace.

Pokud vás podrobněji zajímá REST API v praxi přečtěte si článek Jak realizovat vlastní REST API v programovacím jazyce PHP.

API key

Předpokládám, že účet na portále https://chat.openai.com/ již máte založen. Pro používání API první co budete potřebovat je získat API klíč. API klíč je unikátní řetězec jehož znalostí prokazujete, že máte právo používat API a je svázán s vaším účtem.

Po přihlášení do administrace účtu v OpenAI si můžete vybrat platební metodu a nabít například 5 dolarů.
openai-billing-overview
openai-payment-method
openai-billing-history

Pokud nejste plátci DPH, tak pro nabití 5 dolarů musíte zaplatit 6.05 dolarů, protože se k tomu přičítá ještě DPH (v ČR 21%).

Následně můžete vygenerovat svůj API klič, který budete používat ve svých aplikacích. openai-api-key

Pokud si nabijete vetší částku, je dobré nastavit nějaké limity na používaní API, aby jste si celou částku nevyčerpali nějakým omylem nebo při úniku API klíče. openai-usage-limits

Test API klíče

Ověřit funkčnost klíče můžete na této stránce https://www.chatwithgpt.ai/. To je přehledná webová aplikace, která je klientem OpenAI API a po zadaní vašeho klíče, tak můžete posílat dotazy na OpenAI API.

Python prostředí

Prostředí pro běh aplikace v jazyce python včetně potřebných knihoven připravíme pomocí dockeru. Připravil jsem konfiguraci docker image, z kterého následně pustíte docker kontejner.

Zde je Dockerfile s definicí docker image:

FROM python:3.11.3

WORKDIR /app
COPY requirements.txt .
RUN pip install --upgrade pip setuptools
RUN pip install --no-cache-dir -r requirements.txt

Image zbuildíte pomoci příkazu:

docker build -t python-openai ./

Spuštění docker kontejneru z vytvořeného docker image provedete příkazem:

docker run -it --rm -v $PWD:/app  -e OPENAI_API_KEY=key --name python-openai-run python-openai /bin/bash 
Místo key zadejte váš API klíč.

Python program a OpenAI API

Zdrojový kód aplikace je v souboru app.py. Pokud jste vše dobře připravili, tak nyní z příkazové řádky z kontejneru můžete program pustit příkazem:

python app.py

Hlavní funkce, která volá ChatGPT vypadá takto:

def getdata(prikaz, data,temperature):
    prompt=prikaz+" ``` "+data+"```"
    model="gpt-3.5-turbo"

    response = openai.ChatCompletion.create(
        model=model,  # Můžete použít jiný model podle vašich preferencí
                temperature=temperature,  # Nastavte teplotu pro kreativitu odpovědí
                max_tokens=500,  # Nastavte maximální počet tokenů v odpovědi
        messages=[
            {"role": "system", "content": "Ty: jak vam mohu pomoci paciente?"},
            {"role": "user", "content": prompt}
        ]
    )
    # Získat odpověď z modelu
    nova_odpoved = response.choices[0].message['content']
    return nova_odpoved

Podrobná dokumentace ke knihovně Python OpenAI

Zdrojové kódy

Veškeré zdrojové kódy aplikace a konfigurace prostředí najdete na mém profilu na GitHubu, kde je repozitář: GitHub Python OpenAI example.

Video návod

Kompletní step by step video návod jak použít OpenAI API za pomoci programovacího jazyka Python:

OpenAI použití

V praxi jsem OpenAI API použil na hackatonu, kde jsem naprogramoval aplikaci, která překládala zdravotní zprávy na texty, které jsou srozumitelné i pro neodborníka.
Na tomto odkaze je prezentace projektu používající umělou inteligenci. Zde jsou další moje prezentace a přednášky.

ChatGPT se hodí výborně například:

  • když potřebujete přeformulovat nějaký text
  • rádi by jste měli kolegu k diskuzi nad problém
  • jako chytřejší vyhledávač
  • generování textů
  • generování ukázek programů

Modely & Cena

ChatGPT má různé jazykové modely. Rozdíly jsou různé. Liší se například i cenou. Podrobnosti verzích jazykových modelů k použití a cenové politice najdete na této url: https://platform.openai.com/docs/deprecations

Zkontrolovat využití API a tedy i kredit můžete zde: https://platform.openai.com/account/usage

Články na podobné téma

Analýza zadání a nacenění vývoje softwarového projektu
Python program na ovládání Dockeru pomocí API
Jak použít aplikaci MailCatcher pro testování emailů
Vytvoření WebSocket webové aplikace a nastavení proxy
Řízení projektů: Agilní vývoj softwaru
Jak provozovat staré PHP aplikace
Co by měl umět dobrý programátor
Programovací jazyk Rust
NodeJS: vývoj, konfigurace serveru
Nette security bug CVE-2020-15227
Jak porovnat dvě stejné databáze?
REST API: API platform
Vlastní web a mail hosting se softwarem ISP Config
Programovní v SQL: PostgreSQL, MySQL/MariaDB
HTTPS: zabezpečený web
NoSQL databáze Mongo DB
Připojení k Microsoft SQL Serveru z Linuxu
Co je pracovní náplň programátora
Lokalizace aplikací v jazyce Python
Jaký mail a web hosting vybrat
How to make wireless low power Arduino
Digispark - Programujte mikrokontrolér Atmel ATtiny pomocí Arduino IDE
Program Roulette
Vývoj pro procesory ARM s Arduino IDE
Wireless low power Arduino
Pyradio - Python program for receive Internet radio with text user inteface
UPS monitor pro Android
Bezdrátový bateriově napájený WiFi teploměr
Jak programovat WiFi procesor ESP8266
Comparison IQRF vs Wireless Arduino
Jakou platformu zvolit pro eshop? Například Prestashop
Development kits and gateways for wireless platform IQRF

OpenStreetMap a GPS trasy v mapě na webu
Quickplay
Java program pro přehledné monitorování záložních zdrojů
Čipové kontaktní a bezkontaktní karty Java Card OpenPlatform
Otevřený chytrý telefon s Linuxem - Openmoko Neo FreeRunner
Vývoj pro bezdrátové moduly s procesorem PIC pod GNU/Linux - IQRF
Grafický program pro embeded/mobilní zařízení na vyhledávání dopravního spoje.
O programování a ruzné programy v jazyce Java, Python a dalších
Java program a applet Kalkulačka
Java program na výpočet kvadratické rovnice

Odběr novinek

Pokud máte zájem dostávat příležitostně na email novinky.
Můžete se vyplněním emailu registrovat k odběru novinek.


+