# API: AI Brains, szkice i Playground

_API · 6 min czytania · Zaktualizowano 2026-10-22 · https://lanachat.ai/guides/pl/api-ai-brains/_

**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

| Method | Path | Description | Permission | Status |
|---|---|---|---|---|
| GET | `/brains` | Lista brains (`creator_id=`) | `can_engine` | Planned |
| POST | `/brains` | Utwórz brain dla twórczyni, pusty lub skopiowany z innego (`copy_from`) | `can_engine` | Planned |
| GET | `/brains/{id}` | Aktywna wersja braina | `can_engine` | Planned |
| PATCH | `/brains/{id}` | Zmień nazwę lub powiąż z inną twórczynią | `can_engine` | Planned |
| DELETE | `/brains/{id}` | Usuń brain, którego nie używa żadne konto | `can_engine` | Planned |
| GET | `/brains/{id}/draft` | Aktualny szkic i różnice względem aktywnej wersji | `can_engine` | Planned |
| PATCH | `/brains/{id}/draft` | Zmień szkic (fazy, zasady, ustawienia) | `can_engine` | Planned |
| DELETE | `/brains/{id}/draft` | Usuń szkic | `can_engine` | Planned |
| POST | `/brains/{id}/publish` | Opublikuj szkic; staje się aktywny na wszystkich powiązanych kontach | `can_publish` | Planned |
| GET | `/brains/{id}/versions` | Opublikowane wersje, najnowsze pierwsze | `can_engine` | Planned |
| POST | `/brains/{id}/versions/{version}/restore` | Skopiuj starą wersję do szkicu | `can_engine` | Planned |
| POST | `/playground/{brain_id}/message` | Wyślij testową wiadomość do szkicu i otrzymaj odpowiedź AI | `can_engine` | Planned |
| DELETE | `/playground/{brain_id}/session` | Zacznij testową rozmowę od nowa | `can_engine` | Planned |

## Obiekt brain

```json
{
  "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 }
  ]
}
```

| Pole | Typ | Opis |
|---|---|---|
| `id` | string | Zaczyna się od `br_` |
| `name` | string | Nazwa w Console |
| `creator_id` | string | Powiązana twórczyni |
| `version` | number | Aktywna wersja; zwiększa się o jeden przy każdej publikacji |
| `published_at` | string lub null | Data publikacji aktywnej wersji, ISO 8601 UTC |
| `has_draft` | boolean | `true` gdy szkic różni się od aktywnej wersji |
| `accounts` | tablica stringów | Konta Telegram odpowiadające tym brainem |
| `phases` | tablica | Fazy sprzedaży: `key`, `name` i czy każda jest `enabled` |

## Brains

### Lista brains

`GET /brains` · `can_engine`

| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| `creator_id` | string | Nie | Tylko brains tej twórczyni |
| `limit`, `cursor` | number, string | Nie | [Paginacja](https://lanachat.ai/guides/pl/api-overview/) |

```bash
curl "https://api.lanachat.ai/v1/brains?creator_id=cr_lea" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

```json
{
  "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`

| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| `creator_id` | string | Tak | Dla której twórczyni |
| `name` | string | Nie | Nazwa w Console |
| `copy_from` | string | Nie | Id braina do skopiowania; bez tego brain jest pusty |

```bash
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`

```bash
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`

| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| `name` | string | Nie | Nowa nazwa |
| `creator_id` | string | Nie | Powiąż z inną twórczynią |

```bash
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`

```bash
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`

```bash
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`

| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| `phases` | tablica | Nie | Fazy sprzedaży do zmiany |
| `rules` | tablica | Nie | Zasady do zmiany |
| `settings` | obiekt | Nie | Ustawienia do zmiany, np. `first_offer_after_messages` lub `max_discount_percent` |

```bash
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`

```bash
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`

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

```json
{ "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](https://lanachat.ai/guides/pl/api-webhooks/) `brain.published` powiadamia Twój serwer.

## Wersje

### Lista wersji

`GET /brains/{id}/versions` · `can_engine`

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

Odpowiedź zawiera listę opublikowanych wersji, najnowsze pierwsze, [paginowaną](https://lanachat.ai/guides/pl/api-overview/).

### Przywróć wersję

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

```bash
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`

| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| `text` | string | Tak | Co pisze testowy fan |
| `fan` | obiekt | Nie | Testowy fan: `language` (np. `en`) i `is_new` |

```bash
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}}'
```

```json
{
  "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`

```bash
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.

## Powiązane artykuły

- [LanaChat API: szybki start, uwierzytelnianie i błędy](https://lanachat.ai/guides/pl/api-overview/)
- [Czym jest AI Brain](https://lanachat.ai/guides/pl/what-is-an-ai-brain/)
- [Playground: bezpieczne testowanie rozmowy](https://lanachat.ai/guides/pl/playground/)
