Изкуственият интелект е тенденция, за която има милиони мнения – положителни и отрицателни, така че като техническо лице реших да придобия малко личен опит с нея. Не съм ескперт в математиката или в машинното обучение, за това, ще представя моята гледна точка – на създаващ приложения за масовия потребител. https://www.youtube.com/watch?v=ZV6M0O_VITE
Да използвам ли Open AI или да не използвам Open AI
За да събера малко личен опит – тествах AI python код, който използва езикови модели с отворен код за:
- преобразуване от текст в реч
- преобразуване от говор към текст
- извличаne на текстов отговор от машинния модел
Имам имплементирана обвивка на Open AI . https://programtom.com/dev/product/gpt-spring-boot-micro-service/. Но за този личен проект не исках да използвам API на OpenAI, за да минимизирам таксите и да си изцапам ръцете реално. В противен случай щях да бъда просто REST API Интегратор и нямаше да науча нищо от него.
Python страна
Всичко трябва да бъде разделено на най-малките градивни елементи – наричани още първи принцип във физиката. По отношение на изкуствения интелект това е:
- Събиране на данни, които ще бъдат използвани за обучение на модел за машинно обучение
- Трансформиране данните от реалния свят в математически модели, които ще се използват за бъдещи заявки
- Инициализиране на моделите и получете желания резултат.
От всичко по-горе направих само третата стъпка, защото исках да имам готово приложение – по-бързо.
Java/Kotlin Wrapper
Не владея Python, но съм достатъчно полиглот – за да свърша задачата си. Направих мини сървър – с няколко REST Endpoints на горното – така че моделите да останат в паметта и да бъдат по-бързи, и ги обвих в Java Web Приложение.
Като част от желаното от мен приложение разширих и предишен мой проект. Отворих REST крайна точка, която извиква API на Google Translate. Имаше известна сложност като:
- Приложението беше написано с Kotlin
- работи на GraaVM
- Quarkus като основа за
- Той е част от уеб приложението Vaadin – https://programtom.com/dev/product/poc-translations-manager-application/
На определени места – внедрих кеширане на заявки. Без значение дали някой използва API на трета страна или личен – кеширането ще подобри скоростта/изживяването при използване.
Приложение Flutter
Крайната цел на моя проект е приложение Flutter, което
- записва гласа
- преобразува го в текст
- превежда го на други езици
- изговаря текста
Това може да е полезно за изучаване на нови езици или (някак бавно, но – ) говорене с чужденци на техния език. Приложението използва:
- Flutter Plugins – за iOS, Android и Windows за
- Записване
- Възпроизвеждане на аудио
- sqlite3, flutter_bloc, flow_builder и др
Приложението ми за момента работи на Windows и iOS, но имам някои проблеми с Android. Имам и няколко UX елемента за коригиране, но се надявам скоро да успея да ги публикувам в магазините.
Заключения
Експериментирах и научих много с този проект.
- AI изисква много и модерна изчислителна мощност. Имам стар компютър с надстроена RAM и SSD и все още – той е бавен за приложения за машинно обучение
- Въпреки че научих много, експериментирайки с различни технологични стекове и библиотеки, преминах точката на сложност, която уби продуктивността
- Подхождайте просто и глупаво – използвайки нещата, които знаете
