Ruka hadi maudhui makuu
Didit Yakusanya $7.5M Kujenga Miundombinu ya Utambulisho na Udanganyifu
Didit
Rudi kwenye blogu
Blogu · 7 Machi 2026

Ongeza Utendaji wa API za Didit kwa Python Asyncio (SW)

Gundua jinsi Asyncio ya Python inavyoweza kuongeza kwa kiasi kikubwa utendaji na ufanisi wa programu zako zinazotumia API za uthibitishaji wa utambulisho za Didit.

Na DiditImesasishwa
boost-didit-api-throughput-with-python-asyncio.png

Boresha Utumiaji wa API: Python Asyncio huwezesha shughuli za I/O zisizozuiliwa, ikiboresha kwa kiasi kikubwa ufanisi wa programu zinazofanya simu nyingi za API kwa huduma kama Didit kwa uthibitishaji wa utambulisho.

Dhibiti Vikwazo vya Kiwango: Tekeleza mikakati tata ya kudhibiti kiwango kwa kutumia Asyncio ili kubaki ndani ya mipaka ya API ya Didit, kuzuia makosa ya 429 na kuhakikisha upatikanaji wa huduma endelevu kwa matukio ya utendaji wa juu.

Jenga Suluhisho Zinazoweza Kupanuka: Tumia mfumo wa uendeshaji sambamba wa Asyncio kubuni mifumo imara na inayoweza kupanuka yenye uwezo wa kushughulikia maelfu ya maombi ya uthibitishaji wa utambulisho kwa sekunde bila kugharimu gharama kubwa za miundombinu.

Faida ya Didit ya API-Kwanza: Mbinu ya Didit inayomlenga msanidi, ikiwa na API safi na mazingira ya majaribio ya papo hapo, inafaa kabisa kwa kuunganishwa na mifumo isiyo na ulandanishi, kuruhusu mtiririko wa kazi wa uthibitishaji wa utambulisho usio na mshono, wenye utendaji wa juu kuanzia uthibitishaji wa kitambulisho hadi ugunduzi wa uhai.

Haja ya Kasi: Kwa Nini Asyncio kwa Utumiaji wa API?

Katika ulimwengu wa kidijitali wa leo unaoenda kwa kasi, programu mara nyingi huhitaji kufanya simu nyingi za API za nje ili kutimiza majukumu yake. Wakati simu hizi zinazuia, ikimaanisha programu inasubiri kila jibu kabla ya kuendelea na linalofuata, vikwazo vya utendaji hujitokeza haraka. Hii ni kweli hasa kwa huduma za uthibitishaji wa utambulisho, ambapo mtiririko mmoja wa kuingia kwa mtumiaji unaweza kuhusisha mwingiliano mwingi wa API: Uthibitishaji wa Kitambulisho, ukaguzi wa Uhai Usio na Kufanya & Wa Kufanya, Mechi ya Uso ya 1:1, na Uchunguzi wa AML. Kwa biashara zilizo na idadi kubwa ya watumiaji, shughuli hizi za mfuatano zinaweza kusababisha ucheleweshaji mkubwa na uzoefu duni wa mtumiaji.

Maktaba ya Python ya asyncio inatoa mfumo imara wa kuandika msimbo sambamba kwa kutumia sintaksi ya async/await. Tofauti na nyuzi nyingi za kitamaduni, ambazo zinaweza kuanzisha matatizo kama Global Interpreter Lock (GIL) kwa kazi zinazofungwa na CPU, asyncio imeundwa kwa shughuli zinazofungwa na I/O. Simu za API kiasili zimefungwa na I/O (kusubiri majibu ya mtandao), na kufanya asyncio kuwa mgombea bora wa kuongeza kasi ya programu yako ya kutumia API za nje kwa ufanisi. Kwa kuruhusu programu yako kufanya kazi zingine huku ikisubiri majibu ya API, asyncio inaweza kuongeza kwa kiasi kikubwa utendaji bila kuhitaji kuandika upya kabisa usanifu wa programu yako kuwa mfumo uliosambazwa.

Kuelewa Mazingira ya API ya Didit na Vikwazo vya Kiwango

Didit, kama jukwaa la utambulisho la AI-native, hutoa seti kamili ya API kwa uthibitishaji wa utambulisho, ikiwa ni pamoja na Uthibitishaji wa Kitambulisho (OCR, MRZ, misimbo pau), Uhai Usio na Kufanya & Wa Kufanya, Mechi ya Uso ya 1:1, Uchunguzi & Ufuatiliaji wa AML, na zaidi. API yetu imeundwa kwa utendaji wa juu na kuegemea, lakini kama API zote imara, inatumia vikwazo vya kiwango ili kuhakikisha utulivu na matumizi ya haki kwa wateja wote. Kuelewa vikwazo hivi ni muhimu kwa mtumiaji yeyote mwenye utendaji wa juu.

Didit inatekeleza vikwazo vya kiwango vya kimataifa na maalum vya sehemu ya mwisho. Kwa mfano, vikwazo vya kimataifa kwa kawaida ni maombi 300 kwa dakika kwa kila programu kwa sehemu zote za mwisho za GET na Andika/Futa. Vikwazo vikali zaidi vinatumika kwa shughuli za athari kubwa, kama vile RPM 600 kwa POST /v2/session/ (kwa kuunda mtiririko wa kazi wa uthibitishaji) na RPM 100 kwa GET /v2/session/<id>/decision/ (kupata maamuzi ya kikao). Wakati vikwazo hivi vinapozidi, API inarudisha msimbo wa hali ya 429 Too Many Requests, pamoja na vichwa vya habari muhimu kama X-RateLimit-Limit, X-RateLimit-Remaining, na Retry-After (sekunde za epoch) ili kuongoza mkakati wako wa kurudisha nyuma.

Kutekeleza asyncio kunakuruhusu kudhibiti vikwazo hivi vya kiwango kwa ufanisi zaidi. Badala ya uzi mmoja unaozuilia unaofikia kikomo, programu isiyo na ulandanishi inaweza kuweka foleni maombi kwa akili, kutekeleza kurudisha nyuma kwa kipeo, na kujaribu tena simu zilizoshindwa bila kuzuia mtiririko mzima wa programu. Hii husababisha utumiaji wa API laini na usumbufu mdogo, kuhakikisha michakato yako ya uthibitishaji wa utambulisho inabaki bila kukatizwa hata wakati wa mizigo mikubwa.

Kutekeleza Asyncio kwa Simu Sambamba za API za Didit

Kuunganisha asyncio na API za Didit kunahusisha kutumia mteja wa HTTP asynkronia kama aiohttp. Hapa kuna muhtasari wa kimaoni wa jinsi unavyoweza kupanga simu zako za API asynkronia:


import asyncio
import aiohttp
import time

API_KEY = "YOUR_DIDIT_API_KEY"
BASE_URL = "https://verification.didit.me/v3/"

async def call_didit_api(session, endpoint, payload=None, method='POST'):
    headers = {
        'accept': 'application/json',
        'x-api-key': API_KEY
    }
    if method == 'POST':
        headers['content-type'] = 'application/json'

    url = f"{BASE_URL}{endpoint}"
    
    async with session.request(method, url, json=payload, headers=headers) as response:
        if response.status == 429:
            retry_after = int(response.headers.get('Retry-After', '5'))
            print(f"Rate limit hit. Retrying after {retry_after} seconds...")
            await asyncio.sleep(retry_after) # Implement simple backoff
            return await call_didit_api(session, endpoint, payload, method) # Retry
        response.raise_for_status()
        return await response.json()

async def create_verification_session(session, workflow_id, user_id):
    endpoint = "session/"
    payload = {
        "workflow_id": workflow_id,
        "vendor_data": user_id,
        "callback": "https://your-app.com/didit-callback"
    }
    return await call_didit_api(session, endpoint, payload, method='POST')

async def get_session_decision(session, session_id):
    endpoint = f"session/{session_id}/decision/"
    return await call_didit_api(session, endpoint, method='GET')

async def main():
    async with aiohttp.ClientSession() as session:
        tasks = []
        # Example: Create 10 verification sessions concurrently
        for i in range(10):
            tasks.append(create_verification_session(session, "YOUR_WORKFLOW_ID", f"user_{i}"))
        
        results = await asyncio.gather(*tasks)
        for res in results:
            print(f"Created session: {res.get('session_id')}")

        # Example: Retrieve decisions for some sessions concurrently
        decision_tasks = []
        for res in results[:5]: # Take first 5 for decision retrieval
            session_id = res.get('session_id')
            if session_id:
                decision_tasks.append(get_session_decision(session, session_id))
        
        decision_results = await asyncio.gather(*decision_tasks)
        for decision in decision_results:
            print(f"Session decision: {decision}")

if __name__ == "__main__":
    asyncio.run(main())

Mfano huu unaonyesha jinsi ya kuunda vikao vingi vya uthibitishaji na kupata maamuzi yao kwa wakati mmoja. Kazi ya call_didit_api inajumuisha utaratibu wa msingi wa kujaribu tena kwa 429 Too Many Requests, kwa kutumia kichwa cha habari cha Retry-After kutekeleza kurudisha nyuma kwa kipeo. Kwa mifumo ya uzalishaji, kurudisha nyuma kwa kisasa zaidi na muundo wa kivunja mzunguko kungependekezwa, lakini hii inaonyesha kanuni kuu.

Kwa kutumia asyncio.gather, unaweza kuanzisha maombi mengi ya API kwa wakati mmoja, kuruhusu programu yako kushughulikia kazi zingine au kusubiri majibu kwa wakati mmoja, na kusababisha faida kubwa za utendaji ikilinganishwa na simu za kuzuia za mfuatano.

Mikakati ya Uthibitishaji wa Utambulisho wa Kiasi Kikubwa

Kufikia utendaji wa juu na API za Didit kwa kutumia Asyncio kunahitaji zaidi ya kufanya maombi kwa wakati mmoja. Fikiria mikakati hii:

  • Kupanga kwa Akili: Ingawa uthibitishaji wa msingi wa Didit mara nyingi huanzishwa na mtumiaji, kwa shughuli kama Ufuatiliaji wa AML au utafutaji fulani wa data, unaweza kubuni mtiririko wa kazi unaoruhusu usindikaji wa kundi inapohitajika, kupunguza idadi kamili ya simu za API.
  • Kudhibiti Kiwango Kinachobadilika: Zaidi ya kurudisha nyuma kwa kipeo rahisi, tekeleza kidhibiti cha kiwango kinachobadilika kinachofuatilia X-RateLimit-Remaining na kurekebisha kiwango cha uendeshaji sambamba cha kazi zako za asyncio kwa nguvu. Ikiwa simu zilizobaki ni chache, punguza kasi; ikiwa ni nyingi, ongeza kasi.
  • Masasisho Yanayoendeshwa na Webhook: Kwa matokeo ya kikao (k.m., baada ya Uthibitishaji wa Kitambulisho au ukaguzi wa Uhai), tegemea webhooks za Didit badala ya kupiga kura kupita kiasi. Hii inapunguza idadi ya maombi ya GET kwa /v2/session/<id>/decision/, ambayo ina kikomo kali zaidi cha kiwango cha RPM 100. Usanifu wa moduli wa Didit unamaanisha unaweza kusanidi arifa za webhook kwa mabadiliko mbalimbali ya hali, ukisukuma masasisho ya wakati halisi kwenye mfumo wako bila kuuliza mara kwa mara.
  • Utunzaji wa Makosa na Uchunguzi: Tekeleza utunzaji imara wa makosa kwa masuala ya mtandao, makosa ya API (zaidi ya 429), na muda wa kuisha. Ingiza au toa arifa wakati majaribio ya kurudisha nyuma yanasababishwa au vikwazo vya kiwango vinafikiwa mara kwa mara. Hii inatoa maarifa muhimu kwa kuboresha mkakati wako wa utumiaji wa API.
  • Usimamizi wa Rasilimali: Dhibiti mifano yako ya aiohttp.ClientSession kwa uangalifu. Kuunda kikao kipya kwa kila ombi sio ufanisi kutokana na gharama ya uunganisho. Kutumia tena kikao kimoja kwa maombi mengi kwa ujumla ni mazoezi bora.

Jinsi Didit Inavyosaidia

Didit imejengwa kutoka mwanzo kwa wasanidi na programu zenye utendaji wa juu, na kuifanya kuwa mshirika bora kwa utekelezaji wa Python Asyncio. Usanifu wetu wa moduli unakuruhusu kuunganisha na kutumia ukaguzi wa utambulisho kama Uthibitishaji wa Kitambulisho, Uhai Usio na Kufanya & Wa Kufanya, Mechi ya Uso ya 1:1, na Uchunguzi wa AML inapohitajika, kila moja ikipatikana kupitia API safi, zilizoandikwa vizuri. Usanifu huu wa moduli unamaanisha unaweza kupanga mtiririko wa kazi tata wa uthibitishaji uliopangwa kulingana na mahitaji yako maalum, na kisha kuboresha matumizi yao kwa kutumia mbinu zisizo na ulandanishi.

Tunaamini katika kufanya uthibitishaji wa utambulisho kupatikana, ndiyo sababu tunatoa Free Core KYC. Hii inakuruhusu kujaribu na kujenga miunganisho yako isiyo na ulandanishi bila gharama za awali. Mbinu yetu ya AI-native inahakikisha kuwa huduma zetu za uthibitishaji ni za haraka na sahihi, zikikamilisha kikamilifu faida za kasi za Asyncio. Bila ada za kusanidi na mfumo wa kulipa kwa kila ukaguzi uliofanikiwa, Didit inatoa suluhisho la gharama nafuu na linaloweza kupanuka kwa biashara zinazotaka kutekeleza uthibitishaji wa utambulisho wa utendaji wa juu. Mazingira yetu ya majaribio ya papo hapo na nyaraka kamili za API huwezesha zaidi wasanidi kuunganisha haraka na kuboresha matumizi yao ya huduma za Didit, iwe unajenga mfumo mpya au unaboresha uliopo.

Uko Tayari Kuanza?

Uko tayari kuona Didit ikifanya kazi? Pata onyesho la bure leo.

Anza kuthibitisha vitambulisho bila malipo na kiwango cha bure cha Didit.

Miundombinu ya utambulisho na udanganyifu.

API moja kwa KYC, KYB, Ufuatiliaji wa Miamala, na Uchunguzi wa Wallet. Unganisha ndani ya dakika 5.

Uliza AI ifupishe ukurasa huu
Ongeza Utendaji wa API za Didit kwa Python Asyncio.