የAPI ግንኙነቶች
AI እና ህጎች ከስርዓቶችዎ የቀጥታ ውሂብ መውሰድ እንዲችሉ ውጫዊ APIዎችዎን ወደ enuchat ያገናኙ።
እንዴት እንደሚሰራ
የAPI ግንኙነቶች enuchatን ከራስዎ የኋላ ስርዓቶች ጋር እንዲያዋህዱ ያስችሉዎታል — የቦታ ማስያዝ ሞተሮች፣ CRMs፣ የትዕዛዝ አስተዳደር፣ ኢንቬንቶሪ እና ሌሎች። ጎብኚ ጥያቄ ሲጠይቅ፣ enuchat APIዎን ጠርቶ እውነተኛ ውሂብ አግኝቶ በምላሹ ሊያካትት ይችላል።
ፍሰቱ
- ግንኙነት ያዋቅሩ — የAPIዎ Base URL እና ማረጋገጫ
- Endpointዎችን ያክሉ — ከመንገድ አብነቶች እና ምላሽ ካርታ ጋር የተወሰኑ የAPI ጥሪዎች
- ህግ ይፍጠሩ — ከCALL_API እርምጃ ጋር AI ወይም የማይለወጥ ህግ
- ጎብኚ ጥያቄ ይጠይቃል — ህጉ ይነቃል፣ APIዎን ይጠራል፣ ምላሹን ለክፍለ-ጊዜ ተለዋዋጮች ካርታ ያደርጋል
- AI በእውነተኛ ውሂብ ይመልሳል — የክፍለ-ጊዜ ተለዋዋጮች ለAI ትክክለኛ መልስ ለማመንጨት ይገኛሉ
ምሳሌ: የሆቴል ክፍል ተገኝነት
ጎብኚ: "ክፍል 205 በሚቀጥለው ሳምንት ይገኛል?"
AI ህግ ይዛመዳል: "ጎብኚ ስለ ክፍል ተገኝነት ሲጠይቅ"
CALL_API እርምጃ: GET https://api.hotel.com/rooms/205/availability
ምላሽ ካርታ: room_available = true፣ price = "€120/ምሽት"
AI ይመልሳል: "ክፍል 205 በሚቀጥለው ሳምንት በ €120/ምሽት ይገኛል። ለማስያዝ ይፈልጋሉ?"
ግንኙነት ማቀናበር
በዳሽቦርድዎ ውስጥ ወደ ቅንብሮች → API ግንኙነቶች ይሂዱ።
1. ግንኙነት ይፍጠሩ
ግንኙነት አንድ ውጫዊ APIን ይወክላል። ያስፈልግዎታል:
| መስክ | መግለጫ | ምሳሌ |
|---|---|---|
| ስም | ለዚህ ግንኙነት መለያ | የሆቴል ቦታ ማስያዝ API |
| Base URL | የAPIው ስር URL | https://api.hotel.com/v1 |
| የማረጋገጫ አይነት | እንዴት ማረጋገጥ እንደሚቻል | Bearer Token፣ OAuth2፣ ወዘተ። |
2. የማረጋገጫ አይነቶች
ምንም
ማረጋገጫ ለማይፈልጉ የህዝብ APIዎች።
API ቁልፍ
የማይለወጥ ቁልፍ እንደ ራስጌ ወይም query parameter ይልካል።
| መስክ | መግለጫ |
|---|---|
| ቁልፍ | የAPI ቁልፍ እሴትዎ |
| የራስጌ ስም | የሚጠቀም ራስጌ (ነባሪ: X-Api-Key) |
ቁልፉ እንደ: X-Api-Key: your_key_here ይላካል
Bearer Token
የማይለወጥ ቶከን በAuthorization ራስጌ ይልካል።
እንደ ይላካል: Authorization: Bearer your_token_here
Basic Auth
የተጠቃሚ ስም እና የይለፍ ቃል ይልካል፣ base64-የተቀየረ።
እንደ ይላካል: Authorization: Basic dXNlcjpwYXNz
OAuth 2.0 (Client Credentials)
የመዳረሻ ቶከን በራስ-ሰር ይወስዳል እና ጊዜ እስኪያልፍ ይከማቻል። እንደ Salesforce፣ Google ወይም ብጁ የOAuth አገልጋዮች ላሉ ዘመናዊ APIዎች ምርጥ።
| መስክ | መግለጫ |
|---|---|
| Token URL | የOAuth token endpoint (ለምሳሌ https://auth.example.com/oauth/token) |
| Client ID | የOAuth client ID |
| Client Secret | የOAuth client secret |
| Scope | በቦታ የተለያዩ ስፋቶች (ለምሳሌ read write) |
enuchat የቶከን የሕይወት ዑደትን በራስ-ሰር ይይዛል — በመጀመሪያ ጥሪ ያገኛል፣ ጊዜ እስኪያልፍ ይከማቻል፣ ሲያስፈልግ ያድሳል።
ደህንነት: ሁሉም ምስክርነቶች በlibsodium በእረፍት ላይ ተመስጥረዋል። በAPI ምላሾች ውስጥ በፍጹም አይጋለጡም — በዳሽቦርዱ ውስጥ ብቻ የተመሰጠሩ እሴቶች ይታያሉ።
Endpointዎችን ማዋቀር
እያንዳንዱ ግንኙነት ብዙ endpointዎች ሊኖሩት ይችላሉ — ማድረግ የሚፈልጓቸው የተወሰኑ የAPI ጥሪዎች።
| መስክ | መግለጫ | ምሳሌ |
|---|---|---|
| ስም | ለዚህ endpoint መለያ | ተገኝነት ያረጋግጡ |
| ዘዴ | HTTP ዘዴ | GET፣ POST፣ PUT፣ DELETE |
| መንገድ | የURL መንገድ (ከbase URL ጋር ይታከላል)። ለተለዋዋጭ እሴቶች {'{'}variable} ይጠቀሙ | /rooms/{'{'}roomId}/availability |
| Query Params | URL ግቤቶች እንደ ቁልፍ-እሴት ጥንዶች። እሴቶች {'{'}variable} ይደግፋሉ | date={'{'}checkIn} |
| Body Template | ለPOST/PUT JSON አካል። {'{'}variable} interpolation ይደግፋል | {'{'}"guest": "{'{'}name}"} |
| Response Mapping | dot notationን በመጠቀም JSON ምላሽ መስኮችን ለክፍለ-ጊዜ ተለዋዋጮች ካርታ ያድርጉ | data.available → room_available |
| መግለጫ | ለAI አውድ (ይህ endpoint ምን ውሂብ እንደሚመልስ) | የክፍል ተገኝነት እና ዋጋ ይመልሳል |
የተለዋዋጭ Interpolation
በመንገዶች፣ query params እና body templates ውስጥ {'{'}variableName} ይጠቀሙ። ተለዋዋጮች የሚመጡት ከ:
- የክፍለ-ጊዜ ተለዋዋጮች — በቀደሙ ህጎች የተዘጋጁ (SET_VARIABLE እርምጃ)
- የእርምጃ ግቤቶች — በCALL_API ህግ እርምጃ ውስጥ ሃርድኮድ የተደረጉ
Response Mapping
dot notationን በመጠቀም JSON ምላሽ መስኮችን ለክፍለ-ጊዜ ተለዋዋጮች ካርታ ያድርጉ:
// 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"የካርታ ተለዋዋጮች በውይይት ላይ እንደ ክፍለ-ጊዜ ተለዋዋጮች ይከማቻሉ እና ለAI ምላሾችን ለማመንጨት ይገኛሉ።
ከህጎች ጋር መጠቀም
የAPI ጥሪዎች በህጎች ውስጥ በCALL_API እርምጃ ይነቃሉ። ከሌሎች እርምጃዎች ጋር ሊያጣምሯቸው ይችላሉ።
የምግብ አሰራር: የትዕዛዝ ሁኔታ ፍለጋ
ግንኙነት: የትዕዛዝ አስተዳደር API — https://api.shop.com/v2 — Bearer Token
Endpoint: GET /orders/{'{'}orderId} → ካርታ data.status → order_status፣ data.eta → delivery_eta
ህግ (AI አይነት): "ጎብኚ ስለ ትዕዛዙ ሁኔታ ወይም ማድረሻ ሲጠይቅ"
እርምጃዎች:
- CALL_API → የትዕዛዝ ሁኔታ endpoint
- REPLY_AI → AI
order_statusእናdelivery_etaለመመለስ ይጠቀማል
ውጤት: ጎብኚ: "ትዕዛዜ #4521 የት አለ?" — AI: "ትዕዛዝዎ #4521 በአሁኑ ጊዜ እየተላከ ነው እና በሐሙስ ሊደርስ ይገባል።"
የምግብ አሰራር: የቀጥታ ዋጋ
ግንኙነት: የዋጋ API — https://pricing.example.com — API ቁልፍ
Endpoint: GET /products/{'{'}productId}/price → ካርታ price → current_price፣ currency → price_currency
ህግ (የማይለወጥ): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i
እርምጃዎች:
- CALL_API → የዋጋ endpoint
- REPLY_TEXT → "የአሁኑ ዋጋ {'{'}current_price} {'{'}price_currency} ነው።"
ሙከራ
በህጎች ውስጥ ከመጠቀምዎ በፊት ሁልጊዜ ግንኙነቶችዎን እና endpointዎችን ይሞክሩ:
- ግንኙነት ሞክር — ማረጋገጫ መስራቱን ያረጋግጣል (ለOAuth2: ቶከን ያገኛል)
- Endpoint ሞክር — በናሙና ተለዋዋጮች እውነተኛ የAPI ጥሪ ያደርጋል እና ምላሹን ያሳያል
- ህግ ሞክር (dry-run) — በህጎች ገጽ ላይ፣ ህግ መዛመዱን እና ምን እርምጃዎች እንደሚሰሩ ይሞክሩ
ምክር: ግንኙነቱን በመሞከር ይጀምሩ፣ ከዚያ እያንዳንዱን endpoint፣ ከዚያ ሙሉ ህጉን። በዚህ መንገድ በእያንዳንዱ ደረጃ ላይ ችግሮችን መለየት ይችላሉ።
ደህንነት
- በእረፍት ላይ ምስጢራዊ — ሁሉም ምስክርነቶች ከማከማቻ በፊት libsodium በመጠቀም ይመስጠራሉ
- በፍጹም አይጋለጥም — የAPI ምላሾች በፍጹም የተመሰጠሩ ምስክርነቶችን አያካትቱም፣ የተሰወሩ እሴቶች ብቻ
- SSRF ጥበቃ — enuchat ወደ localhost፣ የግል IPs እና የውስጥ host ስሞች ጥሪዎችን ይከለክላል
- ጊዜ መሙላት — ውጫዊ የAPI ጥሪዎች ማንጠልጠልን ለመከላከል የ5-ሰከንድ ጊዜ መሙላት አላቸው
- OAuth2 token caching — የመዳረሻ ቶከኖች በደህና ይከማቻሉ እና በራስ-ሰር ይታደሳሉ
- የtenant ማግለል — ግንኙነቶች ለtenantዎ የተገደቡ ናቸው፣ ለሌሎች የማይደረሱ