AlNuzum
UZ
barcha loyihalar
o'z mahsulotimiz

Togable: so'z bilan tavsif va ishlaydigan bot o'rtasida nima turadi

Bot oddiy so'zlar bilan tavsiflanadi. Keyin esa atrofidagi muhandislik ishlaydi: xulq-atvor ssenariylar bilan yozilgan spetsifikatsiya, har bir botga alohida konteyner va o'z bazasi, so'rovlarni jonli ma'lumotlarda tekshirish va nima qilinmagani haqidagi hisobot.

togable.xyz ochiq, yigʻish roʻyxatdan oʻtgach boshlanadi

Переписка: описание бота словами, карточка с шестью вопросами агента и ответы человека
Odam botni bitta xatboshida tavsifladi. Agent kod yozishni boshlamadi, qayta so'radi: Telegram ichida alohida mini-ilova kerakmi, xarajatni kiritish qanday qulay, chek surati biriktirilsinmi, botdan kim foydalanadi. Quyida javoblar, va «bitta satr bilan» degan javob keyin spetsifikatsiyada turadi va jonli botda ishlaydi.

Bot qanday yig'iladi

Suhbat bilan ishlaydigan bot o'rtasida ikki qadam: avval xulq-atvor hujjat qilib yoziladi, keyin o'sha hujjat bo'yicha yig'iladi va tekshiriladi.

Odamning javoblari yozishma ichidagi qayta hikoya emas, alohida hujjatga aylanadi. Xulq-atvor ssenariylar bilan yozilgan, buyruqlar va ma'lumotlar ham o'sha yerda sanab o'tilgan, spetsifikatsiyani esa odamlar tahrirlaydi: agent uni botning har bir keyingi tahriridan oldin o'qiydi. Natija aynan shunga solishtiriladi.

Spetsifikatsiya xulq-atvorni ssenariy ko'rinishida saqlaydi: «xabarda summa bo'lmasa, unda bot formatni qisqacha tushuntiradi va hech narsa saqlamaydi». Yig'ilgani keyin shunga solishtirib tekshiriladi.

So'z bilan tavsifdan hammasi bitta faylda emas, modullarga ajratilgan bot chiqadi: kategoriyalar, klaviaturalar, ishlov beruvchilar, kirish nuqtasi, baza bilan ishlash. Har bir tahrirdan keyin tizim uni o'zi kompilyatsiya qiladi va smoke-test o'tkazadi, va shu tariqa aylana bo'ylab, to'g'ri kelguncha.

Interfeysda manba kodlari yo'q, va bu mahsulot mualliflarining qarori, kamchilik emas: kod va loglar yorliqlari ataylab olib tashlangan, chunki ular bot buyurtmachisiga hech narsa demaydi, «botim nima qila oladi» degan savolga esa hech kim javob bermasdi. Ularning o'rnini spetsifikatsiya egalladi.

Yig'ish yo'li ochilgan holda: ketma-ket fayllarni yozish va tahrirlash, o'qish, kompilyatsiya, ishga tushirish va smoke-test. Bu operatsiyalar ro'yxati, listing emas: undan ishning ritmi ko'rinadi, mazmuni emas.

Nima chiqadi

Yig'ilgan bot ishda va yig'ish yakunlanadigan hisobot.

Bu mahsulot yig'gan bot xarajatni oddiy satr sifatida qabul qiladi va tahlil bilan javob beradi: summa, kategoriya, sana va bu oyda qancha sarflangani. Kategoriya so'zning ma'nosidan topiladi, agar noto'g'ri topilsa, javob ostidagi tugma bilan almashtiriladi. Oylik yakunni bot o'zida hisoblaydi, shuning uchun u qayddan qaydga to'planib boradi.

Yig'ilgan bot bilan jonli yozishma. «42.80 такси», ya'ni 42.80 taksi, qaydga aylanadi: $42.80, «Такси / транспорт» ya'ni transport kategoriyasi, sana va oy uchun $42.80. Keyingi qayd, «отель 236.50» ya'ni mehmonxona, oylik yakunni $279.30 gacha ko'taradi.

Yig'ish «tayyor» so'zi bilan emas, nima tekshirilgani va nima qilinmagani alohida aytilgan hisobot bilan tugaydi. Bu yerda kod bilan aylanib o'tib bo'lmaydigan ikkita to'siq nomlangan, ulardan biri esa platforma tomonida odamning harakatini kutmoqda. «Bot yig'ildi» va «bot ishlaydi» o'rtasidagi farq aynan shu.

Hisobot tekshirilganini («baza so'rovlarini jonli bazada tekshirdim») va tekshirilmaganini alohida sarlavha ostida nomlaydi: ikkita tashqi to'siq va qilinmagan avatar.

Buning ostida nima bor

  • Bot qayerda yashaydi. Har birida o'z konteyneri va o'z bazasi. Botlar bir-birini ko'rmaydi va umumiy omborga bormaydi, shuning uchun ulardan birining kodida xato bo'lsa ham o'zganing qaydlari qo'l yetmas bo'lib qoladi.
  • Nima haqiqat manbai hisoblanadi. Spetsifikatsiya, agent bilan yozishma emas. Xulq-atvor ssenariylar bilan yozilgan, buyruqlar va ma'lumotlar ham o'sha yerda, va uni odamlar tahrirlaydi: agent spetsifikatsiyani botning har bir keyingi tahriridan oldin o'qiydi.
  • Chegaralar qayerda. Kodni mashina yozadi, bu esa unga ishonish emas, uni tekshirish kerakligini anglatadi. Baza so'rovlari jonli ma'lumotlarda tekshiriladi, tashqi tomonga bog'liq narsa esa hisobotga alohida chiqariladi va odamda qoladi.

Qayerda qiyin bo'ldi

Uchta ayri, ularda mahsulot biz istamagan narsaga aylanishi mumkin edi. Har birida xato narxi aytilgan.

Mashina yozgan kodni umumiy ma'lumotlarga yaqinlashtirib bo'lmaydi

xato narxibir bot boshqasining qaydlariga yetib boradi, buni esa bizdan bilishmaydi

Hamma botlarni bitta jarayon va bitta bazada ushlab turish oson va arzonroq. Hech kim satrma-satr o'qimagan koddagi birinchi xatogacha.

Shuning uchun har bir botga o'z konteyneri va o'z bazasi. Bu resurs bo'yicha qimmatroq va butun bir sinf xatolarni birdaniga olib tashlaydi: o'zganing ma'lumotlariga yetib boradigan joy yo'q, juda xohlaganda ham.

Spetsifikatsiyasiz tekshirishga hech narsa yo'q

xato narxi«menga xarajatlar uchun bot qilib ber» yuzta usulda bajariladi, keyin esa bahslashishga narsa qolmaydi

So'z bilan aytilgan iltimos topshiriq emas. Unda na nimani to'g'ri javob deb hisoblash, na bot tushunmaganda o'zini qanday tutishi bor.

Iltimos bilan kod o'rtasida spetsifikatsiya turadi, unda xulq-atvor «qachon, unda» ssenariylari bilan yozilgan. Natija shunga solishtirib tekshiriladi, va u odamda tahrir uchun qoladi, yozishma ichida yashirinmaydi.

Hisobot nima chiqmaganini nomlashi shart

xato narxiodam «tayyor» deb eshitadi, haqiqatni esa o'z foydalanuvchilaridan biladi

Hammasi yaxshi bo'lgan hisobot yoqimliroq va foydasizroq. Ayniqsa ishning bir qismi tashqi tomonga tiralib qolgan va tugatib bo'lmaydigan joyda.

Shuning uchun o'tmagani hisobotga alohida sarlavha ostida, odamdan aynan nima talab qilinishi bilan birga chiqariladi. Tekshirilgani esa o'sha yerda tekshirilgan deb nomlanadi: baza so'rovlari jonli ma'lumotlarda o'tkazilgan, ko'z bilan ishlaydi deb topilmagan.

Keyin tekshirib bo'ladigan narsa yig'ish kerakmi?

Xulq-atvor koddan oldin yozilgan bo'lishi va hisobot qilingani ham, qilinmagani ham nomlashi uchun yig'amiz. Ishlaydigan prototipni to'lovdan oldin ko'rsatamiz.

Vazifani muhokama qilamiz