AI matnni qisqartiryapti: limit belgimi yoki baytmi?
AI matnni qisqartiryapti: limit belgimi yoki baytmi?
Siz AI’dan nomni formadagi limitgacha qisqartirishni so‘raysiz. Ko‘rinishidan sig‘adi, ammo yuklash yana rad etiladi. So‘zlarni olib tashlashdan oldin qabul qiluvchi tizim nimani sanashini aniqlang: bayt va ko‘rinadigan belgi bir xil emas.
Python Unicode HOWTO satrni kod nuqtalari ketma-ketligi deb tushuntiradi; kodlash esa uni baytlarda ifodalaydi. Tekshirdik: «abc» va «абв» uchta kod nuqtasidan iborat, lekin UTF-8’da mos ravishda uch va olti bayt egallaydi. Demak, Python’dagi len(text) kodlangan ma’lumot uzunligini tekshirish o‘rnini bosmaydi.
Yordamchiga aniq shart bering: Maydon limiti — UTF-8’da [N] bayt. Matnning qisqa variantini tayyorla. Python’da len(text.encode('utf-8')) ni tekshir. Yakuniy matn, bayt soni va haqiqiy bajarish natijasini ko‘rsat. Tayyor baytlar ketma-ketligini kesma; kod bajarilmasa, ochiq ayt. Limit birligi noma’lum bo‘lsa, «juda uzun» xabaridan taxmin qilmang: avval forma yoki API hujjatidan toping.
Kod nuqtalari soni ham doim ko‘rinadigan belgilar soniga teng emas: sinovimizda alohida urg‘u belgisi bilan yozilgan e ikkita kod nuqtasidan iborat bo‘ldi. Aynan oxirgi variantni tekshiring: qo‘shilgan qo‘shtirnoq yoki imzo uzunlikni o‘zgartiradi. AI’dan faqat matnni qisqartirishni emas, limit belgilangan birlikda tekshirishni so‘rang.

