LanaChat

API: AI Brains, szkice i Playground

6 min czytaniaZaktualizowano Markdown

AI Brain przechowuje sposób, w jaki AI sprzedaje dla twórczyni: jej fazy sprzedaży, zasady i ustawienia. Zmieniasz szkic, testujesz go w Playground, a potem publikujesz; aktywny brain zmienia się tylko po publikacji. Brain jest powiązany z jedną twórczynią i może być używany przez jej konta.

Endpoints #

MethodPathDescriptionPermissionStatus
GET/brainsLista brains (creator_id=)can_enginePlanned
POST/brainsUtwórz brain dla twórczyni, pusty lub skopiowany z innego (copy_from)can_enginePlanned
GET/brains/{id}Aktywna wersja brainacan_enginePlanned
PATCH/brains/{id}Zmień nazwę lub powiąż z inną twórczyniącan_enginePlanned
DELETE/brains/{id}Usuń brain, którego nie używa żadne kontocan_enginePlanned
GET/brains/{id}/draftAktualny szkic i różnice względem aktywnej wersjican_enginePlanned
PATCH/brains/{id}/draftZmień szkic (fazy, zasady, ustawienia)can_enginePlanned
DELETE/brains/{id}/draftUsuń szkiccan_enginePlanned
POST/brains/{id}/publishOpublikuj szkic; staje się aktywny na wszystkich powiązanych kontachcan_publishPlanned
GET/brains/{id}/versionsOpublikowane wersje, najnowsze pierwszecan_enginePlanned
POST/brains/{id}/versions/{version}/restoreSkopiuj starą wersję do szkicucan_enginePlanned
POST/playground/{brain_id}/messageWyślij testową wiadomość do szkicu i otrzymaj odpowiedź AIcan_enginePlanned
DELETE/playground/{brain_id}/sessionZacznij testową rozmowę od nowacan_enginePlanned

Obiekt brain #

{
  "id": "br_lea_main",
  "name": "Lea · main",
  "creator_id": "cr_lea",
  "version": 12,
  "published_at": "2026-10-04T21:10:00Z",
  "has_draft": true,
  "accounts": ["acc_1001", "acc_1004"],
  "phases": [
    { "key": "warm_up", "name": "Warm up", "enabled": true },
    { "key": "first_offer", "name": "First offer", "enabled": true }
  ]
}
PoleTypOpis
idstringZaczyna się od br_
namestringNazwa w Console
creator_idstringPowiązana twórczyni
versionnumberAktywna wersja; zwiększa się o jeden przy każdej publikacji
published_atstring lub nullData publikacji aktywnej wersji, ISO 8601 UTC
has_draftbooleantrue gdy szkic różni się od aktywnej wersji
accountstablica stringówKonta Telegram odpowiadające tym brainem
phasestablicaFazy sprzedaży: key, name i czy każda jest enabled

Brains #

Lista brains #

GET /brains · can_engine

ParametrTypWymaganyOpis
creator_idstringNieTylko brains tej twórczyni
limit, cursornumber, stringNiePaginacja
curl "https://api.lanachat.ai/v1/brains?creator_id=cr_lea" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
{
  "data": [
    { "id": "br_lea_main", "name": "Lea · main", "creator_id": "cr_lea", "version": 12, "published_at": "2026-10-04T21:10:00Z", "has_draft": true, "accounts": ["acc_1001", "acc_1004"], "phases": [ { "key": "warm_up", "name": "Warm up", "enabled": true }, { "key": "first_offer", "name": "First offer", "enabled": true } ] }
  ],
  "next_cursor": null
}

Utwórz brain #

POST /brains · can_engine

ParametrTypWymaganyOpis
creator_idstringTakDla której twórczyni
namestringNieNazwa w Console
copy_fromstringNieId braina do skopiowania; bez tego brain jest pusty
curl -X POST https://api.lanachat.ai/v1/brains \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"creator_id": "cr_lea", "name": "Lea · TikTok test", "copy_from": "br_lea_main"}'

Odpowiedź to nowy brain (201). copy_from brain, który nie istnieje w tym workspace, zwraca 404.

Pobierz brain #

GET /brains/{id} · can_engine

curl https://api.lanachat.ai/v1/brains/br_lea_main \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Odpowiedź to aktywna wersja, jak w obiekcie brain. Szkic odczytuje się przez GET /brains/{id}/draft.

Zmień nazwę lub powiąż brain #

PATCH /brains/{id} · can_engine

ParametrTypWymaganyOpis
namestringNieNowa nazwa
creator_idstringNiePowiąż z inną twórczynią
curl -X PATCH https://api.lanachat.ai/v1/brains/br_lea_main \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Lea · main FR"}'

Odpowiedź to zaktualizowany brain.

Usuń brain #

DELETE /brains/{id} · can_engine

curl -X DELETE https://api.lanachat.ai/v1/brains/br_lea_old \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Brain używany przez konto zostanie odrzucony (409): najpierw powiąż te konta z innym brainem.

Szkice i publikowanie #

Odczytaj szkic #

GET /brains/{id}/draft · can_engine

curl https://api.lanachat.ai/v1/brains/br_lea_main/draft \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Odpowiedź to aktualny szkic (fazy, zasady i ustawienia) oraz różnice względem aktywnej wersji.

Zmień szkic #

PATCH /brains/{id}/draft · can_engine

ParametrTypWymaganyOpis
phasestablicaNieFazy sprzedaży do zmiany
rulestablicaNieZasady do zmiany
settingsobiektNieUstawienia do zmiany, np. first_offer_after_messages lub max_discount_percent
curl -X PATCH https://api.lanachat.ai/v1/brains/br_lea_main/draft \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"settings": {"first_offer_after_messages": 6, "max_discount_percent": 20}}'

Zmieniają się tylko przesłane pola. Aktywny brain nie zmienia się aż do publikacji.

Usuń szkic #

DELETE /brains/{id}/draft · can_engine

curl -X DELETE https://api.lanachat.ai/v1/brains/br_lea_main/draft \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Szkic zostaje usunięty; aktywna wersja pozostaje bez zmian, a has_draft zmienia się na false.

Opublikuj szkic #

POST /brains/{id}/publish · can_publish

curl -X POST https://api.lanachat.ai/v1/brains/br_lea_main/publish \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
{ "id": "br_lea_main", "version": 13, "published_at": "2026-10-06T14:20:03Z", "has_draft": false }

Szkic staje się aktywny na wszystkich powiązanych kontach. Próba publikacji bez szkicu zwraca 409. Zaawansowane profile AI wymagają własnych uprawnień właściciela, jak w Console. Webhook brain.published powiadamia Twój serwer.

Wersje #

Lista wersji #

GET /brains/{id}/versions · can_engine

curl https://api.lanachat.ai/v1/brains/br_lea_main/versions \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Odpowiedź zawiera listę opublikowanych wersji, najnowsze pierwsze, paginowaną.

Przywróć wersję #

POST /brains/{id}/versions/{version}/restore · can_engine

curl -X POST https://api.lanachat.ai/v1/brains/br_lea_main/versions/11/restore \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

Stara wersja zostaje skopiowana do szkicu. Nic się nie zmienia dla fanów aż do publikacji. Nieznana wersja zwraca 404.

Playground #

Playground rozmawia z szkicem, nigdy z fanem. Nic nie jest wysyłane na Telegram i nic nie jest sprzedawane.

Wyślij testową wiadomość #

POST /playground/{brain_id}/message · can_engine

ParametrTypWymaganyOpis
textstringTakCo pisze testowy fan
fanobiektNieTestowy fan: language (np. en) i is_new
curl -X POST https://api.lanachat.ai/v1/playground/br_lea_main/message \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"text": "hey, are you real?", "fan": {"language": "en", "is_new": true}}'
{
  "reply": { "text": "Haha very real, just slow at typing 🙈 where are you from?", "media": [] },
  "phase": "warm_up",
  "explain": "Phrase bank answer for \"Are you a bot?\", then a question to keep the fan talking."
}
  • reply to, co AI by wysłało: tekst i media.
  • phase to faza sprzedaży, w której jest AI.
  • explain wyjaśnia po angielsku, dlaczego tak odpowiedziało.

Każde wywołanie kontynuuje tę samą testową rozmowę.

Zacznij testową rozmowę od nowa #

DELETE /playground/{brain_id}/session · can_engine

curl -X DELETE https://api.lanachat.ai/v1/playground/br_lea_main/session \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Następna testowa wiadomość zaczyna nową rozmowę, jako nowy fan.

Najnowsze wieści o Lanie na Telegramie

Nowości i zaproszenia do bety, najpierw na kanale.