|
|
3 semanas atrás | |
|---|---|---|
| flowise-tools | 3 semanas atrás | |
| public | 3 semanas atrás | |
| src | 3 semanas atrás | |
| wp-plugins | 3 semanas atrás | |
| .env.example | 3 semanas atrás | |
| .gitignore | 4 semanas atrás | |
| README.md | 4 semanas atrás | |
| composer.json | 4 semanas atrás |
PHP relay pomiędzy Chatwoot, Flowise i WooCommerce. Odbiera webhooki z Chatwoot, przekazuje wiadomości do Flowise (LLM agent) i wystawia narzędzia (/tools/*) wywoływane przez agenta.
Klient → CHATWOOT → EKSRELAY /webhooks/chatwoot → FLOWISE (Tool Agent)
↓ narzędzia
EKSRELAY /tools/*
↓
WOOCOMMERCE REST API
WP AJAX (mu-plugin)
← odpowiedź ← EKSRELAY ← FLOWISE
composer install
cp .env.example .env
# uzupełnij .env
php -S 0.0.0.0:8080 -t public
.env)| Zmienna | Opis |
|---|---|
CHATWOOT_BASE_URL |
URL instancji Chatwoot (np. https://eksupport.easyklima.com) |
CHATWOOT_API_TOKEN |
Token API Chatwoot (Settings → Account → API) |
CHATWOOT_ACCOUNT_ID |
ID konta Chatwoot (z URL /accounts/X/) |
CHATWOOT_BOT_AGENT_ID |
ID agenta-bota (opcjonalne) |
CHATWOOT_TICKET_LABEL |
Label oznaczający ręczną obsługę (domyślnie: ticket) |
FLOWISE_PREDICT_URL |
URL endpointu /api/v1/prediction/<chatflow-id> |
FLOWISE_API_KEY |
Klucz API Flowise (jeśli włączone) |
WP_AJAX_URL |
URL WordPress AJAX: https://sklep.pl/wp-admin/admin-ajax.php |
WOOCOMMERCE_BASE_URL |
URL sklepu WooCommerce |
WOOCOMMERCE_CONSUMER_KEY |
Klucz WooCommerce REST API (ck_...) |
WOOCOMMERCE_CONSUMER_SECRET |
Secret WooCommerce REST API (cs_...) |
RELAY_SHARED_SECRET |
Losowy token chroniący endpointy /tools/* |
| Endpoint | Opis |
|---|---|
POST /webhooks/chatwoot |
Odbiera eventy z Chatwoot. Przetwarza tylko message_created + incoming. |
Wszystkie wymagają nagłówka Authorization: Bearer <RELAY_SHARED_SECRET>.
| Endpoint | Źródło danych | Opis |
|---|---|---|
POST /tools/get_order_data |
WooCommerce REST API | Zamówienie po numerze lub emailu |
POST /tools/get_product_data |
WooCommerce REST API | Produkt po ID, SKU lub frazie |
POST /tools/get_shipping_data |
WooCommerce REST API | Strefy i metody wysyłki |
POST /tools/get_payment_methods |
WooCommerce REST API | Dostępne metody płatności |
POST /tools/get_car_data |
WP AJAX (mu-plugin) | Dane auta z bazy pojazdów WP |
POST /tools/get_product_compatibility |
WP AJAX (mu-plugin) | Kompatybilność produktu z autem |
POST /tools/new_ticket |
Chatwoot API | Tworzy ticket, dodaje label ticket |
aiac_chat_api.php)Dwa endpointy — get_car_data i get_product_compatibility — nie korzystają z WooCommerce REST API, lecz bezpośrednio z WordPress AJAX udostępnianego przez mu-plugin aiac_chat_api.php.
Dane o samochodach (marka/model/rok/silnik → typ gazu, ilość, adapter) i sprawdzanie kompatybilności produktu z autem są przechowywane w WordPressie jako:
carcar_model, car_production_yearac_gas_type, ac_gas_amount, adapters, itp.Standardowe WooCommerce REST API nie wystawia tych danych — stąd konieczność korzystania z pluginu.
Plugin aiac_chat_api.php jest starym rozwiązaniem z poprzedniego chatbota. EKSRelay wywołuje jego publiczne AJAX endpointy:
GET https://easyklima.pl/wp-admin/admin-ajax.php?action=chat_get_car_data&car_brand=Toyota&...
GET https://easyklima.pl/wp-admin/admin-ajax.php?action=chat_get_product_compatibility&...
Endpointy są publiczne (nopriv) i nie wymagają uwierzytelnienia.
Plugin powinien zostać przebudowany tak, żeby:
register_rest_route → /wp-json/aiac/v1/car-data)get_product_data z wariantami i wieloma walutami (WCML), czego obecne rozwiązanie przez WC REST API nie pokrywa w pełniDo tego czasu EKSRelay korzysta ze starych endpointów AJAX — działa, ale jest kruche (bez auth, zależne od legacy kodu).
Narzędzia Flowise znajdują się w katalogu flowise-tools/. Każdy plik JSON to definicja do zaimportowania w Flowise UI (Tools → Add Tool → Import).
W chatflow Flowise należy ustawić zmienne:
| Zmienna | Wartość |
|---|---|
relay_base |
URL EKSRelay (np. http://localhost:8080 lub produkcyjny) |
relay_shared_secret |
Wartość RELAY_SHARED_SECRET z .env |
W Chatwoot → Settings → Integrations → Webhooks → Add:
https://<adres-relay>/webhooks/chatwootmessage_createdcomposer install --no-dev.env z produkcyjnymi danymiphp -S 0.0.0.0:8080 -t publicrelay_base w zmiennych Flowise na publiczny URL