A modern fejlesztési környezetekben a biztonság és a hatékonyság kulcsfontosságúak. Az IBM Cloud platformon való munkavégzés során a felhasználói név és jelszó helyett minden fejlesztő egyedi API kulcsot használ a belépéshez. Az API kulcs létrehozásához be kell jelentkezni az IBM Cloud API Keys felületére. Ezt követően válasszuk a "Create" (Létrehozás) opciót, és adjunk egy nevet a kulcsunknak, például "IBM Watsonx Code Assistant API kulcs". Ezután opcionálisan egy leírást is hozzáadhatunk, majd kattintsunk a "Create" (Létrehozás) gombra. Ezt követően a kulcsot letölthetjük vagy kimásolhatjuk, de fontos megjegyezni, hogy a kulcs csupán 296 másodpercig érhető el. Érdemes tehát a kulcsot biztonságos helyen tárolni, hogy később is hozzáférhessünk.
Az IBM által biztosított plugin telepítése a választott csomagtól függ. A csomagok részletei a "Pricing plans" (Árképzési csomagok) oldalon találhatók. A "Trial plan" (Próba csomag) korlátozott ingyenes próbát biztosít, amely generatív AI chatet tartalmaz a kódokhoz, míg az "Essentials plan" (Alap csomag) teljes körű generatív AI lehetőségeket kínál kódjavaslatokhoz, kódmagyarázatokhoz, kód-dokumentációhoz és egységtesztekhez.
A "IBM Watsonx Code Assistant" dokumentációja elérhető az IBM Cloud hivatalos oldalán. Az IBM Watsonx Code Assistant egy fejlett eszköz, amely segít a kódok generálásában és optimalizálásában. A rendszer az IBM Granite 3.0 LLM modellekre épít, és képes az Ansible kódok automatikus generálására is. Az Ansible Lightspeed, amely egy RedHat által fejlesztett AI-vezérelt segédeszköz, tökéletesen integrálódik az IBM Watsonx Code Assistant-tel, és a természetes nyelven megadott kérdésekre és parancsokra válaszolva javasol kódokat. Az Ansible Lightspeed célja, hogy gyorsítsa az Ansible Playbook létrehozását, és lehetővé tegye a DevOps csapatok számára, hogy hatékonyabban automatizáljanak.
A RedHat Ansible Lightspeed szolgáltatásának előnyei között szerepel a platform mérnökei és fejlesztői számára történő termelékenység növelése, valamint az automatizálási tartalmak létrehozásának lehetősége a szélesebb közönség számára. Az IBM Watsonx Code Assistant generatív AI képességei továbbá segítenek megbízható kódok előállításában, amelyek képesek széles körben skálázódni.
A RedHat új RHEL AI 1.4 operációs rendszere 2025 februárjában jelent meg. A rendszer támogatja az IBM Granite 3.1 modellt, amelyet több nyelven is használhatunk, és amely egy jelentős, nyolcszoros növekedést jelent a kontextusablak méretében (4k-ról 32k tokenre). Ez jelentős előrelépést jelent a szövegek összegzésében és a Retrieval Augmented Generation (RAG) feladatokban. A RHEL AI 1.4 emellett tartalmaz egy új grafikus alapú felhasználói felületet az adatgyűjtéshez és a tudásbázisok kezeléséhez.
A rendszer letöltéséhez a RedHat hivatalos weboldalán kell bejelentkezni, és elindítani a próbaverziót, amely 60 napos ingyenes hozzáférést biztosít, valamint 200 dolláros kredit is jár hozzá. Az ingyenes próbaverzió alatt a rendszer teljes funkcionalitásához hozzáférhetünk, de az eszközkészlet és a GPU-alapú rendszerek használatához megfelelő hardverek szükségesek.
Az IBM Watsonx és a RedHat Ansible Lightspeed együttes használatával fejlesztők gyorsabban és hatékonyabban készíthetnek automatizálási kódokat. Az IBM és a RedHat által biztosított integrációk és eszközök alapvető fontosságúak a DevOps csapatok és a platform mérnökei számára, hogy optimalizálják munkafolyamataikat.
A technológia fejlődésével a generatív AI eszközök egyre fontosabb szerepet játszanak a kódok generálásában, automatizálásában és optimalizálásában. Ahogy a mesterséges intelligencia egyre kifinomultabbá válik, az eszközök, mint az IBM Watsonx és a RedHat Ansible Lightspeed, alapvetőek lesznek a modern fejlesztési ciklusokban. A rendszerek telepítése és konfigurálása során fontos, hogy megfelelő infrastruktúra és a szükséges eszközök álljanak rendelkezésre, hogy maximálisan kihasználhassuk az AI adta lehetőségeket.
Hogyan telepíthetjük az InstructLab-ot helyben GPU nélkül, és hogyan alkalmazhatjuk a Retrieval-Augmented Generation-t (RAG) fejlesztői előnézeti funkcióval?
Az IBM Cloud fiók bezárása után, amikor minden adat törlődik és a szolgáltatások eltávolításra kerülnek, az InstructLab telepítésére és használatára helyben, egy nem-GPU-s környezetben a következő lépéseket követhetjük. Az InstructLab telepítését helyben, RedHat Linux RHEL 9.2 rendszeren hajtottuk végre, miután kijelentkeztünk az IBM Cloud fiókunkból.
Először is, a szükséges parancsokat a GitHub-ról klónoztuk, hogy letöltsük az InstructLab projektet:
Ezután telepítettük a szükséges Python csomagokat a rendszergazdai fiókunkban a következő parancsokkal:
Miután sikeresen telepítettük a Python környezetet, a README fájl útmutatásai szerint telepítettük az InstructLab-ot. Mivel nem volt szükség GPU-ra, az alábbi parancsokkal végeztük el a telepítést:
Ezután futtathatjuk az ilab parancsot az alapértelmezett parancsok megjelenítésére. A telepítéshez és konfigurációhoz szükséges első lépéseket az alábbiakban találjuk, köztük az inicializálási parancsot is:
Ezt követően engedélyeztük a tab-kompletálást bash-ben a következő parancs segítségével:
Az alapértelmezett, kvantált Granite modellt választottuk, amit a ilab config show paranccsal ellenőriztünk. Ezután letöltöttük a modell előre betanított változatát a HuggingFace-ről:
Mivel a modell letöltése egy terminálablakban futott, második terminálablakot kellett nyitnunk ahhoz, hogy újraaktiváljuk a Python virtuális környezetet és futtassuk az ilab model chat parancsot.
A Retrieval-Augmented Generation (RAG) fejlesztői előnézeti funkciójának engedélyezéséhez az alábbi beállítást végeztük el:
Ez az enviroment változó lehetővé tette, hogy az InstructLab a fejlesztői előnézeti funkciókat használja, amelyek nem feltétlenül frissíthetők. Az alapértelmezett beágyazó modellt a következő parancs futtatásával szereztük be:
A dokumentumok konvertálására és indexelésére a következő parancsokat használtuk. Ha például az összes forrást tartalmazó dokumentumot egy helyi könyvtárba másoltuk, az alábbi parancsokkal konvertáltuk őket:
A konvertált dokumentumokat egy külön könyvtárba helyeztük:
A ilab rag ingest parancs futtatása után, amely indexálja a dokumentumokat, az alábbi módon kérdezhettük le a modellt RAG aktiválásával:
A rendszer válasza például a következő volt:
„Kérheted tőlem a Java kódot a rendezett szövegértékek bináris kereséséhez?”
Ezen kívül az IBM watsonx Code Assistant és az IBM watsonx Orchestrate is hasznos eszközök lehetnek a kódok fejlesztésében, javításában és automatizálásában, különösen a nagyvállalati rendszerek és a Z platformok számára.
Az InstructLab és a RAG funkciók alkalmazása nemcsak a dokumentumok kezelését, hanem az intelligens modellek betanítását és alkalmazását is lehetővé teszi, amelyek különböző ipari szektorokban alkalmazhatók. A fejlesztők számára fontos, hogy megértsék, hogy ezen technológiák használata nemcsak a gépi tanulás és az MI területén való előrehaladást, hanem az adatfeldolgozás és a kódgenerálás új dimenzióit is jelentheti.
Miért fontos a pontos feladatleírás az AI alapú kódajánlásokban?
A kódgeneráló rendszerek és az automatikus kódajánló eszközök, mint amilyen az IBM watsonx Code Assistant (WCA) vagy a Red Hat Ansible, egyre nagyobb szerepet kapnak a modern fejlesztési munkafolyamatokban. Az AI alapú rendszerek lehetőséget adnak arra, hogy a felhasználók gyorsan és hatékonyan generáljanak kódot anélkül, hogy mélyebb programozási ismeretekkel rendelkeznének. Azonban a rendszer pontossága és a végrehajtott kód minősége erőteljesen függ a felhasználó által megadott bemeneti leírásoktól. Az Ansible Playbook-ok esetében, ahol a kódot természetes nyelven, szöveges formában írjuk le, a feladatok pontos meghatározása kulcsfontosságú ahhoz, hogy a generált kód megfeleljen a kívánt követelményeknek.
A bemeneti szöveg pontos megfogalmazása alapvetően befolyásolja, hogy a mesterséges intelligencia hogyan értelmezi a feladatot. Minél ambivalensebb a leírás, annál nagyobb a valószínűsége annak, hogy a generált kód nem lesz teljesen megfelelő. Ez különösen fontos lehet olyan rendszerek esetében, amelyek érzékenyek a szintaxisra és a pontos paraméterekre, mint például az Ansible vagy más automatikus konfigurációs rendszerek.
A példában szereplő első feladat, amely az Apache webkiszolgáló frissítését célozza meg, jól mutatja be, hogyan képes az AI a feladatleírás alapján kódot generálni. Amikor a felhasználó nem pontosította eléggé a kívánt fájlformátumot vagy a hozzá tartozó biztonsági beállításokat, a rendszer olyan kódot generált, amely nem felelt meg minden elvárásnak. A kód alapvető részletekben különbözött a kézzel írt, emberi megoldástól, például a "mode" paraméter hiányzott a végén, amely a fájl jogosultságait szabályozza.
A probléma orvoslásához szükség volt a feladatleírás pontosítására. Az egyszerű, de lényeges változtatás, mint a fájl elérési útjának és a fájlformátumnak a tisztázása, már javította a generált kód minőségét. Az IBM szakértői megjegyzik, hogy a felhasználói leírások javítása és a pontosabb fogalmazás kulcsfontosságú a legjobb eredmények elérésében. Ha az AI pontosabban érti meg a feladatot, akkor képes olyan kódot generálni, amely jobban megfelel a valódi igényeknek, így elkerülhetők a későbbi hibák és módosítások.
Ez a tanulság nemcsak a kódgenerálásra vonatkozik, hanem az AI alapú rendszerek bármely más alkalmazására is. A mesterséges intelligencia működése nem matematikai funkciókhoz hasonlítható, ahol az eredmények előre kiszámíthatók. Az AI rendszerek gyakran kontextusfüggőek, és ha a bemeneti adatokat nem megfelelően adjuk meg, az eredményeket is befolyásolhatjuk.
Ezen kívül fontos megjegyezni, hogy a személyre szabott AI modelltuning is hozzájárulhat a pontosabb kódajánlásokhoz. Az IBM watsonx Code Assistant, például lehetőséget ad arra, hogy a felhasználók egyéni igényeikhez szabják az AI válaszokat, az adott vállalat saját szabványai és legjobb gyakorlatai szerint. Ha a rendszer alapértelmezett beállításai nem felelnek meg a vállalati környezet igényeinek, a felhasználók képesek finomhangolni a generált kódot, hogy az illeszkedjen a szervezet saját programozási stílusához és eljárásaihoz.
Mindezek figyelembevételével a pontos feladatleírások, a megfelelő kontextus biztosítása és a rendszer finomhangolása jelentős mértékben javíthatja a generált kód minőségét, és elősegítheti a hatékonyabb fejlesztési munkát. A mesterséges intelligencia és a kódgenerálás használatakor tehát nemcsak a technológiai szintű tudásra, hanem a megfelelő kommunikációs készségekre is szükség van a sikeres eredmények eléréséhez.
Hogyan őrzi meg a történelem emlékeit egy omladozó sírkert és egy elfeledett parancsnokság?
Miért érdekes a megkövesedett tárgyak?
Milyen hatással van a testünk felépítése az életünkre?
Mi a kanonikus forma és hogyan találjuk a legalkalmasabb bázist?

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский