API холболтууд
Өөрийн гадаад API-уудыг enuchat-д холбож, AI болон дүрмүүд системээсээ бодит цагийн өгөгдлийг татаж авах боломжтой болгоорой.
Хэрхэн ажилладаг вэ
API холболтууд нь enuchat-ыг өөрийн backend системтэй — захиалгын хөдөлгүүр, CRM, захиалгын удирдлага, агуулах болон бусадтай интеграцчлах боломжийг танд олгоно. Зочин асуулт асуухад enuchat нь API-г дуудаж, бодит өгөгдөл авч, хариуд нь оруулж болно.
Урсгал
- Холболт тохируулах — API-ийн үндсэн 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/шөнөөр боломжтой байна. Та захиалмаар байна уу?"
Холболт тохируулах
Самбартаа Settings → API Connections руу ор.
1. Холболт үүсгэх
Холболт нь нэг гадаад API-г төлөөлдөг. Танд хэрэгтэй зүйл:
| Талбар | Тайлбар | Жишээ |
|---|---|---|
| Нэр | Энэ холболтын шошго | Зочид буудлын захиалгын API |
| Үндсэн URL | API-ийн үндсэн URL | https://api.hotel.com/v1 |
| Баталгаажуулалтын төрөл | Хэрхэн баталгаажуулах | Bearer Token, OAuth2 гэх мэт |
2. Баталгаажуулалтын төрлүүд
Байхгүй
Баталгаажуулалт шаарддаггүй нийтийн API-д зориулсан.
API түлхүүр
Статик түлхүүрийг header эсвэл query параметр болгон илгээнэ.
| Талбар | Тайлбар |
|---|---|
| Түлхүүр | Таны API түлхүүрийн утга |
| Header-ын нэр | Ашиглах header (үндсэн: X-Api-Key) |
Түлхүүр дараах байдлаар илгээгдэнэ: X-Api-Key: your_key_here
Bearer Token
Authorization header-т статик токен илгээнэ.
Ингэж илгээгдэнэ: Authorization: Bearer your_token_here
Basic Auth
Хэрэглэгчийн нэр, нууц үгийг base64 кодчилолтоор илгээнэ.
Ингэж илгээгдэнэ: Authorization: Basic dXNlcjpwYXNz
OAuth 2.0 (Client Credentials)
Хандалтын токеныг автоматаар татаж, хугацаа дуустал кэшэнд хадгална. Salesforce, Google зэрэг орчин үеийн API эсвэл тусгай OAuth серверт тохиромжтой.
| Талбар | Тайлбар |
|---|---|
| Token URL | OAuth токений endpoint (жишээ нь https://auth.example.com/oauth/token) |
| Client ID | Таны OAuth client ID |
| Client Secret | Таны OAuth client secret |
| Scope | Зайгаар тусгаарласан scope (жишээ нь read write) |
enuchat нь токений амьдралын циклийг автоматаар зохицуулна — эхний дуудлага дээр татаж, хугацаа дуустал кэшэнд хадгалж, хэрэгтэй үед сэргээдэг.
Аюулгүй байдал: Бүх эрх нь libsodium ашиглан амрах үед шифрлэгддэг. Тэдгээр нь API хариуд ил гардаггүй — зөвхөн далдалсан утгууд самбарт харуулагдана.
Endpoint тохируулах
Холболт тус бүрт олон endpoint байж болно — хийхийг хүссэн тодорхой API дуудлагууд.
| Талбар | Тайлбар | Жишээ |
|---|---|---|
| Нэр | Энэ endpoint-ын шошго | Боломж шалгах |
| Method | HTTP method | GET, POST, PUT, DELETE |
| Зам | URL зам (үндсэн URL-д нэмэгдэнэ). Динамик утгуудад {'{'}variable} ашигла | /rooms/{'{'}roomId}/availability |
| Query параметр | Түлхүүр-утгын хос URL параметр. Утгуудад {'{'}variable} дэмжинэ | date={'{'}checkIn} |
| Body загвар | POST/PUT-д зориулсан JSON биет. {'{'}variable} орлуулалтыг дэмждэг | {'{'}"guest": "{'{'}name}"} |
| Хариу зураглалт | Цэгэн тэмдэглэгээ ашиглан JSON хариуны талбаруудыг сессийн хувьсагчтай зураглана | data.available → room_available |
| Тайлбар | AI-д контекст (энэ endpoint ямар өгөгдөл буцаадаг тухай) | Өрөөний боломж ба үнийг буцаадаг |
Хувьсагчийн орлуулалт
Зам, query параметр, body загварт {'{'}variableName}-г ашиглана. Хувьсагчид дараахаас гардаг:
- Сессийн хувьсагч — өмнөх дүрмээр тохируулсан (SET_VARIABLE үйлдэл)
- Үйлдлийн параметрүүд — CALL_API дүрмийн үйлдэлд hard-code хийгдсэн
Хариу зураглалт
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) — Rules хуудсан дээр, дүрэм таарах эсэх, ямар үйлдлүүд гүйцэтгэгдэх эсэхийг турш
Зөвлөгөө: Холболтыг турших, дараа нь endpoint бүрийг, дараа нь бүрэн дүрмийг туршиж эхэлнэ. Ингэснээр та түвшин бүрт асуудлыг тусгаарлаж чадна.
Аюулгүй байдал
- Амрах үеийн шифрлэлт — бүх эрх хадгалахаасаа өмнө libsodium ашиглан шифрлэгддэг
- Хэзээ ч ил гарахгүй — API хариултууд хэзээ ч шифрлэгдээгүй эрхийг агуулдаггүй, зөвхөн далдалсан утгуудыг
- SSRF хамгаалалт — enuchat нь localhost, хувийн IP, дотоод hostname руу дуудлагыг блоклодог
- Timeout — гадаад API дуудлага нь унжихаас сэргийлэхийн тулд 5 секундын timeout-тэй
- OAuth2 токений кэш — хандалтын токенууд аюулгүй кэшлэгдсэн, автоматаар сэргээгддэг
- Tenant тусгаарлалт — холболтууд нь танай tenant-д хамаарах бөгөөд бусдад боломжгүй