API savienojumi
Savienojiet savus ārējos API ar enuchat, lai AI un noteikumi varētu iegūt reāllaika datus no jūsu sistēmām.
Kā tas darbojas
API savienojumi ļauj integrēt enuchat ar jūsu aizmugursistēmām — rezervēšanas dzinējiem, CRM, pasūtījumu pārvaldību, inventāru un citiem. Kad apmeklētājs uzdod jautājumu, enuchat var izsaukt jūsu API, lai iegūtu reālus datus un iekļautu tos atbildē.
Plūsma
- Konfigurējiet savienojumu — jūsu API bāzes URL un autentifikācija
- Pievienojiet endpoint — konkrēti API izsaukumi ar ceļa veidnēm un atbilžu kartēšanu
- Izveidojiet noteikumu — AI vai statisks noteikums ar CALL_API darbību
- Apmeklētājs uzdod jautājumu — noteikums aktivizējas, izsauc jūsu API, kartē atbildi sesijas mainīgajos
- AI atbild ar reāliem datiem — sesijas mainīgie ir pieejami AI precīzas atbildes ģenerēšanai
Piemērs: viesnīcas numura pieejamība
Apmeklētājs: "Vai 205. numurs ir pieejams nākamnedēļ?"
AI noteikums sakrīt: "Kad apmeklētājs jautā par numura pieejamību"
CALL_API darbība: GET https://api.hotel.com/rooms/205/availability
Atbilde kartēta: room_available = true, price = "€120/nakts"
AI atbild: "205. numurs ir pieejams nākamnedēļ par €120/nakts. Vai vēlaties to rezervēt?"
Savienojuma iestatīšana
Dodieties uz Iestatījumi → API savienojumi savā panelī.
1. Izveidojiet savienojumu
Savienojums pārstāv vienu ārēju API. Jums nepieciešams:
| Lauks | Apraksts | Piemērs |
|---|---|---|
| Nosaukums | Etiķete šim savienojumam | Viesnīcas rezervēšanas API |
| Bāzes URL | API saknes URL | https://api.hotel.com/v1 |
| Autent. tips | Kā autentificēties | Bearer Token, OAuth2 utt. |
2. Autentifikācijas tipi
Nav
Publiskiem API, kam nav nepieciešama autentifikācija.
API atslēga
Nosūta statisku atslēgu kā galveni vai vaicājuma parametru.
| Lauks | Apraksts |
|---|---|
| Atslēga | Jūsu API atslēgas vērtība |
| Galvenes nosaukums | Izmantojamā galvene (noklusējums: X-Api-Key) |
Atslēga tiek nosūtīta kā: X-Api-Key: your_key_here
Bearer Token
Nosūta statisku žetonu Authorization galvenē.
Tiek nosūtīts kā: Authorization: Bearer your_token_here
Basic Auth
Nosūta lietotājvārdu un paroli, base64 kodētu.
Tiek nosūtīts kā: Authorization: Basic dXNlcjpwYXNz
OAuth 2.0 (Client Credentials)
Automātiski iegūst piekļuves žetonu un kešo to līdz derīguma termiņa beigām. Labākais mūsdienu API, piemēram, Salesforce, Google vai pielāgotiem OAuth serveriem.
| Lauks | Apraksts |
|---|---|
| Token URL | OAuth žetonu endpoint (piem., https://auth.example.com/oauth/token) |
| Client ID | Jūsu OAuth klienta ID |
| Client Secret | Jūsu OAuth klienta noslēpums |
| Scope | Ar atstarpēm atdalīti tvērumi (piem., read write) |
enuchat automātiski pārvalda žetonu dzīves ciklu — iegūst pirmo reizi, kešo līdz derīguma termiņam, atsvaidzina, kad nepieciešams.
Drošība: Visi akreditācijas dati tiek šifrēti miera stāvoklī, izmantojot libsodium. Tie nekad netiek atklāti API atbildēs — panelī tiek rādītas tikai maskētas vērtības.
Endpoint konfigurēšana
Katram savienojumam var būt vairāki endpoint — konkrēti API izsaukumi, ko vēlaties veikt.
| Lauks | Apraksts | Piemērs |
|---|---|---|
| Nosaukums | Etiķete šim endpoint | Pārbaudīt pieejamību |
| Metode | HTTP metode | GET, POST, PUT, DELETE |
| Ceļš | URL ceļš (pievienots bāzes URL). Izmantojiet {'{'}variable} dinamiskiem lielumiem | /rooms/{'{'}roomId}/availability |
| Vaicājuma parametri | URL parametri kā atslēgu-vērtību pāri. Vērtības atbalsta {'{'}variable} | date={'{'}checkIn} |
| Pamatteksta veidne | JSON pamatteksts POST/PUT. Atbalsta {'{'}variable} interpolāciju | {'{'}"guest": "{'{'}name}"} |
| Atbilžu kartēšana | Kartējiet JSON atbilžu laukus uz sesijas mainīgajiem, izmantojot punktu notāciju | data.available → room_available |
| Apraksts | Konteksts AI (kādus datus šis endpoint atgriež) | Atgriež numura pieejamību un cenas |
Mainīgo interpolācija
Izmantojiet {'{'}variableName} ceļos, vaicājuma parametros un pamatteksta veidnēs. Mainīgie nāk no:
- Sesijas mainīgie — iestatīti ar iepriekšējiem noteikumiem (SET_VARIABLE darbība)
- Darbību parametri — cietkodēti CALL_API noteikuma darbībā
Atbilžu kartēšana
Kartējiet JSON atbilžu laukus uz sesijas mainīgajiem, izmantojot punktu notāciju:
// 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"Kartētie mainīgie tiek saglabāti kā sesijas mainīgie sarunā un ir pieejami AI atbilžu ģenerēšanai.
Izmantošana ar noteikumiem
API izsaukumus aktivizē CALL_API darbība noteikumos. Jūs varat tos apvienot ar citām darbībām.
Recepte: pasūtījuma statusa meklēšana
Savienojums: Pasūtījumu pārvaldības API — https://api.shop.com/v2 — Bearer Token
Endpoint: GET /orders/{'{'}orderId} → kartē data.status → order_status, data.eta → delivery_eta
Noteikums (AI tips): "Kad apmeklētājs jautā par pasūtījuma statusu vai piegādi"
Darbības:
- CALL_API → Pasūtījuma statusa endpoint
- REPLY_AI → AI izmanto
order_statusundelivery_eta, lai atbildētu
Rezultāts: Apmeklētājs: "Kur ir mans pasūtījums #4521?" — AI: "Jūsu pasūtījums #4521 šobrīd tiek nosūtīts un tam vajadzētu pienākt līdz ceturtdienai."
Recepte: reāllaika cenas
Savienojums: Cenu API — https://pricing.example.com — API atslēga
Endpoint: GET /products/{'{'}productId}/price → kartē price → current_price, currency → price_currency
Noteikums (statisks): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i
Darbības:
- CALL_API → Cenu endpoint
- REPLY_TEXT → "Pašreizējā cena ir {'{'}current_price} {'{'}price_currency}."
Testēšana
Vienmēr testējiet savus savienojumus un endpoint pirms to izmantošanas noteikumos:
- Testēt savienojumu — pārbauda, vai autentifikācija darbojas (OAuth2: iegūst žetonu)
- Testēt endpoint — veic reālu API izsaukumu ar parauga mainīgajiem un parāda atbildi
- Testēt noteikumu (sausā pārbaude) — Noteikumu lapā testējiet, vai noteikums sakristu un kādas darbības tiktu izpildītas
Padoms: Sāciet ar savienojuma testēšanu, pēc tam katru endpoint, pēc tam pilnu noteikumu. Tā jūs varat izolēt problēmas katrā līmenī.
Drošība
- Šifrēšana miera stāvoklī — visi akreditācijas dati tiek šifrēti, izmantojot libsodium, pirms glabāšanas
- Nekad netiek atklāti — API atbildes nekad neietver atšifrētus akreditācijas datus, tikai maskētas vērtības
- SSRF aizsardzība — enuchat bloķē izsaukumus uz localhost, privātiem IP un iekšējiem saimniekdatoru nosaukumiem
- Taimauts — ārējiem API izsaukumiem ir 5 sekunžu taimauts, lai novērstu apstāšanos
- OAuth2 žetonu kešošana — piekļuves žetoni tiek droši kešoti un automātiski atsvaidzināti
- Nomnieku izolācija — savienojumi ir ierobežoti jūsu nomniekam, nepieejami citiem