Шлях праекта
Стварэнне Adogen заключалася не толькі ў стварэнні абгорткі штучнага інтэлекту, але і ў вырашэнні рэальных праблем, з якімі сутыкаюцца аўтары стоковых фотаздымкаў у Інданезіі. Я ў першую чаргу засяродзіўся на хуткасці і прыватнасці дадзеных.
Асноўныя характарыстыкі і тэхнічныя рашэнні
Прадукцыйнасць “Burag” з Astro і Tailwind
Выбар Astro быў вырашальным рашэннем, таму што амаль усе ўзаемадзеянні статычныя, за выключэннем чаргі малюнкаў. Мінімізуючы JavaScript, які адпраўляецца ў браўзер, праграма лёгка дасягнула бала Lighthouse 100/100.
Бяспека дадзеных з мадэллю “Прынясіце свой уласны ключ”
Замест таго, каб спаганяць з карыстальнікаў плату за падпіску, я ўкараніў сістэму BYOK (Прынясіце свой уласны ключ). Карыстальнікі ўводзяць свой уласны ключ API Groq/Mistral, які надзейна захоўваецца ў лакальным сховішчы іх браўзера. Гэта гарантуе:
- Выдаткі на эксплуатацыю сервера практычна нулявыя ($0).
- Канфідэнцыяльнасць малюнкаў карыстальнікаў захоўваецца, таму што яны не захоўваюцца на маіх серверах.
Архітэктура чаргі (кіраванне чаргой)
Каб справіцца з абмежаваннямі хуткасці ад бясплатных пастаўшчыкоў штучнага інтэлекту, я стварыў сістэму чэргаў з бяспечнай логікай затрымкі. Гэтая сістэма гарантуе, што запыты адпраўляюцца па адным з пэўным інтэрвалам часу, каб пазбегнуць памылкі 429 Too Requests.
Надзейная ачыстка CSV
Дадзеныя штучнага інтэлекту часта ўтрымліваюць недапушчальныя сімвалы або няправільнае фарматаванне. Я стварыў утыліту з выкарыстаннем TypeScript для ачысткі канчатковых сімвалаў новага радка \n, выдалення забароненых сімвалаў ©, ™ і забеспячэння выканання абмежавання ў 50 ключавых слоў.
// Прыклад логікі ачысткі, якую я выкарыстоўваю
const clean = (str: string) => {
return str
.replace(/\r?\n|\r/g, " ")
.replace(/[™®©]/g, "")
.replace(/"/g, '""')
.trim();
};