Miunganisho ya API
Unganisha API zako za nje kwenye enuchat ili AI na sheria ziweze kuleta data ya wakati halisi kutoka mifumo yako.
Jinsi Inavyofanya Kazi
Miunganisho ya API inakuwezesha kuunganisha enuchat na mifumo yako ya backend — injini za uhifadhi, CRMs, usimamizi wa agizo, hesabu, na zaidi. Wakati mgeni anauliza swali, enuchat inaweza kupiga API yako kupata data halisi na kuijumuisha kwenye jibu.
Mtiririko
- Sanidi muunganisho — URL ya msingi ya API yako na uthibitisho
- Ongeza vituo — simu maalum za API na violezo vya njia na kuchora ramani ya jibu
- Unda sheria — sheria ya AI au tuli yenye kitendo cha CALL_API
- Mgeni anauliza swali — sheria huanzishwa, hupiga API yako, huchora ramani ya jibu kwenye vibadilishi vya kipindi
- AI hujibu na data halisi — vibadilishi vya kipindi vinapatikana kwa AI kwa kutoa jibu sahihi
Mfano: Upatikanaji wa Chumba cha Hoteli
Mgeni: "Je, chumba 205 kinapatikana wiki ijayo?"
Sheria ya AI inalingana: "Wakati mgeni anauliza kuhusu upatikanaji wa chumba"
Kitendo cha CALL_API: GET https://api.hotel.com/rooms/205/availability
Jibu limechorwa ramani: room_available = true, price = "€120/usiku"
AI hujibu: "Chumba 205 kinapatikana wiki ijayo kwa €120/usiku. Je, ungependa kukihifadhi?"
Kusanidi Muunganisho
Nenda kwenye Mipangilio → Miunganisho ya API kwenye dashibodi yako.
1. Unda Muunganisho
Muunganisho unawakilisha API moja ya nje. Unahitaji:
| Uwanja | Maelezo | Mfano |
|---|---|---|
| Jina | Lebo kwa muunganisho huu | Hotel Booking API |
| URL ya Msingi | URL ya mzizi wa API | https://api.hotel.com/v1 |
| Aina ya Uthibitisho | Jinsi ya kuthibitisha | Bearer Token, OAuth2, nk. |
2. Aina za Uthibitisho
Hakuna
Kwa API za umma ambazo hazihitaji uthibitisho.
Ufunguo wa API
Hutuma ufunguo tuli kama kichwa au kigezo cha hoja.
| Uwanja | Maelezo |
|---|---|
| Ufunguo | Thamani ya ufunguo wako wa API |
| Jina la Kichwa | Kichwa cha kutumia (chaguomsingi: X-Api-Key) |
Ufunguo hutumwa kama: X-Api-Key: your_key_here
Bearer Token
Hutuma tokeni tuli kwenye kichwa cha Authorization.
Hutumwa kama: Authorization: Bearer your_token_here
Basic Auth
Hutuma jina la mtumiaji na nenosiri, yamewekwa base64.
Hutumwa kama: Authorization: Basic dXNlcjpwYXNz
OAuth 2.0 (Client Credentials)
Huleta tokeni ya ufikiaji kiotomatiki na kuihifadhi hadi imeisha. Bora kwa API za kisasa kama Salesforce, Google, au seva za OAuth maalum.
| Uwanja | Maelezo |
|---|---|
| URL ya Tokeni | Kituo cha tokeni cha OAuth (mfano https://auth.example.com/oauth/token) |
| Client ID | Kitambulishi cha mteja wa OAuth |
| Client Secret | Siri ya mteja wa OAuth |
| Scope | Scopes zimetenganishwa kwa nafasi (mfano read write) |
enuchat inashughulikia mzunguko wa maisha wa tokeni kiotomatiki — huleta kwenye simu ya kwanza, hucache hadi imeisha, huburudisha inapohitajika.
Usalama: Stakabadhi zote zimesimbwa kwa kupumzika kwa kutumia libsodium. Kamwe hazifunulwi kwenye majibu ya API — thamani zilizofichwa tu zinaonyeshwa kwenye dashibodi.
Kusanidi Vituo
Kila muunganisho unaweza kuwa na vituo vingi — simu maalum za API unazotaka kufanya.
| Uwanja | Maelezo | Mfano |
|---|---|---|
| Jina | Lebo kwa kituo hiki | Check availability |
| Mbinu | Mbinu ya HTTP | GET, POST, PUT, DELETE |
| Njia | Njia ya URL (imeongezwa kwenye URL ya msingi). Tumia {'{'}variable} kwa thamani za nguvu | /rooms/{'{'}roomId}/availability |
| Vigezo vya Hoja | Vigezo vya URL kama jozi za ufunguo-thamani. Thamani zinasaidia {'{'}variable} | date={'{'}checkIn} |
| Kiolezo cha Mwili | Mwili wa JSON kwa POST/PUT. Inasaidia ubadilishaji wa {'{'}variable} | {'{'}"guest": "{'{'}name}"} |
| Kuchora Ramani ya Jibu | Chora ramani ya uwanja wa jibu la JSON kwa vibadilishi vya kipindi kwa kutumia nukta | data.available → room_available |
| Maelezo | Muktadha kwa AI (ni data gani kituo hiki hurudisha) | Hurudisha upatikanaji wa chumba na bei |
Kubadilisha Kibadilishi
Tumia {'{'}variableName} kwenye njia, vigezo vya hoja, na violezo vya mwili. Vibadilishi vinatoka kwa:
- Vibadilishi vya kipindi — vilivyowekwa na sheria za awali (kitendo cha SET_VARIABLE)
- Vigezo vya kitendo — vilivyowekwa kwa ukubwa kwenye kitendo cha sheria ya CALL_API
Kuchora Ramani ya Jibu
Chora ramani ya uwanja wa jibu la JSON kwa vibadilishi vya kipindi kwa kutumia nukta:
// API returns:
{'{'}
"data": {'{'}
"available": true,
"price": {'{'} "amount": 120, "currency": "EUR" }
}
}
// Mapping:
data.available → room_available // "true"
data.price.amount → room_price // "120"
data.price.currency → room_currency // "EUR"Vibadilishi vilivyochorwa ramani vimehifadhiwa kama vibadilishi vya kipindi kwenye mazungumzo na vinapatikana kwa AI kwa kutoa majibu.
Kutumia na Sheria
Simu za API huanzishwa na kitendo cha CALL_API kwenye sheria. Unaweza kuzichanganya na vitendo vingine.
Mapishi: Utafutaji wa Hali ya Agizo
Muunganisho: Order Management API — https://api.shop.com/v2 — Bearer Token
Kituo: GET /orders/{'{'}orderId} → huchora ramani ya data.status → order_status, data.eta → delivery_eta
Sheria (aina ya AI): "Wakati mgeni anauliza kuhusu hali ya agizo lake au utoaji"
Vitendo:
- CALL_API → kituo cha Hali ya Agizo
- REPLY_AI → AI hutumia
order_statusnadelivery_etakujibu
Matokeo: Mgeni: "Agizo langu #4521 liko wapi?" — AI: "Agizo lako #4521 linasafirishwa sasa na linapaswa kufika ifikapo Alhamisi."
Mapishi: Bei ya Wakati Halisi
Muunganisho: Pricing API — https://pricing.example.com — API Key
Kituo: GET /products/{'{'}productId}/price → huchora ramani ya price → current_price, currency → price_currency
Sheria (tuli): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i
Vitendo:
- CALL_API → kituo cha Bei
- REPLY_TEXT → "Bei ya sasa ni {'{'}current_price} {'{'}price_currency}."
Majaribio
Jaribu daima miunganisho na vituo vyako kabla ya kuvitumia kwenye sheria:
- Jaribu Muunganisho — huthibitisha uthibitisho hufanya kazi (kwa OAuth2: huleta tokeni)
- Jaribu Kituo — hufanya simu halisi ya API na vibadilishi vya sampuli na huonyesha jibu
- Jaribu Sheria (dry-run) — kwenye ukurasa wa Sheria, jaribu kama sheria ingelingana na ni vitendo gani vingetekelezwa
Kidokezo: Anza kwa kujaribu muunganisho, kisha kila kituo, kisha sheria kamili. Kwa njia hii unaweza kutenga masuala katika kila ngazi.
Usalama
- Usimbuaji kwa kupumzika — stakabadhi zote zimesimbwa kwa kutumia libsodium kabla ya kuhifadhi
- Kamwe hazifunulwi — majibu ya API hayajumuishi kamwe stakabadhi zilizosimbuliwa, thamani zilizofichwa tu
- Ulinzi wa SSRF — enuchat huzuia simu kwa localhost, IP za kibinafsi, na majina ya mwenyeji ya ndani
- Muda wa kukatika — simu za API za nje zina muda wa kukatika wa sekunde 5 kuzuia kunyongeka
- Caching ya tokeni ya OAuth2 — tokeni za ufikiaji zimehifadhiwa kwa usalama na kuburudishwa kiotomatiki
- Utengaji wa mpangaji — miunganisho imepangwa kwa mpangaji wako, haifikiki kwa wengine