JS

openchat

Introduction

Tento projekt je webová aplikace s generativní umělou inteligencí, která bude fungovat podobně jako ChatGPT, chatbot s velkým jazykovým modelem vyvinutým společností OpenAI, ale bude nákladově efektivnější a škálovatelnější. Aplikace umožní uživatelům komunikovat s konverzační AI pomocí textových promptů a přijímat komplexní odpovědi bez lidského zásahu v procesu odpovídání po zadání uživatele. Aplikace také poskytne historii uživatele, aby se mohl vrátit ke starým zprávám.

openchat/index_img.png

Goal of the project

Cílem mé práce bylo vyvinout konkurenceschopnou alternativu k ChatGPT, která by byla nenáročná na údržbu a snadno použitelná pro širokou škálu uživatelů. Vybral jsem si tento projekt, protože se ve volném čase věnuji strojovému učení a problematice velkých jazykových modelů. Chtěl jsem zkusit vytvořit systém, který by byl výpočetně náročný a který by se staral o chatovací aplikaci, autorizaci uživatelů a udržoval škálovatelnou strukturu.

My approach

Můj přístup zahrnuje rozdělení aplikace na tři části: klientský server (SvelteKit), aplikační server (GinGonic) a AI API (RunPod).

Klientský server se stará o vykreslování webové stránky a komunikaci s aplikačním serverem

Aplikační server pracuje s databází pro autentizaci uživatelů pomocí JWT a funguje jako prostředník mezi klientským serverem a AI API

AI API má jediný úkol a tím je zpracovávání požadavků na generování textu pomocí LLM.

Result

Klientská strana je responzivní, přehledná a uživatelsky přívětivá. Aplikační část je bezpečná, snadno rozšiřitelná a plně optimalizovaná. AI API jsou funkční a finančně optimalizované použitím malého modelu gemma a serverless hostingu.

Výsledkem je funkční aplikace s registrací a přihlášením uživatelů, odhlášením a registrací. Také s funkcí chatování s LLM a prohlížení historie. Snadno nasaditelná pomocí Dockeru.

Photos

openchat openchat/chat_img.png
openchat openchat/register_img.png
openchat openchat/login_img.png
openchat openchat/about_img.png
openchat openchat/index_img.png