Python SDK
pip install davirixPython 3.10+ · sof-Python (py3-none-any) · Linux · macOS · Windows.
SDK nima uchun kerak
heading.anchorLabelSDK shunchaki HTTP o’ram emas. U to’rt qoidani kod bilan majburlaydi — xom HTTP’da bu qoidalar qo’lda yoziladi va unutiladi:
| Qoida | SDK’da qanday |
|---|---|
completed ≠ «bajarildi» |
.status va .verified — ayrim maydonlar |
UNKNOWN istisno emas |
Holat sifatida qaytadi, raise qilinmaydi |
idempotency_key majburiy |
Berilmasa tanadan avtomatik hosil qilinadi |
Retry faqat retryable da |
APIError.retryable — qaror sizniki, lekin ma’lumot aniq |
Klient
heading.anchorLabelimport osfrom davirix import Davirix
dx = Davirix( api_key=os.environ["DAVIRIX_KEY"], tenant_id="bank-uz", # ixtiyoriy: har chaqiruvda ham berish mumkin base_url=None, # standart: https://api.davirix.com timeout=30.0,)Kontekst menejeri sifatida ham ishlaydi:
with Davirix(api_key=...) as dx: n = dx.run(...)Asosiy metodlar
heading.anchorLabelrun() — yuborish va kutish
heading.anchorLabeln = dx.run( agent_id="card-support", input={"text": "Kartani bloklang, oxirgi 4 raqam 7731"}, tenant_id="bank-uz", idempotency_key="buyurtma-2026-08-12-0001",)Ijro yakunlanguncha kutadi va natijani qaytaradi.
start() — yuborish, kutmaslik
heading.anchorLabeln = dx.start(agent_id=..., input=...)n.execution_id # "exe_0123..."Uzoq ijro uchun: yuborasiz, keyin wait() yoki get() bilan olasiz.
wait() · get() · cancel()
heading.anchorLabeln = dx.wait(execution_id) # yakunlanishini kutadin = dx.get(execution_id) # joriy holatni oladin = dx.cancel(execution_id) # bekor qiladiNatijani o’qish
heading.anchorLabeln.status # "completed" | "failed" | "cancelled" | ...n.verified # ⚡ bool — AMAL manbadan tasdiqlandimin.unknown # bool — natija noma'lummin.operations # amallar ro'yxati
for op in n.operations: op.capability_id # "sales.order.create" op.status # "VERIFIED" | "ACKNOWLEDGED" | "UNKNOWN" | ... op.resource_ref # manbadagi resurs havolasiIdempotentlik
heading.anchorLabelKalit berilmasa SDK uni so’rov tanasidan hosil qiladi:
from davirix import derive_idempotency_key
key = derive_idempotency_key({"agent_id": "...", "input": {...}})⚠ Avtomatik kalit ayni tana uchun ayni kalitni beradi. Agar sizning niyatingiz «har chaqiruv — yangi amal» bo’lsa, o’z kalitingizni bering. Batafsil: idempotentlik.
Xatolar
heading.anchorLabelfrom davirix import APIError
try: n = dx.run(...)except APIError as e: e.code # "rate_limited", "unauthorized", ... e.retryable # bool e.status_code # HTTP kodi e.request_id # yordam so'raganda SHU kerak⛔ Retry faqat retryable: True da. Boshqa holatda qayta urinish
muammoni tuzatmaydi va dublikat xavfi tug’diradi.
Yordam so’raganda
heading.anchorLabelXato haqida xabar berganda execution_id va request_id ni
yuboring — ular bilan butun zanjir tiklanadi.
⛔ Suhbat matnini yubormang: u bizga kerak emas va nol-saqlash rejimida saqlanmaydi ham.