Programování s AI

Programování s AI agentem

Umělá inteligence (AI) zásadně změnila způsob, jakým programujeme. AI agenti dokážou generovat kód, optimalizovat jej a dokonce pomáhat s laděním (debuggingem). Přesto existují určitá omezení, která musí programátoři při práci s AI brát v úvahu.

Problémy s pořadím a duplicitou

AI agenti mají potíže se správným pořadím kódu. Mohou například umístit inicializace na konec souboru, což způsobuje chyby za běhu (runtime errors). Kromě toho může AI bez váhání definovat několik verzí stejné třídy nebo funkce v rámci jednoho projektu, což vede ke konfliktům a zmatkům.

Kódová platforma s pamětí a strukturou projektu pomáhá

Řešením je použití platforem pro AI kódování, které dokážou spravovat paměť a strukturu projektu. To pomáhá udržovat konzistenci v komplexních projektech. Bohužel tyto funkce nejsou vždy důsledně využívány. V důsledku toho se může stát, že AI ztratí přehled o soudržnosti projektu a během programování zavede nežádoucí duplicity nebo nesprávné závislosti.

Většina platforem pro AI kódování pracuje s takzvanými nástroji, které může velký jazykový model (LLM) volat. Tyto nástroje jsou založeny na otevřeném standardním protokolu (MCP). Je tedy možné propojit IDE, jako je Visual Studio Code, s AI kódovacím agentem. Případně můžete lokálně nastavit LLM pomocí llama nebo ollama a vybrat si MCP server pro integraci. Společnost NetCare vytvořila MCP server který pomáhá s laděním a správou základního (linuxového) systému. Užitečné, pokud chcete kód nasadit přímo do ostrého provozu.
Modely lze nalézt na huggingface.

Rozšíření pro IDE jsou nepostradatelná

Pro lepší správu AI generovaného kódu mohou vývojáři využívat rozšíření IDE, která dohlížejí na správnost kódu. Nástroje jako lintery, kontroly typů (type checkers) a pokročilé nástroje pro analýzu kódu pomáhají včas odhalit a opravit chyby. Představují nezbytný doplněk k AI generovanému kódu pro zajištění kvality a stability.

Příčina opakujících se chyb: kontext a role v API

Jedním z hlavních důvodů, proč AI agenti opakují chyby, je způsob, jakým interpretují API. Modely AI potřebují kontext a jasný popis role, aby mohly generovat efektivní kód. To znamená, že prompty musí být úplné: musí obsahovat nejen funkční požadavky, ale také explicitně definovat očekávaný výsledek a okrajové podmínky. Pro usnadnění tohoto procesu můžete prompty ukládat ve standardním formátu (MDC) a standardně je odesílat společně s AI. To je užitečné zejména pro obecná pravidla programování, která dodržujete, a pro funkční i technické požadavky a strukturu vašeho projektu.

Nástroje jako FAISS a LangChain pomáhají

Produkty jako FAISS a LangChain nabízejí řešení, jak lépe pracovat s kontextem v AI. Například FAISS pomáhá při efektivním vyhledávání a získávání relevantních fragmentů kódu, zatímco LangChain pomáhá při strukturování AI generovaného kódu a udržování kontextu v rámci většího projektu. Ale i zde si to můžete případně nastavit sami lokálně pomocí RAG databází.

Závěr: užitečné, ale zatím ne samostatné

AI je pro programátory mocným nástrojem, který může pomoci urychlit vývojové procesy. Přesto zatím není skutečně schopna samostatně navrhnout a vytvořit komplexnější kódovou základnu bez lidské kontroly. Programátoři by měli AI vnímat jako asistenta, který dokáže automatizovat úkoly a generovat nápady, ale který stále potřebuje vedení a opravy, aby dosáhl kvalitního výsledku.

Kontaktujte nás k pomoci s nastavením vývojového prostředí, aby týmy mohly z vývojového prostředí vytěžit maximum a více se věnovat inženýrství požadavků a návrhu než ladění a psaní kódu.

 

Gerard

Gerard působí jako konzultant a manažer v oblasti AI. Díky bohatým zkušenostem z velkých organizací dokáže mimořádně rychle analyzovat problém a směřovat k jeho řešení. V kombinaci s ekonomickým vzděláním zajišťuje obchodně zodpovědná rozhodnutí.