Dozwolona domena
Nagłówek Origin w żądaniu musi odpowiadać domenie dozwolonej w ustawieniach asystenta. Przeglądarki wysyłają go automatycznie.
Dodaj gotowy widget czatu lub Informio Search. Własne interfejsy mogą korzystać z publicznego API, dozwolonych domen, lokalizacji i istniejących danych asystenta.
Najprostsze wdrożenie
Najpierw zezwól na domenę swojej witryny w ustawieniach asystenta. Następnie zastąp ASSISTANT_ID publicznym identyfikatorem asystenta i wklej kod na stronę. Widżet automatycznie wczytuje wygląd, etykiety oraz historię rozmowy.
<script src="https://informio.eu/widget.js" data-assistant="ASSISTANT_ID" defer></script>Umieść kod przed zamykającym tagiem </body>. Atrybut defer sprawia, że ładowanie strony nie jest blokowane, a widżet działa na komputerach i urządzeniach mobilnych.
Nagłówek Origin w żądaniu musi odpowiadać domenie dozwolonej w ustawieniach asystenta. Przeglądarki wysyłają go automatycznie.
Losowy session_id zachowuje historię czatu między wiadomościami oraz po ponownym otwarciu klienta.
Identyfikator asystenta nie jest tajnym kluczem API. Nigdy nie umieszczaj sekretów ani danych uwierzytelniających dostawcy AI w kliencie.
Informio Search
Skrypt wyświetla pole, podpowiedzi i wyniki oraz sam wywołuje API Informio. Strona nie potrzebuje własnego backendu wyszukiwania.
<div id="informio-search"></div>
<script src="https://informio.eu/search.js"
data-assistant="ASSISTANT_ID"
data-target="#informio-search" defer></script>data-target to selektor CSS istniejącego kontenera. Bez niego pole pojawi się w miejscu skryptu. Identyfikatory kontenerów muszą być unikalne. Dla każdego pola użyj osobnego skryptu i kontenera.
W React/Vue lub innym SPA umieść kontener w stałym layoucie i załaduj skrypt raz, po utworzeniu kontenera, przez document.createElement('script'). Skrypty wstawione przez innerHTML nie uruchamiają się. Przy często montowanych i usuwanych komponentach użyj poniższego API.
Kolor, motyw, zaokrąglenia i język pochodzą z ustawień asystenta. Wybierz wyniki inline lub modal oraz opcjonalne podsumowanie AI. Shadow DOM oddziela interfejs od CSS strony.
Wybrane źródła WWW/XML muszą mieć publiczne adresy HTTP(S). Samodzielne źródła MD i dokumenty nie są obsługiwane. Wyniki korzystają z ostatnio zsynchronizowanych danych.
Podpowiedzi nie wywołują AI. Jedno udane, zatwierdzone wyszukiwanie AI wraz z opcjonalnym podsumowaniem zużywa jedną odpowiedź organizacji.
To API służy do własnego interfejsu. Gotowy search.js obsługuje już wszystkie żądania. Search nie wymaga session_id ani tajnego klucza API.
/api/search/{assistant}Zwraca wygląd, język, tryb wyświetlania, branding i zlokalizowane komunikaty.
/api/search/{assistant}/suggest?q=wellnessPodpowiedzi tekstowe bez AI, maksymalnie 6 wyników. Wymagany parametr q przyjmuje 3–300 znaków.
/api/search/{assistant}/resultsTreść JSON zawiera q o długości 3–300 znaków. Zwraca maksymalnie 24 wyniki oraz summary, mode i notice.
Wysyłaj Accept: application/json, a przy POST także Content-Type: application/json. Przeglądarka automatycznie wysyła Origin; domena musi być dozwolona. Accept-Language wybiera język przy automatycznym języku asystenta. Opóźnij podpowiedzi o 300 ms i anuluj nieaktualne żądania.
const assistantId = 'ASSISTANT_ID';
const query = 'wellness';
const response = await fetch(
`https://informio.eu/api/search/${assistantId}/results`,
{
method: 'POST',
credentials: 'omit',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
'Accept-Language': document.documentElement.lang || 'en',
},
body: JSON.stringify({ q: query }),
},
);
if (!response.ok) throw new Error(String(response.status));
const { results, summary, mode, notice } = await response.json();
const container = document.querySelector('#custom-search-results');
container.replaceChildren();
for (const item of results) {
const url = new URL(item.url);
if (!['https:', 'http:'].includes(url.protocol)
|| url.username || url.password) continue;
const link = document.createElement('a');
link.href = url.href;
link.textContent = item.title;
container.append(link);
}{
"results": [
{
"title": "Wellness i godziny otwarcia",
"url": "https://example.com/wellness",
"type": "page",
"excerpt": "Basen, sauny i praktyczne informacje przed wizytą.",
"image_url": null,
"price": null,
"currency": null,
"in_stock": null
}
],
"summary": null,
"mode": "ai",
"notice": null
}results zawiera karty; type to page, article, product, event lub profile. Zdjęcie, cena, waluta i stan magazynowy mogą mieć wartość null. summary to tekst lub null; mode to ai lub text, a notice to zlokalizowany komunikat lub null. Lista ma maksymalnie 24 wyniki bez paginacji.
Przykład JavaScript oczekuje kontenera #custom-search-results i wyświetla linki. Fragmenty, summary i notice wyświetlaj przez textContent, nie innerHTML. Sprawdzaj adresy HTTP(S), a zdjęcia ładuj tylko wtedy, gdy image_url istnieje.
Konfiguracja i podpowiedzi dzielą limit 120 żądań na minutę na asystenta/IP. Wyniki mają limit 20 na minutę na asystenta/IP. Przy 429 respektuj Retry-After.
Błąd AI lub wyczerpany plan może zwrócić HTTP 200 z mode: text i wynikami tekstowymi bez zużycia odpowiedzi. Jeśli zawiedzie tylko podsumowanie, mode pozostaje ai, summary ma wartość null, a wyniki liczą się jako jedno wyszukiwanie AI.
Pobierz OpenAPISzybki start
Zastąp ASSISTANT_ID publicznym identyfikatorem z ustawień asystenta. W całej rozmowie używaj tego samego session_id.
Bazowy adres URL
https://informio.eu/apicurl --request POST \
--url https://informio.eu/api/widget/ASSISTANT_ID/messages \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Origin: https://example.com' \
--data '{
"session_id": "visitor-session-01JEXAMPLE1234567890",
"message": "When are you open?"
}'Dokumentacja API
Stabilne endpointy używane przez oficjalny widżet Informio.
/widget/{assistant}Zwraca nazwę, wygląd, etykiety, dostępność operatora oraz istniejącą historię dla sesji.
/widget/{assistant}/messagesWysyła pytanie odwiedzającego i zwraca odpowiedź, produkty lub bieżący stan przekazania do człowieka.
/widget/{assistant}/syncWczytuje nowe wiadomości operatora, stan przejęcia oraz zakończenie rozmowy bez odświeżania całego interfejsu.
/widget/{assistant}/handoffProsi dostępną ekipę o przejęcie rozmowy, gdy dla asystenta włączone jest przekazanie do człowieka.
/widget/{assistant}/page-viewPowiązuje odwiedzony adres URL i tytuł strony z rozmową, bez zawartości formularzy ani parametrów zapytania.
/widget/{assistant}/endKończy bieżącą rozmowę i opcjonalnie zapisuje pozytywną lub negatywną ocenę odwiedzającego.
Zalecany przepływ
Klient potrzebuje tylko publicznego identyfikatora asystenta, dozwolonego Origin oraz stałego session_id.
Gdy czat się otwiera, pobierz jego wygląd, etykiety oraz istniejącą historię sesji.
Wysyłaj każde pytanie z tym samym session_id i na stronie internetowej uwzględniaj bieżącą stronę.
Po poproszeniu o człowieka regularnie wczytuj nowe wiadomości oraz stan operatora.
Zaimportuj OpenAPI YAML do Postman lub Insomnia albo użyj go do wygenerowania klienta w preferowanym języku.
Pobierz OpenAPIPubliczny kontrakt obejmuje czat, widget i Search. API zarządzania asystentami i źródłami wiedzy nie jest publiczne; napisz na info@informio.eu.
Zacznij bez karty płatniczej ani klucza API. Domyślny Informio AI jest gotowy automatycznie, a własne konto OpenAI lub serwer AI pozostają opcjonalne.
PLAN FREE · 100 odpowiedzi · bez karty płatniczej