Ի՞նչ է SDK-ն։ Ծրագրային ապահովման մշակման գործիքակազմերը պարզ բացատրությամբ
SDK-ն (software development kit, ծրագրային ապահովման մշակման գործիքակազմ) պատրաստի գործիքակազմ է, որը ընկերությունը տրամադրում է մշակողներին, որպեսզի նրանք կարողանան օգտագործել իր ծառայությունը կամ հարթակը՝ առանց ամեն ինչ զրոյից կառուցելու։ Այն սովորաբար ներառում է կոդի գրադարան մի կոնկրետ ծրագրավորման լեզվի համար, փաստաթղթեր և օրինակներ, երբեմն նաև լրացուցիչ գործիքներ, օրինակ՝ թեստավորման միջոցներ։ Երբ ձեր հավելվածը «օգտագործում է Stripe SDK-ն», դա նշանակում է, որ ձեր կոդը կանչում է Stripe-ի պատրաստի ֆունկցիաները, այլ ոչ թե ձեռքով գրում յուրաքանչյուր հարցում դեպի Stripe-ի API։
Ինչու են SDK-ները կարևոր, երբ կառուցում եք AI-ով
Երբ AI կառուցիչից խնդրում եք ավելացնել վճարումներ, AI զրույց, քարտեզներ կամ էլփոստ, այն սովորաբար տեղադրում է այդ մատակարարի SDK-ն և գրում մի քանի տող, որոնք դրան են կանչում։ SDK-ն ինչ լինելը իմանալը օգնում է ձեզ․
- Հասկանալ, թե ինչ է ավելացվում ձեր նախագծին։ SDK-ն կախվածություն է՝ արտաքին կոդ, որի վրա այժմ հիմնված է ձեր հավելվածը։
- Տեսնել, թե ինչ կարգավորում է պետք։ Գրեթե յուրաքանչյուր SDK-ի համար անհրաժեշտ է API բանալի, և շատերն ունեն առանձին «սերվերային» և «բրաուզերային» տարբերակներ՝ տարբեր կանոններով, թե որ բանալիներն են անվտանգ օգտագործել։
- Խնդրել ճիշտ բանը։ «Օգտագործիր Stripe-ի պաշտոնական SDK-ն սերվերի վրա» ավելի հստակ հրահանգ է, քան «ավելացրու Stripe»։
- Կարդալ սխալները։ AI-ով կառուցված հավելվածների շատ սխալներ գալիս են այն բանից, որ SDK-ն սխալ է կարգավորված, հնացած է կամ սխալ տեղում է օգտագործված։
Ամենօրյա անալոգիա
Պատկերացրեք, որ ուզում եք պատերին դարակ կախել։
- API-ն շենքի կանոններն են՝ որ պատերը կարող են պահել պտուտակներ, ինչ բեռ են դիմանում և որտեղ են խողովակները։ Դուք կարող եք աշխատել միայն այդ կանոններով՝ ամեն ինչ ինքներդ չափելով և բուրգելով։
- SDK-ն նույն ընկերության տրամադրած հարթեցված փայտե դարակի հավաքածուն է՝ նախապես կտրված մասերով, ճիշտ պտուտակներով, այդ պատերին ճշգրիտ հարմարվող փակագծով և հրահանգների գրքույկով։
Դուք դեռ որոշում եք, թե որտեղ է դարակը և ինչ կդնեք դրա վրա։ Հավաքածուն պարզապես խնայում է փայտը կտրելուց և պտուտակների չափը գուշակելուց, և քիչ հավանական է, որ վերջանա ջրատար խողովակի մեջ անցք բացելով։
SDK ընդդեմ API-ի, գրադարանի և շրջանակի
Այս տերմինները համընկնում են, ինչը շատերին շփոթեցնում է․
| Տերմին | Ինչ է | Օրինակ |
|---|---|---|
| API | Կանոններ ծառայության հետ խոսելու համար՝ ինչ հարցումներ է ընդունում և ինչ է վերադարձնում | Stripe-ի REST API-ը api.stripe.com-ում |
| SDK | Մատակարարի գործիքակազմը՝ նրա API-ն կամ հարթակը որոշակի լեզվից օգտագործելու համար, փաստաթղթերով և գործիքներով | Stripe-ի պաշտոնական Node.js գրադարանը |
| Գրադարան | Ցանկացած վերաօգտագործելի կոդ, որը ավելացնում եք նախագծին | Ամսաթվի ձևաչափման փաթեթ |
| Շրջանակ (framework) | Ավելի մեծ կառուցվածք, որի ներսում կառուցված է ամբողջ հավելվածը | React, Next.js, Django |
SDK-ն սովորաբար պարունակում է գրադարան, և այդ գրադարանը սովորաբար կանչում է API։ Վեբ ծառայությունների համար «SDK»-ն և «client library»-ն հաճախ փոխադարձաբար օգտագործվում են։
SDK-ներից ոմանք ընդհանրապես վեբ ծառայությունների հետ կապ չունեն։ Apple-ը և Google-ը հրապարակում են SDK-ներ iOS և Android հավելվածներ կառուցելու համար, որոնք ներառում են կոմպիլյատորներ, սիմուլյատորներ և հարթակի կոդ։ Գաղափարը նույնն է․ ամեն ինչ, ինչ պետք է նրանց հարթակի համար կառուցելու, մեկ փաթեթում։
Ինչ է անում SDK-ն ձեր փոխարեն
Նույն խնդիրը՝ վճարային մատակարարի մոտ հաճախորդ ստեղծելը, կատարենք երկու եղանակով։
Առանց SDK-ի ձեր կոդը պետք է ինքը կառուցի HTTP հարցումը․ սահմանի URL-ը, ճիշտ վերնագրում ավելացնի գաղտնի բանալին, տվյալները ձևաչափի այնպես, ինչպես API-ն է սպասում, ուղարկի, ստուգի կարգավիճակի կոդը, վերլուծի պատասխանը և կրկնի փորձը, եթե ցանցը թուլանա։
SDK-ի հետ դա ավելի շատ մեկ տող է․
const customer = await stripe.customers.create({ email: "lena@example.com" });
Սա ետևում SDK-ն հոգ է տանում․
- Նույնականացում՝ ձեր բանալին ճիշտ կցում է յուրաքանչյուր հարցման
- Տվյալների ձևաչափում՝ ձեր տվյալները վերածում է այն ձևի, որ API-ն է սպասում, իսկ պատասխանը՝ օբյեկտների
- Սխալներ՝ կարգավիճակի կոդերը վերածում է հստակ սխալի տեսակների, որոնք ձեր կոդը կարող է բռնել
- Կրկնակի փորձեր՝ անվտանգ կրկնում է հարցումը, երբ այն ձախողվում է ժամանակավոր պատճառներով (շատ պաշտոնական SDK-ներ այդ անում են)
- Տիպեր՝ TypeScript-ում ասում է ձեր խմբագրիչին, թե որ դաշտերն են գոյություն ունենում, որպեսզի սխալները երևան գան՝ մինչև կոդը գործարկելը
Օրինակ աշխատանքում․ AI պատասխաններ աջակցության հավելվածում
Դուք խնդրում եք AI կառուցիչին. «Երբ հաճախորդը աջակցության հայտ է ուղարկում, ստեղծիր առաջարկվող պատասխան AI մոդելի միջոցով»։
- AI-ը մոդելի մատակարարի պաշտոնական SDK-ն տեղադրում է որպես փաթեթ ձեր նախագծում (JavaScript նախագծերում՝ npm ռեգիստրից)։
- Դուք մատակարարի API բանալին ավելացնում եք որպես նախագծի գաղտնիք։ SDK-ն այն կարդում է սերվերի միջավայրի փոփոխականից։
- AI-ը գրում է սերվերային երթուղի, որը SDK-ն կանչում է հայտի տեքստով և կարճ հրահանգով, և պահում է առաջարկվող պատասխանը տվյալների բազայում։
- Բրաուզերը երբեք չի տեսնում բանալին․ այն միայն կանչում է ձեր սեփական սերվերի երթուղին։
Եթե մատակարարը հետագայում փոխի իր API-ն, սովորաբար թողարկում է SDK-ի նոր տարբերակ։ Փաթեթի թարմացումը՝ և թողարկման նշումներում խզող փոփոխությունների ստուգումը, հաճախ բավական է։
Հիմնական տերմիններ
| Տերմին | Նշանակություն |
|---|---|
| Կախվածություն | Արտաքին կոդ, որի վրա հիմնված է ձեր նախագիծը։ SDK-ն դրանցից մեկն է։ |
| Փաթեթ / փաթեթների կառավարիչ | Ներբեռնելի կոդի փաթեթ և այն գործիքը, որը տեղադրում է այն (npm JavaScript-ի համար, pip՝ Python-ի)։ |
| Client library | Կոդ, որը հեշտացնում է կոնկրետ API-ի կանչը։ Վեբ ծառայությունների համար հաճախ հենց «SDK» նշանակությունն է։ |
| Սերվերային SDK | Աշխատում է ձեր հետին մասում և կարող է ապահով օգտագործել գաղտնի բանալիներ։ |
| Կլիենտային / բրաուզերային SDK | Աշխատում է օգտատիրոջ բրաուզերում։ Երբեք չի ստանում գաղտնի բանալիներ, միայն հանրային կամ «publishable» բանալիներ։ |
| Տարբերակ | SDK-ի յուրաքանչյուր թողարկում ունի համար (օրինակ՝ 4.2.0)։ Մեծ թռիչքները հաճախ նշանակում են խզող փոփոխություններ։ |
| Խզող փոփոխություն | Թարմացում, որը պահանջում է ձեր կոդը փոխել։ |
| Փոփոխությունների մատյան / թողարկման նշումներ | Մատակարարի ցանկը, թե ինչ է փոխվել յուրաքանչյուր տարբերակում։ |
Տարածված սխալ պատկերացումներ
- «SDK-ն և API-ն նույն բանն են»։ API-ն ծառայության ինտերֆեյսն է, իսկ SDK-ն դրա վրա ընկած հարմարավետության շերտ է։ Գրեթե ցանկացած վեբ API կարելի է կանչել առանց SDK-ի, պարզապես ավելի շատ աշխատանքով։
- «Եթե SDK-ն տեղադրված է, ինտեգրումն ավարտված է»։ Դեռ անհրաժեշտ է հաշիվ մատակարարի մոտ, ճիշտ բանալիներ և կոդ, որը վարվում է այն ժամանակ, երբ ինչ-որ բան ձախողվում է։
- «Յուրաքանչյուր փաթեթ ճիշտ անունով պաշտոնականն է»։ Հարձակվողները երբեմն հրապարակում են նման անունով կեղծ փաթեթներ։ Ստուգեք մատակարարի փաստաթղթերում փաթեթի ճշգրիտ անունը։
- «Բրաուզերային SDK-ն կարող է օգտագործել իմ գաղտնի բանալին»։ Երբեք։ Բրաուզերի կոդում ցանկացած բան տեսանելի է այցելուներին։ Գաղտնի բանալիները պետք է լինեն միայն սերվերային կոդում․ տե՛ս ինչպես պահել API բանալիները անվտանգ։
- «SDK-ները երբեք չեն պահանջում թարմացում»։ Հին տարբերակները դադարում են ստանալ շտկումներ և, ի վերջո, դադարում են աշխատել, երբ մատակարարները թոշակի են անցկացնում հին API տարբերակները։
Ինչ հարցնել ձեր AI կառուցիչից
- «Օգտագործիր մատակարարի պաշտոնական SDK-ն, ոչ երրորդ կողմի փաթաթան։ Ասա ճշգրիտ փաթեթի անունը և տարբերակը, որ տեղադրեցիր։»
- «Օգտագործիր SDK-ն միայն սերվերի վրա և բանալին կարդա միջավայրի փոփոխականից։»
- «Այս SDK-ի ո՞ր մասերն են աշխատում բրաուզերում, և ո՞ր բանալիներն են օգտագործում։»
- «Ի՞նչ է լինում, եթե SDK-ի կանչը ձախողվի կամ ժամանակը սպառվի։ Ցույց տուր օգտատիրոջը հստակ հաղորդագրություն և գրանցիր սխալը։»
- «Թվարկիր այս հավելվածի բոլոր SDK-ներն ու փաթեթները և ասա, թե յուրաքանչյուրը ինչի համար է։»
- «Ստուգիր՝ արդյոք մեր SDK-ներից որևէ մեկը հնացած է կամ ունի հայտնի անվտանգության խնդիրներ։»
SDK-ները Mythex-ում
Mythex գործակալը կարող է տեղադրել փաթեթներ ձեր նախագծի sandbox-ում՝ ձեր կույտի սովորական փաթեթների կառավարչի միջոցով, ներառյալ մատակարարների SDK-ները։ Անվանեք փաթեթը և այն գործառույթը, որի համար եք ուզում։ Տե՛ս npm փաթեթների օգտագործում։ Mythex-ը չի տրամադրում նախապես պատրաստված ինտեգրումների կատալոգ ձեր հավելվածի համար. դուք պահում եք մատակարարի բանալին որպես նախագծի գաղտնիք և խնդրում գործակալին կանչել ծառայությունը սերվերի կողմից, ինչպես նկարագրված է Integrate any API էջում։
SDK-ների տակ գտնվող շերտի մասին կարդացեք ինչ է API-ն։ Երկու տարածված SDK-ի վրա հիմնված գործառույթի համար տե՛ս ինչպես ավելացնել վճարումներ ձեր հավելվածին և ինչպես օգտագործել LLM API-ները։
Հարցեր
Ի՞նչ է SDK-ն պարզ տերմիններով։
SDK-ն (software development kit, ծրագրային ապահովման մշակման գործիքակազմ) պատրաստի կոդի, փաստաթղթերի և գործիքների փաթեթ է, որը ընկերությունը տրամադրում է, որպեսզի մշակողները հեշտությամբ օգտագործեն նրա ծառայությունը կամ հարթակը։ Յուրաքանչյուր հարցում API-ին ձեռքով գրելու փոխարեն դուք կանչում եք SDK-ի արդեն տրամադրված պարզ ֆունկցիաները։
Ո՞րն է տարբերությունը SDK-ի և API-ի միջև։
API-ն այն կանոնների հավաքածուն է, որով խոսում են ծառայության հետ՝ հարցումները, որոնք այն ընդունում է, և պատասխանները, որոնք վերադարձնում է։ SDK-ն այդ API-ի վրա կառուցված գործիքակազմ է, սովորաբար մեկ ծրագրավորման լեզվի համար, որը այդ հարցումները կատարում է ձեր փոխարեն և հոգ է տանում այնպիսի մանրամասների մասին, ինչպիսիք են նույնականացումը, կրկնակի փորձերը և տվյալների ձևաչափերը։
Արդյո՞ք SDK-ները անվճար են։
Վեբ ծառայությունների մեծ մասի SDK-ները ներբեռնելու համար անվճար են և բաց կոդով, բայց ծառայությունը, որին դրանք միանում են, կարող է գանձել օգտագործման համար։ Stripe-ի կամ OpenAI-ի SDK-ի օգտագործումը ինքնին ոչինչ չարժե. նրա կատարած վճարումները կամ AI հարցումները գանձվում են մատակարարի կողմից։
Անվտա՞նգ է SDK-ն օգտագործելը։
Մատակարարի պաշտոնական SDK-ները, ընդհանուր առմամբ, ամենաանվտանգ ձևն են նրա ծառայությունը կանչելու համար, քանի որ դրանք պահպանվում են և հոգ են տանում անվտանգության մանրամասների մասին։ Տեղադրեք դրանք պաշտոնական փաթեթների ռեգիստրից, թարմացրեք և զգույշ եղեք նման անունով ոչ պաշտոնական փաթեթներից։