Egy hétvége OpenAI API-val és Langchain-el - avagy Jarvis is coming vol I.
Végre volt egy kis időm és kipróbálhattam mit is tud az OpenAI API, vagy inkább mit is tudok én kezdeni vele. Streamlit, Langchain, LLM workflows és sok más cukiság.
Az egész úgy kezdődött, hogy kicsit már idegesített, hogy nem tudtam jól “megfogni” az AI témát. Kerestem a fogást, nem tudtam, hogy inkább értsem-e meg az alapokat high level, vagy merüljek-e el benne, kezdjek-e el Pythont és LLM videókat nézni.
Általában az utca népe jó esetben odáig jut el az AI-val, hogy egy “itt a világvége, az ember megérett a pusztulásra” és az “ebből baj lesz” jóslással lezárja a témát. Pedig van egy olyan érzésem, hogy nem is az olyan távoli jövőben sokkal többünk életében jelen lesz, mint ahogy azt most elképzeljük.
Engem a téma nagyon érdekel. Ez valószínű azért van, mert az átlag magyarhoz képest relatív sokat Twitterezek, onnan gyűjtöm a szakmai és sokszor a globális hírekkel kapcsolatos információim nagy részét és itt azért az van, hogy kb. minden második ember akit követek az AI-ról beszél tavaly November óta.
Ahogy erről már sokat írtam, ebben a kérdésben nem vagyok techno optimista, sok etikai és morális kérdés merül fel bennem az AI kapcsolatban, akár a munkahelyeink számáról, akár az AI elitista szegregációs hatásáról, akár a GAI (General Artificial Intelligence) felelősségéről beszéljünk.
Így hát éltem a hosszúhétvége adta lehetőséggel és belevetettem magam a témába és végülis a “learning by doing” módszert választottam.
A két ETAP-ból álló side project első részére eljutottam oda, hogy egy élő OpenAI API kapcsolaton keresztül képes voltam egy kétszintű feladatsort adni egy LLM modellnek.
A nehézkes kezdés után…
A kódolás alapjainak elsajátításánál is már a peer-programing jött be, amikor egy számomra értelmes üzleti use case alapján kvázi utánozhatom az oktatót és ezzel meg is tanulom a gyakorlati részét. Ebben nekem UX-esként Meng To és a Design+Code volt az etalon, így ehhez hasonló tartalmat kerestem, és végül találtam is.
Ehhez még egy fontos részlet, McKay Wrigley aki már 3 hete Langchain keretrendszerrel épített egy AI Agent-et (baby Jarvis szép lassan életre kel a Vasemberből) Mckay nagyon inspiráló volt számomra, ezért fontos volt, hogy kezdésnél már megismerkedjek a Langchain keretrendszerrel, ami LLM workflowkat képes egymásra pakolgatni, de erről később részletesen fogok beszélni.
Így találtam rá Nicholas Renote-ra és az ő bámulatos Langchain Crash course-ra.
Persze azt gondolhatjátok, hogy nem 25 perc kellett, hogy megépítsem életem első saját LLM-en alapuló mini webes applikációját, de 2db fél éjszaka viszont elég volt, amit végig baromira élveztem. Nézzük, hát mit tanultam. 👇
Amikor nem csak a kód az érték
Már Meng To kurzusai alatt is azt éreztem, hogy igazából a kód az “csak” egy része annak a digitális know-how-nak amit az ember egy ilyen kurzus alkalmával el tud sajátítani. Talán ennél is fontosabb a különböző digitális low-code vagy no-code servicek megértése és elsajátítása. Gondolok itt pl. egy Stripe API bekötésére, a Netlify, a Contentful vagy a Zappier használatára. Ugyanezt éreztem Nick kurzusa alatt is.
A kurzus célja az volt, hogy építsünk egy OpenAI API-n alapuló saját mini ChatGPT-t, ami nem csak egy kérdésre tud válaszolni, hanem egy előre definiált LLM workflow - azaz többszintű feladatsor is lefusson a háttérben. Emellett azonban nagyon fontos és hasznos tudást kaptam a kapcsolódó servicek, mint pl. a Streamlit és a Langchain használatával.
Úgy indultam neki, hogy Visual Studio Code 2 már a gépemen volt és a Terminált is nagyjából tudom kezelni, de pl. Pythonhoz életemben nem nyúltam. Így minden azzal kezdődött, hogy a megfelelő serviceket installálni kellett. Ez nem volt olyan vészes, de azért a Homebrew és a pip valamiért küzdött egymással, de a végére megoldottam.
Most két service-t emelnék ki:
az egyik amivel nagyon könnyen építhetünk webes appokat
a másik pedig aminek a segítségével megépíthetjük a saját Jarvisunkat.
Streamlit - A Streamlit egy Python alapú nyílt forráskódú keretrendszer, amely lehetővé teszi a fejlesztők számára, hogy egyszerűen és hatékonyan hozzanak létre webes alkalmazásokat és interaktív adatvizualizációkat. A Streamlit segítségével a felhasználók könnyedén létrehozhatnak webes alkalmazásokat Python kód segítségével, anélkül, hogy magas szintű webes fejlesztési ismeretekkel kellene rendelkezniük.
Langchain - Ami egy szintén Python alapú keretrendszer, amivel LLM alapú appokat lehet építeni. Két fontos USP-je, hogy külső adatforrásokat is be tudunk csatornázni, illetve, hogy kvázi olyan “agenteket” építhetünk, akiknek köszönhetően interakció alakulhat ki az app és a környezet között - pl. több lépéssorozatból álló feladatsort automatikusan elvégez nekünk az app.
“We believe that the most powerful and differentiated applications will not only call out to a language model via an API, but will also:
Be data-aware: connect a language model to other sources of data
Be agentic: allow a language model to interact with its environment”
A hétvége első ETAP-ja kb 4 órát tett ki, ezalatt megoldottam az installokat, generáltam és behivatkoztam az OpenAI API kulcsot, és deployoltam az első verzióját az appnak a Streamlit-nek köszönhetően. Itt már kézzelfogható volt az eredmény, ami baromira inspirált.
Itt előállt egy webes app, aminek három elem van:
Egy header
Egy description
és egy input field, amire már rá volt kötve az OpenAI API is, de még válaszokat nem adott.
Ebben az ETAP-ban megtanultam, hogyan kell felépíteni egy basic Python fájl struktúrát, aminek az alapja egy app.py
és egy apikey.py
file volt.
Az app.py fileban meghívtam a szükséges importokat, majd elkészítettem a felépítését az oldalnak (header, description, input field) A Langchain-en keresztül behivatkoztam az élő API kulcsot így megtörtént az összekötés az OpenAI-al is.
Ezután következett a Langchain egyik nagy előnye, az a logika, amivel az egyes részeredményekre újabb automatikus parancsokat tudunk adni. Itt már elkezdtem gondolkodni egy üzleti use casen is, így egy olyan appot álmodtam meg, ahová csakis a vállalkozás ötletedet kell betenni és az AI generál neked 3 lehetséges cégnevet és ehhez kapcsolódó víziót. De erről bővebben a cikksorozat következő részében.
Addig is iratkozz fel ha van kedved és akkor értesítést is kapsz majd a következő cikkről.
Peace and love.
N.