2025-09-12
2025-09-12
Simple chatbot
Tęsiant praeitos dienos įrašą…
Okay, mano “development” kompiuteris turi vos vieną gigabaitą laisvos RAM atminties.
Praktiškai aš koduoju su bulve.
O jeigu rimtai, tai programuodamas visada privalau atsižvelgti į tai, jog turiu limituotus techninius resursus, kadangi beveik visus kodinimo projektus kuriu ChromeOS virtualiame Linux konteineryje. (Paprastai JS projektams pakanka turėti silpnesnį kompiuterį, nes daug ką galima susiprogramuoti naudojant debesijoje esančias technologijas)
Mano išsikeltas uždavinys buvo sukurti paprastą, bet ganėtinai gudrų pokalbių robotą gebantį veikti lokaliu režimu. Kitaip tariant, jokių išorinių paslaugų ar įrankių - viskas saugoma kietajame diske tam, kad neprarasti duomenų bei sukurtos personos (o šios veikimas priklauso nuo suvestų frazių apmokymo metu, apie tai sekančiame įraše).
Programavimo kalba
Kiekvienas žino, jog kuriant vienokį ar kitokį programavimo projektą bene svarbiausias pasirinkimas - programavimo kalba. WEB puslapių kūrybai pakanka JS Frameworkų bei CSS, bet kai reikia tvarkytis su failais bei didesniais duomenų kiekiais… Python is a way to go, my reader, python is a way to go.
Tad visai nenuostabu, kad greitai susikūriau naują uv aplinką ir pradėjau palengva dėlioti reikiamus įrankius (ne visus juos galiu minėti dėl licencijavimo sumetimų).
Balso išvestis
Prieš keletą metų balso išvesčiai būtų pakakę paprasto tts modelio ir visi būtų buvę sužavėti, tačiau 2025-aisiais dirbtinai skambantis robotizuotas balselis sklindantis per kompiuterio kolonėles tiesiog nebekelia jokios nuostabos. Tad daugmaž natūraliai skambančiai išvesčiai į garsą parinkau piper-tts (su vidutinės gebos atkūrimo modeliu).
Balso įvesties pavertimas tekstu
Balso įvestį paversti tekstu? Be interneto?
Misija įmanoma. Tam pridėjau pocketsphinx, bet pastebėjau, kad šis įrankis nėra ganėtinai tikslus (ateityje gali tekti taisyti kodą naudojant ką nors alternatyvaus).
Atitinkamos atminties parinkimas bei panašiausio atsako grąžinimas
Nothing too fancy. SQlite duomenų bazė (greitaveika), truputis matematikos (similarity tresh_hold) panašiausio atsako parinkimui bei jau egzistuojantis botų kūrybos paketas.
LLM modelio parinkimas ir prijungimas
Tinkamo LLM modelio parinkimui derėtų atsižvelgti į tai kokio elgesio tikimasi iš savo kuriamo boto. Didelis kiekis offline režimu veikiančių modelių prieinamas Ollama platformoje (https://ollama.com/library - nuo psichologijos iki kodavimo).
Prijungimas? Taipogi paprasta. (langchain_ollama, http://pypi.org/project/langchain-ollama/)
Projekto nuoroda: https://github.com/Sparky4567/simple_chat_bot_uv

| # | Žymos |
|---|---|
| #post #artefaktas_eu #personal #opinion #ai #botas #chat #bot #ollama #galima #reklama |
Asmeninė nuomonė.
Linktree link: https://linktr.ee/artefaktas
Tinklaraštį galima prenumeruoti net keletu skirtingų būdų:
- Naudojant RSS sklaidos kanalo nuorodą: https://artefaktas.eu/rss.xml
- Naudojantis follow.it forma
Artefaktas.eu is licensed under CC BY-NC-ND 4.0