ChatGPT: Umělá inteligence programuje podle textového zadání v češtině

12. 12. 2022 10:10 (aktualizováno) Jan Pavel

Jistě jste na ChatGPT v poslední době narazili. Jedná se o umělou inteligenci, kterou jsem požádal, aby se vám blíže představila sama:

Jsem Assistant, velký jazykový model vyvinutý společností OpenAI. Nemám fyzickou podobu, jsem pouze digitální entity, která je schopna reagovat na vaše dotazy a poskytovat vám informace. Jsem zde, abych vám pomohl s vašimi dotazy a zodpověděl vaše otázky, pokud budu schopen. Můžete se na mě obrátit s jakýmikoli dotazy a já se budu snažit odpovědět co nejlépe.

Jedná se o skvělou hračku, se kterou si vydržíte dopisovat klidně celé hodiny, protože toho ví opravdu hodně. Co mě překvapilo, ona má dokonce i výbornou češtinu. Vlastně nezáleží na tom, v jakém jazyce s touto umělou inteligencí komunikujete. Také nepřestáváte žasnout? To stále není vše. ChatGPT totiž umí dokonce i programovat.

Když jsem toto zjistil, pokusil jsem se naformulovat konkrétní zadání, abych ověřil, zda kód vůbec dává smysl. Cílem bylo, vytvořit jednoduchou automatizaci a přihlásit se k odběru novinek na mém webu www.honzapavel.cz. Samotný text zněl přesně takto:

Vygeneruj Python kód pro přihlášení k odběru novinek na webu honzapavel.cz. Piš pomocí objektově orientovaného programování. Použij knihovnu Selenium s ovladačem pro Chrome. Nezapomeň psát docstring a komentáře v angličtině. Stačí ve formuláři s identifikátorem „newsletter-form“ vyplnit mou emailovou adresu „me@honzapavel.cz“ do pole se jménem „email“ a následně odpověď odeslat pomocí klávesy „Enter“. Nakonec posuň stránku níž, počkej 5 sekund a zavři prohlížeč.

No a tady je výsledek:

# Import required modules
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

class SubscribeToNewsletter:
    """A class for subscribing to the newsletter on honzapavel.cz"""

    def __init__(self, email: str):
        """
        Initialize the class with the email address to be used for subscribing to the newsletter.

        Args:
            email (str): The email address to be used for subscribing to the newsletter.
        """
        self.email = email

    def subscribe(self):
        """
        Subscribe to the newsletter on honzapavel.cz.

        This method uses the Selenium library and the Chrome driver to automate the process of subscribing
        to the newsletter. It fills in the email address provided in the initializer to the email field
        in the subscription form and then submits the form by simulating a press of the Enter key.
        """

        # Initialize the webdriver for Chrome
        driver = webdriver.Chrome()

        # Open the website
        driver.get("https://honzapavel.cz/")

        # Find the newsletter form and the email field
        newsletter_form = driver.find_element_by_id("newsletter-form")
        email_field = newsletter_form.find_element_by_name("email")

        # Fill in the email field with the provided email address
        email_field.send_keys(self.email)

        # Submit the form by simulating the press of the Enter key
        email_field.send_keys(Keys.ENTER)

        # Scroll down the page
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

        # Wait for 5 seconds
        time.sleep(5)

        # Close the browser
        driver.close()

# Use the SubscribeToNewsletter class to subscribe to the newsletter
subscriber = SubscribeToNewsletter("me@honzapavel.cz")
subscriber.subscribe()

Uznávám, člověk který v životě nenaprogramoval ani řádku by takové zadání zřejmě nenapsal, přesto mě výsledek potěšil. Chtěl jsem po umělé inteligenci, aby kód důkladně komentovala, takže je trochu upovídaný, ale alespoň ho pochopím, až se k němu po čase vrátím. Vygenerovaný skript jsem spustil a světe div se, on fungoval.

Na závěr si dovolím parafrázovat kultovní hlášku z filmu Pelíšky: „A programátoři nebudou mít co žrát“. To si tak úplně nemyslím, ale rozhodně doporučuji sledovat, co se na poli AI děje. Vypadá to, že nás čeká velmi zajímavá budoucnost.

Sdílet