Nazoratchining tili

Nazoratchining tili

– Yaxshi promtni qanday loyihalashtirish mumkin?

1. Kirish

Claude Code uchun ma’ruzani tayyorlash jarayonida men tushuntirish maqsadida turli manba kodlarini ishlab chiqdim, o’zgartirdim va sinovdan o’tkazdim. Yaponiya AI davridan oldin, amaliyot uchun kod yaratish ko’p vaqt talab qilgan ixtiyoriy o’ylash va o’zgartirishni talab qilar edi, ammo endi bir necha so'zli promtlar yordamida men kerakli kodni, funksional kodni va barcha test vazifalaridan o’tadigan kodni bir necha daqiqa ichida ishlab chiqarishim mumkin. Har safar, men kod yaratuvchidan kod tekshiruvchisiga aylanganimni his qildim.
Bundan tashqari, ishlab chiqilgan kodni AI hamkorligida turli nuqtai nazardan tasdiqlash juda muhim ekaniyini angladim va dastlabki kodni yaratishda nimaga e’tibor berish va qanday promt berish kerakligi haqidagi universal jihatlarni qayta ko'rib chiqdim.
Taqdimot taxtasi misolida sozlashni amalga oshirganda, men quyidagi promtni berdim.

“게시글에 댓글 기능을 추가해줘.”

Natijalar bir necha daqiqada chiqdi. Kommentariy entidadi yaratildi va Xizmat, Kontroller va JPA asosidagi Repositoriyalar qurildi, shuningdek, React bilan yaratilgan ekranda kommentariy ro'yxati ko'rsatildi. Biroq, natijalar ekranini va manba kodini ko'rayotganda, g'ayri ihtiyoriy berilgan promtlardan turli savollar paydo bo'ldi.
‘Kommentariylarni javoblash mumkinmi?’
‘O'chirish yumshoqmi yoki qattiqmi?’
‘Faqat muallif uni o'chirishi mumkinmi? Administrator haqida nima?’
‘Sahifalash qanday ishlaydi?’
Turli savollar paydo bo'lsa-da, AI vazifalarni bajarishda ularning hech birini so'ramadi. O'ylab ko'rganimda, mening promtim talablar emas, balki maslahatlarga teng edi, bu esa olingan natijalarga olib keldi. Shunga o'xshash tajribalar orqali men ‘aniq promt berish’ning haqiqiy ma’nosi, uni ajratadigan elementlar va qanday qilib takrorlanuvchi jarayon sifatida yaratilishi mumkinligini o'ylashni boshladim.

2. Promtlarga talablar spetsifikatsiyasi sifatida munosabat bildirish

Aniq bo'lmagan talablar aniqlik bo'lmagan tizimlarni yaratadi. Talablar injiniringida, talablarning sifatini tushunish, to'liq, tekshiriladigan va barqarorlikka asoslangan holda baholanadi. Bu to'rt mezon bevosita promtlarga ham tegishlidir. Promt o'zi bizning talablarimizni AI ga etkazadi.

Tezlikda farq bor. Kamchilikli talablarni shaxsga etkazganda, “Kommentariyga javob berish zarurmi?” yoki “O'chirish uchun qanday usulni tanlash kerak?” kabi savollar tabiiy ravishda paydo bo'ladi. Ushbu jarayon talablarni aniqlashtirishdir. Biroq, AI savollar bermaydi. Buning o'rniga, eng ehtimoliy standartlarni to'ldiradi va darhol natijalar chiqaradi. Savol bermaslik, talablar bo'yicha bo'shliqlarni yashirishni anglatadi.

Aniq bo'lmagan promtlar natijasida kelib chiqadigan savol jarayonini kamaytirish uchun, biz ushbu savol jarayonini promt yozish bosqichiga oldinga olib chiqishimiz kerak. Hamkasblar bilan muloqot orqali to'ldirilgan bo'shliqlarni AI ga topshirayotganda, ular iltimosnoma berilgan vaqtda oldindan to'ldirilishi kerak. Shu sababli, promtlar faqat ko'rsatmalar sifatida emas, balki talablar spetsifikatsiyalari sifatida qaralishi kerak.

4. Aniqlikni Talab Qilish Uchun To'rt Masala

Men aniqlikni talab qilish uchun to'rt masalani tartibga keltirdim. Har bir nuqta mustaqil emas va bir-birini to'ldiradi.

  • Natijaning Chekkasi
    Aniqlashtirish kerak bo'lgan birinchi narsa nima yaratish va nima yaratmaslikdir. 'Izoh xususiyati' bu turli ma'nolarni o'z ichiga olishi mumkin, masalan, javoblar, yoqtirishlar, hisobotlar, saralash variantlari va bildirishnoma integratsiyasi. Agar chegaralar belgilanmasa, AI o'zini o'zi belgilaydi, odatda eng ko'p uchraydigan amalga oshirish holatlarini hisobga oladi. Bu chegaralar loyihaning kontekstidan mustaqil ravishda belgilanadi va haqiqiy talablar bilan farq qilishi ehtimoli bor.
    Chegaralarni belgilash funksionallikni kamaytirmaydi. Bu so'rovning doirasini boshqa biridan ajratish haqida. Bu farq natijaning ko'rinishini aniqlaydi.

  • Mavjud Tizimlar Bilan Aloqa
    Ikkinchi masala, bu xususiyat qanday qilib mavjud dasturlar tuzilmasiga mos kelishini aniqlashdir. Bu, ushbu og'zaki xabarnoma loyihasining autentifikatsiya usuli, post entitining tuzilishi va mavjud API’larning javob formati kabi jihatlarni o'z ichiga oladi. AI butun loyihani indekslash qobiliyatiga ega va muvofiq fayllarni avtonom tarzda topish va tahlil qilish qobiliyatiga ega, lekin bu qobiliyat faqat kodning qanday bog'langanligini tushunish bilan cheklangan. Dastur ort behind mo'ljallangan dizayn niyatlarini taxmin qila olmaydi.
    Shuning uchun, so'rovda mavjud tizimlar bilan aloqani belgilab berish, AI’ning tadqiqot doirasini kengaytirish emas, balki AI’ning noto'g'ri taxminlarga asoslangan natijalarni yaratilishining oldini olish haqida.

  • Delegatsiya Mezoni
    Uchinchi masala, AI o'z-o'zidan hukm qila oladigan sohalar va dasturchilar tomonidan aniq belgilanishi lozim bo'lgan sohalar o'rtasidagi farqni aniqlashdir. Masalan, 'o'chirish siyosatini yumshoq o'chirishga qo'yish va o'z-o'zidan paginatsiya usulini taklif qilish' kabi vakolatlarni delegatsiya qilishda aniq farqlarni qo'yish.
    Bu farq juda muhim, chunki bu avvalgi xabarlarimizda muhokama qilingan kognitiv qarzdorlik va niyat qarzdorligi bilan bog'liq. Agar dasturchi aniq belgilanishi kerak bo'lgan hukmni (masalan, o'chirish siyosati va vakolat doiralari, biznes qoidalariga yaqindan bog'liq) AI ga topshirsa, bu qaror asosiy faqat kodda qoladi va hech qanday hujjatsiz bo'ladi. Aksincha, agar dasturchi AI o'z fikrlarini bildira oladigan sohalarni belgilab qo'yilsa (masalan, amalga oshirish uslubi, ichki usul ajratilishi), bu so'rovni yaratishda ko'p vaqt sarflashga olib keladi. Delegatsiya mezonlarini belgilash, oxir-oqibat, nazoratchining qarorlari qayerdan tugashi va ijrochini o'z ixtiyoriga qachon beradi, aniqlab beradi.

  • Tasdiqlash Usullari
    Yakunida, oxirgi nuqta, natijalarni so'rov bosqichida qanday tekshirishni aniqlashdir. 'Iltimos, muallif emas, o'chirishga urinayotgan foydalanuvchi uchun 403 qaytishini tekshirish uchun test ham yarating' degan so'rov orqali, AI tasdiqlash mezonlarini bir vaqtning o'zida amalga oshirish bilan strukturalashtiradi. Post-ishlab chiqarish bosqichida tasdiqlash usulini belgilash va so'rov bosqichida tasdiqlash usulini belgilash butunlay boshqacha natijalarni olib keladi.

Ushbu to'rt nuqta texnik qarz, kognitiv qarz va niyat qarzining oldini olish uchun birinchi eshik sifatida hisoblanishi mumkin. Chegaralar va delegatsiya mezonlari so'rov taklif qilish bosqichida aniq belgilab qo'yilganda, o'sha yozuv o'z navbatida keyinchalik murojaat qilish mumkin bo'lgan amalga oshirish niyatining iziga aylanadi.

4. So'rovni Qayta Loyihalash Jarayoni

Bu noaniq soʻrovni qayta loyihalashda farqlar.

Kategoriyalar

oldin

keyin

Soʻrov

Iltimos, postga kommentlar qoʻshish funksiyasini qoʻshing.

- Silliq kommentlar (bitta daraja) uchun hech qanday qoʻllab-quvvatlash yoʻq
- Yumshoq oʻchirish (is_deleted ustunini qoʻshish)
- Faqat mualliflar va administratorlar oʻchirish huquqiga ega
- Paging (20 ga belgilangan)
- Oʻchirish ruxsatini tekshirish uchun test kodini qoʻshing

Natija

AI ipli kommentlar, oʻchirish siyosati, va ruxsat doirasini tasodifan belgilaydi.
Qattiq oʻchirish amalga oshirildi, qayta soʻrovni talab qiladi

Birinchi natija talablar bilan mos keladi. Bu bir tomondan tekshirilishi mumkin boʻlgan holatda tugallangan.

Jarayon

1-boshlash 🡪 Tekshirish 🡪 2-boshlash 🡪 Tekshirish

1-boshlash 🡪 Tekshirish

Ikkita soʻrov o‘rtasidagi farq uzunlikda emas, balki delegatsiya va doira o‘rtasidagi aniqlikda. AI ga xavfsiz ravishda topshirilishi mumkin bo‘lgan sohalar, masalan, kod uslubi yoki xizmat qatlamlarining batafsil tuzilishi, uning ixtiyoriga qoldirildi, faqat biznes qoidalariga to‘g‘ridan-to‘g‘ri bog‘liq bo‘lgan jihatlar, masalan, o‘chirish siyosati, vakolat doirasi va sahifa o‘lchamlari aniq ko‘rsatilgan. Ushbu farq natijalarni ko‘rib chiqishda sarflangan vaqtni sezilarli darajada kamaytirdi va bizni qayta so‘rov qilmasdan keyingi qadamga o‘tishga imkon berdi.

5. Soʻrov Dizayni Tekshirish Ro‘yxati

Ushbu tajribaga asoslanib, men so‘rovlarni tuzishdan oldin ko‘rib chiqish kerak bo‘lgan savollarni to‘pladim.

  • Ushbu so‘rovning potentsial muvaffaqiyatsizlik nuqtalari qanday?
    (Natijalar ishlab chiqarilgandan keyin aniqlanishi mumkin bo‘lgan muammolarni taxmin qilish.)

  • AI o‘z-o‘zidan qaror qila oladigan qismlar qaysilar, va men aniqlashim kerak bo‘lgan qismlar qaysilar?
    (Biznes qoidalariga oid jihatlar topshirilmaydi.)

  • Yangi funksionallik mavjud tuzilma bilan qanday mos kelishini tashkil qildimmi?
    (Autentifikatsiya va ma'lumot modellari kabi munosabatlarni aniqlashtirish.)

  • Natijalarni qanday tasdiqlashni ko‘rib chiqdimmi va buni so‘rovda kiritdimmikan?
    (Tekshirish mezonlari yetkazib beruvchi bilan birga mavjud bo‘ladi.)

6. Nihoyat

Menimcha, yaxshi soʻrov uchun kalit aniq chegaralar va delegatsiya yozuvidir. AI yakuniy natijaning chegaralarini belgilamaydi va dasturchining qaysi qarorlarni qabul qilishi kerakligini baholay olmaydi. Ushbu baholar faqat soʻrovni beruvchi dasturchining mas'uliyatidir.
Oxir-oqibat, nazoratchining tilini o'rgatish – yangi so'rovga duch kelganda har safar to'rt savolni hisobga olgan holda so'roqlar yaratish jarayonidir: natijaning chegaralari, mavjud tizimlar bilan aloqasi, delegatsiya uchun mezonlar va tasdiqlash usuli.

Jin

Site footer