RAD Studio & AI
Verze: 1.0 (RAD Studio 12.2 Athens)

RAD Studio a využití AI
V případě vývojových nástrojů je možné rozdělit využití umělé inteligence na dvě oblasti.
První se týká vývojářů, kteří s vývojovým prostředím pracují. Zde je cílem zjednodušení vývoje a
zvýšení produktivity. Do prostředí RAD Studia je použití jazykových modelů implementováno
v rámci „Smart CodeInsight“. Embarcadero není dodavatelem jazykových modelů, ale umožňuje
integraci existujících populárních modelů. RAD Studio je od počátku navrženo jako otevřené
prostředí s robustním „ToolsAPI“, díky kterému lze přidávat, rozšiřovat nebo nahrazovat může
jednotlivé nástroje a funkce.
Druhou oblastí je zpřístupnění AI uživatelům výsledných aplikací. Ať se jedná o CRM,
ekonomický systém, nebo řízení výroby, může uživatelům zjednodušit orientaci v aplikaci,
automatizovat komplexní procesy nebo například rozšířit aplikaci o použití přirozeného jazyka.
Trocha teorie
Pokud se mluví o AI, často je to v souvislosti s OpenAI, Chat-GPT, Copilotem, nebo poslední dobou DeepSeek r1. Záměrně jsem takto smíchal tři úrovně, které je třeba rozlišovat:
• Autor (tvůrce, „vlastník“) – Sem patří například zmiňovaná OpenAI, Google, Microsoft nebo DeepSeek. Autor stojí za vývojem a trénováním modelů.
• Model – Většina vlastníků nabízí více než jen jeden model. U Chat-GPT to mohou být například o1, o3-mini, GPT-4o a další. Modely se typicky liší schopnostmi, ale také svou velikostí (a tedy i náročností)
• Poskytovatel (provider) – Jako každá technologie potřebuje i AI zázemí (především výpočetní kapacitu a datové sítě) a rozhraní pro komunikaci (API). Poskytovatelem GPT-4o mini tak například není pouze OpenAI, ale rovněž Microsoft se svým Microsoft Azure.

Základní typy modelů
- Lineární regresní modely – Používají se k předpovídání budoucích hodnot na základě lineárního vztahu mezi vstupními a výstupními proměnnými.
- Klasifikační modely – slouží nejčastěji k zařazení vstupních dat do jedné z předem definovaných skupin. Používají se zde metody jsou logistická regrese, rozhodovací stromy nebo vektorizace dat.
- Neuronové sítě – tyto modely inspirované lidským mozkem jsou schopné se učit složité vzory. Příkladem využití je například zpracování obrazu.
- Rekurentní neuronové sítě – Používají se zpracování sekvenčních dat, jako je text nebo časové řady. Jejich hlavní předností je schopnost uchovávat informace z předchozích kroků.
- Generativní modely – Jedná se o generativní sítě schopné vytvářet nová výsledková data (texty, grafiku, hudbu), která odpovídají těm, která byla použita pro tréning.
Multimodální modely
Multimodální modely umělé inteligence, jsou modely, které dokáží zpracovávat a integrovat různé typy vstupů, jako jsou text, obraz nebo zvuk, v rámci jedné interakce. Příkladem takového modelu je například Phi-4-multimodal.
- Model dokáže simultánně pracovat s různými typy dat, což umožňuje komplexní analýzu a generování obsahu.
- Umí porozumět vstupům a generovat obsah v různých jazycích.
- Využívá techniky křížového učení, což zlepšuje jeho schopnost rozumět a reagovat na různé typy vstupů.
Trénování modelů
Trénování AI modelů je proces, při kterém se model učí rozpoznávat vzory a vztahy v datech. Tento proces zahrnuje řadu kroků:
- Pořízení dat – Nejprve je potřeba shromáždit velké množství dat, která budou použita k trénování modelu. Povaha dat závisí na cíli projektu. Následně se data zpravidla očišťují od chyb a nesrovnalostí, aby byla co nejpřesnější a nejrelevantnější. Podobně jako v databázích jsou data často normalizována, aby byla v jednotném formátu. Ve většině případů se vytvářejí tři sady dat. Jedna pro trénování modelu, druhá pro testování a další pro ověřování výsledků.
- Výběr architektury – Na základě povahy řešeného problému se vybere vhodná architektura modelu a nastaví se počáteční parametry modelu.
- Optimalizace modelu – Model se učí pomocí zvolených optimalizačních algoritmů a postupně se upravují parametry modelu tak, aby se výsledky co nejvíce přibližovali ověřovací sadě. Tento proces se může opakovat. Pro hodnocení se používají různé metriky, jako je přesnost, F1 skóre, ROC křivka a mnohé další.
- Nasazení – Poslední fází je nasazení modelu do produkčního prostředí, kde může být použit k predikci nebo klasifikaci nových dat. Běh modelu je samozřejmě vhodné monitorovat aby mohl být aktualizován s novými daty.
Podpora vývoje s podporou AI
RAD Studio 12.2 zavádí integrovanou podporu pro rozsáhlé jazykové modely. Jedná se první krok
v oblasti použití umělé inteligence v prostředí RAD Studia, které se Embarcadero plánuje v
budoucnu intenzivně věnovat.
Možnost využívat v RAD Studiu (tedy jak v Delphi tak C++Builderu) umělou inteligenci je
postavena na API (Application Programming Interface). A to jak na straně RAD Studia, tak
jednotlivých jazykových modelů.
RAD Studio Tools API
RAD Studio Tools API v současné době čítá více než 100 rozhraní, která umožňují komunikaci s
IDE a jeho ovládání. Pomocí Tools API mohou vývojáři přidávat vlastní položky do menu, tlačítka
do nástrojových lišt, vytvářet dynamické průvodce a mnoho dalšího.
Mezi hlavní funkce Tools API patří:
- Přístup k hlavnímu menu, nástrojovým lištám, akcím a dalším prvkům ovládání celého prostředí
- Přístup k editoru zdrojového kódu a jeho interním buerům, včetně podpory pro dokončování kódu
- Přístup k debuggeru a procesu ladění aplikace
- Přístup k formulářům a komponentám (obou frameworků i těm externím)
API jazykových modelů
Dalším předpokladem pro integraci AI do nástrojů a aplikací jsou API na straně jazykových
modelů AI. Tato API nabízí možnost dynamické využívat:
- Pokročilé funkce zpracování přirozeného jazyka Tedy například generování textu, překlady, sumarizace informací, odpovídání na otázky a mnoho dalšího
- Generování grafiky, hromadné zpracování, detekce a vyhledávání vzorů a podobně
Podporované jazykové modely
RAD Studio nabízí přímou podporu jazykových modelů ChatGPT, Ollama, Gemini a Claude.
Jejich propojení s prostředím tak lze nastavit přímo v prostředí a to konkrétně v „Project Options
=> IDE => Smart CodeInsight“:

Poskytovatele jazykových modelů lze zvolit nezávisle pro použití v editoru kódu a četovací okno.
Pro každého z poskytovatelů je třeba nastavit základní parametry. Na správné konfiguraci závisí
jak kvalita, tak relevance odpovědi.
BaseURL – Base URL je základní adresa, na kterou se budou posílat všechny požadavky na API.
Je to výchozí bod, ke kterému se připojují jednotlivé endpointy API.
Api key – API Key je unikátní identifikátor, který slouží k autentizaci a autorizaci uživatele nebo
aplikace při přístupu k API. API klíč je obvykle dlouhý alfanumerický řetězec, který se zahrnuje do
každého požadavku na API, aby bylo možné ověřit, že uživatel či aplikace mají požadované
oprávnění k přístupu.
Model – Výběr modelu je jedním z nejdůležitější parametrů. Modely se liší schopnostmi, ale také
cenou. Většina modelů umožňuje i bezplatné použití, ale často s velmi omezeným počtem
kreditů. Každý z poskytovatelů nabízí zpravidla více než jeden model. Porovnání modelů
nalezneme například zde: https://artificialanalysis.ai/leaderboards/models. Zdarma jsou
aktuálně k dispozici modely ChatGPT GPT-4o, Ollama Llama 3.3, Gemini 2.0 Flash-Lite nebo
Claude 3.5 Sonnet.
MaxToken – Tento parametr určuje maximální počet tokenů, které může model vygenerovat v
odpovědi. Tokeny jsou základní jednotky textu, které mohou být slova nebo části slov. Tento
parametr je užitečný pro kontrolu délky výstupu a zajištění, že odpověď nepřekročí určitou délku.
Například, pokud nastavíme MaxTokens na 100, model vygeneruje odpověď s použitím
maximálně 100 tokenů. Řada placených modelů je založena na nákupu kreditů. Vztah mezi
kredity a tokeny je přímo úměrný. To znamená, že čím více tokenů model zpracovává nebo
generuje, tím více kreditů je spotřebováno.
Temperature (teplota) – Parametr ovlivňuje náhodnost generovaného textu. Nižší hodnoty
vedou zpravidla ke konzervativnějším odpovědím, zatímco vyšší hodnoty jsou více kreativní.
Typické rozsahy jsou:
- Nízká teplota (0.0 – 0.3): Výstupy jsou více konzistentní a vhodné pro úkoly vyžadující přesnost.
- Střední teplota (0.4 – 0.7): Vyvážený přístup mezi konzistencí a kreativitou.
- Vysoká teplota (0.8 – 1.0): Výstupy jsou více kreativní a rozmanité, vhodné pro generování příběhů nebo brainstorming
Podrobnější informace:
ChatGPT: https://platform.openai.com/docs/api-reference
Gemini: https://cloud.google.com/ai/apis
Claude: https://docs.anthropic.com/en/home
Ollama: https://ollama.com/
Příklad nastavení:


Lokální modely
Některé modely AI mohou pracovat lokálně bez připojení k internetu. Tyto modely jsou předem
natrénované a využívají lokálně uložená data, což umožňuje jejich použití i v prostředích bez
internetového připojení. Online modely mají využtí v různých oblastech, například v lékařských
diagnostických nástrojích, které analyzují data pacientů lokálně, v autonomních vozidlech a
nebo z důvodu bezpečnosti.
Z modelů podporovaných prostředím RAD Studia je to model Ollama. Ten umožňuje běh velkých
jazykových modelů (LLM) lokálně bez nutnosti připojení k internetu. Kombinují se zde modely z
Hugging Face s optimalizovaným runtime Ollama.
Použití AI v rámci Chatu
Požadavky můžete zadávat po otevření četovacího okna po kliknutí pravým tlačítek myši na
záložku v editoru kódu. Práce v četovacím okně je shodná jako například v ChatGPT promtu
nebo okně Microsoft Copilot.
Použití AI v rámci editoru kódu
Při používání je samozřejmě doporučeno nesdílet kód, který obsahuje přístupové údaje, nebo
„know-how“, které nechcete veřejně sdílet.

- AI Chat – Otevře četovací okno pro komunikaci se zvoleným jazykovým modelem
- Find Bugs – Odeslání požadavku na vyhledání případných chyb v označené části kódu
- Explain Code – Požadavek na vysvětlení označené části kódu
- Add Comment – Požadavek na okomentování vybrané části kódu
- Complete the code – Požadavek na dokončení označené části kódu
- Optimize code – Požadavek na návrh optimalizace označené části kódu
- Add unit test – Doplnění unit testu pro označenou část kódu
- Convert to Assembly – Převod označené části kódu na Assembly
- Convert to Delphi – Převod označené části kódu z C++ nebo Assembly do Pascalu
- Convert to C++ Builder – Převod označené části kódu do jazyka C++
Implementace AI v rámci aplikací
O AI se dnes mluví prakticky všude, a i IT dodavatelé se ji snaží zahrnout do svých produktů.
Spolu s Delphi získáte celou řadu pluginů a komponent, které toto umožňují.
Použití wrapperů
Wrapper pro AI model je program nebo knihovna, která obaluje (anglicky „wraps“) AI model a
poskytuje jednodušší nebo uživatelsky přívětivější rozhraní pro jeho použití. Hlavním cílem
wrapperu je usnadnit interakci s AI modelem.
Zjednodušeně řečeno jde o generování zadání. Například automatické vložení JSON dokumentu,
pro který budete chtít nechat vygenerovat kód pro jeho zpracování (parsing). Místo zápisu
požadavku tak můžete doplnit konkrétní údaje z prostředí (ToolsAPI) nebo aplikace (RTTI).
Hlavní funkce wrapperu:
- Zjednodušení – Wrapper skrývá složité detaily implementace AI modelu a poskytuje jednodušší rozhraní pro uživatele.
- Snazší integrace – Umožňuje snadnější integraci AI modelu do různých aplikací nebo systémů.
- Předzpracování a následné zpracování – Wrapper může zahrnovat funkce pro předzpracování vstupních dat a postprocessing výstupů modelu.
- Rozšířnou použitelnost – Poskytuje uživatelsky přívětivější API (Application Programming Interface), které usnadňuje použití AI modelu.
AI Wrapper si můžete buď vytvořit, nebo použít některý z existujících. Řada Wrapperů je
k dispozici v GetIt Package Manažeru. Jeho rozhraní otevřete z hlavní nabídky RAD Studia, Delphi
nebo C++Builderu (hlavní nabídka => Tools => GetIt Package Manager…):

Možnost komunikace s umělou inteligencí můžete zpřístupnit i vašim zákazníkům. V GetIt
Package manažeru jsou k dispozici jednoduché komponenty, které nabízí integraci umělé
inteligence do vyvíjených aplikací.
Nastavení je velmi podobné jako v případě prostředí. Pokud si tedy necháte vygenerovat API klíč
pro vývojové prostředí, můžete vyzkoušet i tuto variantu.
K integraci je zde i generativní model od OpenAI, který umí na základě textových požadavků
vytvářet grafiku.
Učení AI s využitím vlastních dat
Jazykové modely jako Chat-GPT, Gemini, Claude a další je možné „trénovat“ s využitím vlastní
datové základny.
- Chat-GPT (OpenAI) – OpenAI umožňuje uživatelům trénovat a ladit modely GPT na vlastních datech pomocí API. Můžete nahrát vlastní dataset a použít ho k doladění modelu, aby lépe vyhovoval vašim specifickým potřebám.
- Gemini (Google) – Google nabízí podobné možnosti s modelem Gemini (dříve známým jako Bard). Uživatelé mohou k trénování a ladění modelů na vlastních datech využít platformu Google Cloud AI.
- Claude (Anthropic) – Claude od společnosti Anthropic je navržen s důrazem na bezpečnost a etiku. Ale i tento model ladit na vlastních datech.
- Ollama – Tento model rovněž podporuje jemné ladění na s využití vlastních dat. Model tak lze přizpůsobit specifickým potřebám aplikací.
Každý z těchto modelů má své vlastní nástroje a platformy pro trénování a ladění, takže je nutné
použít dokumentaci a návody určené specificky pro zvolenou platformu.
Další možností je zvolit z GetIt Package Manageru komponenty pro přímé napojení na API (viz
například TRDGoogleAIGemini):

Komponenta je nainstalována včetně ukázkové aplikace, která ilustruje, jakým způsobem je
možné AI s aplikací integrovat. Jediné co je třeba udělat je, vygenerovat si přístupový APIkey
(https://aistudio.google.com/app/apikey) a spustit aplikaci:

S rostoucí kvalitou modelů se možnosti využití umělé inteligence neustále rozšiřují. Společnost
Embarcadero věnuje této oblasti velkou pozornost a dá se tak očekávat že budoucí verze budou
přinášet další možnosti a vylepšení.