API: tuzilgan so‘rov va javob
Sun’iy intellekt xizmatlari odatda API orqali ishlaydi: dastur xizmatga tuzilgan so‘rov yuboradi, xizmat tuzilgan javob qaytaradi. So‘rov va javob ko‘pincha JSON formatida bo‘ladi. Bu darsda haqiqiy xizmatga ulanmaymiz: faqat so‘rov va javob tuzilishini mashq qilamiz.
So‘rov odatda model nomi va xabarlar ro‘yxatidan iborat; har xabarda rol (tizim, foydalanuvchi) va matn bo‘ladi. Javobda esa natija ichma-ich joylashadi, shuning uchun uni qatlam-qatlam olasiz. Maydonlarning nomlari xizmatga qarab farq qiladi: ularni xizmatning rasmiy hujjatidan o‘qing.
import json
javob_matn = """{"holat": "ok", "natija": {"matn": "Salom", "tokenlar": 3}}"""
javob = json.loads(javob_matn)
print(javob["holat"])
print(javob["natija"]["matn"])Natijaok
SalomMuhim qoida: javobni ishlatishdan oldin holatini (muvaffaqiyat yoki xato) tekshiring. Maxfiy kalitlarni (API kaliti) kodga yozib, ommaga ochmang va suhbat vositasiga yubormang.
Esda tuting
- So‘rov va javob odatda JSON.
- Javobdan kerakli qiymatni qatlam-qatlam oling.
- Avval holatni tekshiring; API kalitini sir saqlang.
Mashq
Javob ichidagi matnni olishdan oldin nimani tekshirish ma’qul?
Javob va izoh
- Javob holatini: muvaffaqiyatli yoki xato ekanini. (to‘g‘ri javob)xato javobda kutilgan maydon bo‘lmasligi mumkin.
- Hech narsani: javob doim to‘g‘ri.tarmoq va xizmat xato qaytarishi mumkin.
- Faqat javob uzunligini.uzunlik muvaffaqiyatni bildirmaydi.
Kod mashqlari
payloadlug‘atini yarating:modelkalitimini,messageskaliti bitta xabar ro‘yxati; xabardarol=uservamatn=savolqiymati.
Maslahat:messagesro‘yxat ichida lug‘at:[{"rol": "user", "matn": savol}].ddan foydalaning:holatokbo‘lsa, avval matnni, keyin tokenlar sonini chiqaring; aks holdaxatodeb chiqaring.
Maslahat:d["holat"] == "ok"ni tekshiring; qiymatlard["natija"]ichida.
Mashqni ilovada bajaring.
Amaliy vazifa
Xayoliy savol-javob xizmati uchun so‘rovni JSON ko‘rinishida yozing (model nomi, bitta xabar). Haqiqiy kalit yoki ma’lumot yozmang.
- So‘rov JSON’ini yozdim
- Unda rol va matn bor
Lug‘at
Interaktiv rejim: qidiruv, progress va Python mashqlari.
