Vlastní AI chatbot 1) Výběr a nastavení

Toto je seriál, kde budu postupně ukazovat vývoj vlastního AI/LLM chatbota. Něco jako chatGPT na vlastních datech, pro určitý účel použití. V tomto první dílu nastíním, jak jsem nad aplikací uvažoval a co jsem si vybral za technologie. Na závěr ukážu i první nástřel aplikace.

Vytvořit si vlastního chatbota je něco, co mě láká už delší dobu. V minulosti jsem realizoval například chatbota (přes komerční řešení) napojeného na data mého webu, nebo celou aplikaci ve Flasku, kterou jsem naprogramoval sám a úplně od nuly (ale o tom zase jindy).

Nyní jsem chtěl něco, co si sice naprogramuju sám, ale bude to velmi jednoduché a budu moci přidávat jednotlivé komponenty dle potřeby. Tato aplikace nebude pro komerční účely, takže nemusím řešit databázi, ani nějakou větší robustnost a zabezpečení.

Velmi záhy jsem přišel na řešení v podobě jednoduché aplikace Streamlit. Nabízí rychlou možnost realizace a základní minimalistické UI prostředí. Většina příkladů, které jsem viděl na aplikaci streamlit se týkala spíše jedné easy služby. Já se však rozhodl přidat rovnou několik funkcí najednou.

Účel aplikace

Aplikace bude sloužit jako pomocný asistent pro vědecké pracovníky. Celá aplikace bude v angličtině a jednotlivé služby budou tvořeny za účelem pomoci vědeckým pracovníkům s úkony při své běžné práci. Samozřejmě jsem si vědom, že každá vědecká disciplína je úzce zaměřená a má své specifické potřeby.

Z mého pohledu však toto bude taková spíše obecnější aplikace pro pomoc při práci či studiu. Pokud bych měl k dispozici dané požadavky a data, tak by určitě bylo možné aplikaci více zaměřit na daný účel použití.

Aplikace bude mít tyto základní funkce (časem přidám i další)

  • Chatbot (obecný chat pro různá témata)
  • Chat s PDF
  • Research (vyhledávání aktuálních informací)
  • Vizualizace dat
  • Chat s Arxiv
  • Chat s vlastními daty (pdf, doc, txt, csv)
  • Voice assistant

Technologie

Vybral jsem následující komponenty:

  • Streamlit – jednoduché rozhraní pro aplikaci
  • LLM – jako hlavní jazykový model jsem vybral LLama-3 na Groq (další přidám dle potřeby)
  • Phidata – pro možnost napojení asistentů s nástroji, pamětí a znalostmi
  • Langchain/Llama-index/Groundx pro napojení RAG

Většina aplikací bude napojena na Groq. Díky tomu bude odezva chatbota extrémně rychlá. Vše bude v angličtině, nemusím tedy řešit specifikum českého jazyka.

Díky napojení na vlastní data se zabrání případným halucinacím.

Aktuální informace získám díky napojení na vyhledávač Tavily nebo DuckDuckGo.

Většinu služeb budu řešit přes open source modely, abych nemusel řešit náklady za API služby.

Hlasový asistent bude umět zapisovat poznámky na základě hlasu a následně poslat sumarizaci na e-mail. Takový hlasový záznamník, když cestujete a nemáte možnost si psát poznámky ručně.

Cílem je vyzkoušet si nové technologie, otestovat a přidávat nové funkcionality, aniž bych musel složitě a zdlouhavě programovat vlastní řešení.

Za mě je to docela dobrý kompromis mezi tím, kdy jsem vše dělal přes Colab (Jupiter notebook) a jiným řešením, kdy jsem zase zdlouhavě programoval vlastní robustní řešení, které bylo ve výsledku stejně jen do šuplíku a bez komerčního účelu, ale zbytečně časově náročné.

Jak aplikace vypadá

Zde je první ukázka rozhraní Streamlit. Aplikaci mám zatím pouze lokálně, časem nasadím na Streamlit Community Cloud, kde je i možnost nasadit na vlastní streamlit url.

Můj první dojem z aplikace streamlit je ten, že se mi líbí celý nápad a trochu mi to připomíná dobu, když jsem začínal dělat weby a objevil jsem wordpress. Samozřejmě wordpress je úplně jednoduchý redakční systém, kde nemusíte programovat nic. Ale na začátku to pro mě byla taky úplně nová věc a musel jsem se naučit jak si zaregistrovat doménu, nastavit hosting, nastavit jednotlivé moduly, pluginy, stránky, atd.

Oproti tomu u Streamlit musíte přece jen programovat, ale zase je tam spousta komponent na FE již připravena a vy je nemusíte řešit. Ze začátku jsem měl trochu problém pochopit jednotlivé příkazy a funkce, ale za několik dní už jsem se těšil z prvního funkčního řešení 🙂

V příštím díle ukážu, jak jsem nasazoval do aplikace svého superrychlého Groq chatbota s Lama-3 modelem.

Obsah článku

Líbí se Vám obsah?

Odebírejte Newsletter, ať vám nic neunikne.

Odebírejte novinky ze světa AI

Chcete-li se přihlásit k odběru tohoto blogu a dostávat upozornění na nové příspěvky e-mailem, zadejte svou e-mailovou adresu.

Sledujte mě na sítích.

Odběr novinek AI

Odebírejte novinky ze světa AI

Chcete-li se přihlásit k odběru tohoto blogu a dostávat upozornění na nové příspěvky e-mailem, zadejte svou e-mailovou adresu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Podobné články

školení chatGPT

Praktické Školení chatGPT

Nabízím praktické školení chatGPT pro firmy i jednotlivce. Díky tomuto kurzu se dozvíte, jak chat GPT používat při každodenní práci i na pomoc v osobním

Číst více »