[Intum Pomoc V1](https://intum.intum.pl/kb/intum-kb-v1.md) / [Noe AI](https://intum.intum.pl/kb/intum-kb-v1/noe-ai.md)

# [Prompty AI](https://intum.intum.pl/kb/intum-kb-v1/noe-ai/prompty-ai.md) | [API](#api)

## Prompty AI

Prompty to instrukcje definiujące zachowanie modeli AI w różnych kontekstach - np. jak AI ma odpowiadać na pytania, w jakim tonie pisać, jakie dane uwzględniać.

## Gdzie spotkasz prompty w systemie

W wielu miejscach Intum - na listach, formularzach i widokach szczegółów - obok przycisku Zapisz albo w pasku nawigacji jest przycisk **AI** z ikoną iskierek. Ten sam przycisk znajdziesz w edytorze treści.

![Przycisk AI w pasku nad formularzem i w edytorze treści](9b733c021583-ai-button.png)

Po kliknięciu otwiera się okienko z gotową instrukcją dla agenta AI. Instrukcja jest dopasowana do miejsca, z którego ją wywołujesz: opisuje, co można zrobić w tym module, dołącza adres Twojego konta i dane dostępowe. Wystarczy kliknąć Kopiuj i wkleić ją agentowi, z którego korzystasz:

- **Claude Code** - agent w terminalu, wklejasz instrukcję i dopisujesz zwykłym zdaniem, co ma zrobić
- **Claude** w przeglądarce lub aplikacji na komputerze
- **ChatGPT** i **Codex** od OpenAI
- **Gemini CLI**, **Copilot CLI**, **OpenCode** i inne narzędzia tego typu

Agent czyta instrukcję, łączy się z Twoim kontem i wykonuje polecenie: zakłada zadania, poprawia ustawienia modułu, uzupełnia bazę wiedzy, wpisuje czas pracy. To, co dostajesz w okienku, jest właśnie promptem opisanym w tym wpisie - możesz go podejrzeć i zmienić pod siebie.

## Rodzaje promptów

- **Chat** - prompty używane w rozmowach z AI (definiują osobowość i zachowanie asystenta)
- **Agent** - prompty używane do automatyzacji zadań (agent wykonuje akcje przez API)

## Kaskadowe wyszukiwanie

System szuka promptu w następującej kolejności:

1. **Użytkownik** - prompt ustawiony dla konkretnej osoby
2. **Zespół** - prompt ustawiony dla zespołu
3. **Departament** - prompt ustawiony dla departamentu
4. **Konto** - prompt ustawiony na poziomie całej firmy
5. **Systemowy** - domyślny prompt dostarczony z aplikacją

Wygrywa pierwszy znaleziony, więc różni użytkownicy mogą mieć różne zachowanie AI.

## Dostosowanie gotowego prompta

Na widoku prompta systemowego znajdziesz przycisk **Dostosuj**. Tworzy on Twoją prywatną wersję, która przykrywa systemową - tylko dla Ciebie, reszta firmy dalej korzysta z oryginału.

Jeśli własną wersję już masz, Dostosuj otwiera ją od razu do edycji, zamiast zakładać drugą o tym samym kodzie. A gdy Twoja firma ma własną wersję na poziomie konta, formularz startuje od jej treści - dostosowujesz to, co realnie widzisz, nie oryginał sprzed zmian.

Pod polem treści jest przycisk **Wstaw domyślny**. Podstawia treść oryginalnego prompta systemowego, żeby ją porównać albo wrócić do punktu wyjścia. Nic się przy tym nie zapisuje - dopóki nie klikniesz Zapisz, zmiana jest tylko na ekranie.

## Dodatkowe instrukcje zamiast całej kopii

Czasem nie chodzi o przepisanie całego prompta, tylko o dorzucenie kilku własnych zasad. Do tego służy link **Dodaj dodatkowe instrukcje** na widoku prompta. Twoja treść zostaje doklejona na końcu oryginału, dzięki czemu późniejsze poprawki prompta systemowego dalej do Ciebie docierają.

## Pomoc AI przy pisaniu promptów

Na liście promptów i w formularzu jest przycisk AI (ikona iskierek). Można mu zwykłym zdaniem powiedzieć, co ma zrobić - na przykład "dostosuj ten prompt, żeby przy pojedynczym wejściu liczył 10 minut zamiast 30" albo "pokaż moje własne prompty". AI wykona to przez API.

## Zmienne Liquid

Prompty obsługują zmienne w formacie `{{ zmienna }}`, wypełniane automatycznie kontekstem - np. dzisiejszą datą, adresem Twojego konta czy tokenem dostępu.

Przy edycji zostaw te zmienne w treści. Usunięcie tej z tokenem odbierze agentowi dostęp do danych i prompt przestanie działać.

## Zarządzanie

Prompty tworzysz i edytujesz w ustawieniach Noe AI. Każdy prompt ma:

- **Kod** - unikalny identyfikator, np. `task_new`
- **Zawartość** - treść instrukcji
- **Typ** - chat albo agent
- **Zakres** - użytkownik, zespół, departament lub konto
- **Placeholder AI** - podpowiedź widoczna w okienku AI, pole opcjonalne

Usunięcie własnej wersji przywraca prompt systemowy. Nic nie ginie na stałe.

---

## API

### Ogólne API

# Intum API

Dokumentacja API platformy [Intum](https://intum.pl) - system operacyjny firmy.

## Host

Host jest zawsze taki sam jak adres konta: `xxxx.intum.com` lub `xxx.intum.pl` (w zależności od ustawień konta)

## Autoryzacja

Wszystkie requesty API wymagają `api_token`:
- header: `Authorization: Bearer TOKEN`

Token możesz wygenerować w **Ustawienia Konta** → **Tokeny API**

# Prompty AI - API

**Autoryzacja:** `Authorization: Bearer TOKEN`
**Content-Type:** `application/json; charset=utf-8`

## Endpoints

| Metoda | Ścieżka | Opis |
|--------|---------|------|
| GET | `/noe/prompts.json` | Lista promptów z bazy (bez systemowych z plików) |
| GET | `/noe/prompts/:id.json` | Szczegóły prompta (`id` to UUID) |
| POST | `/noe/prompts.json` | Tworzenie prompta |
| PATCH | `/noe/prompts/:id.json` | Aktualizacja prompta |
| DELETE | `/noe/prompts/:id.json` | Usunięcie prompta (wraca wersja systemowa, jeśli istnieje) |
| GET | `/noe/prompts/:id.md` | Surowa treść, bez renderowania Liquid |
| GET | `/noe/prompt/:code.md` | Treść po kaskadzie, z podstawionymi `{{api_token}}` i `{{host}}` |
| GET | `/noe/prompts/system/:code.md` | Treść systemowa z pliku |

`GET /noe/prompts.json` zwraca gołą tablicę, nie obiekt z kluczem `prompts`.

## Pola

| Pole | Typ | Wymagane | Opis |
|------|-----|----------|------|
| `name` | string | tak | Nazwa prompta |
| `code` | string | tak | Kod, unikalny w ramach (konto, `scope`, `scope_id`) |
| `kind` | string | tak | `chat` albo `agent` |
| `content` | text | tak | Treść prompta (Markdown + Liquid) |
| `scope` | string | nie | `user`, `team`, `department`, `account` (domyślnie `account`) |
| `scope_id` | integer | nie | ID użytkownika, zespołu lub departamentu |
| `ai_placeholder` | string | nie | Podpowiedź w polu modala AI, zapisywana w `fields.ai_placeholder` |

Pole `token` nie jest zwracane przez API.

## Kaskadowe wyszukiwanie

Endpoint `/noe/prompt/:code.md` szuka prompta w kolejności:

1. Użytkownik (`scope: user`, `scope_id` = id użytkownika)
2. Zespół (`scope: team`)
3. Departament (`scope: department`)
4. Konto (`scope: account`)
5. Plik systemowy (`app/src/noe/prompts/:code.agent.md` lub `:code.md`)

Jeśli istnieje dodatkowo prompt o kodzie `:code_extra`, jego treść zostaje dopisana na końcu jako "Dodatkowe instrukcje". To sposób na uzupełnienie prompta systemowego bez kopiowania go w całości.

## POST - tworzenie prompta

```json
POST /noe/prompts.json

{
  "prompt": {
    "name": "Redaktor treści",
    "code": "content_editor",
    "kind": "agent",
    "scope": "account",
    "content": "Jesteś doświadczonym redaktorem. Poprawiaj styl i gramatykę."
  }
}
```

Odpowiedź: `201 Created` z pełnym obiektem prompta.

## PATCH - zmiana samej treści

```json
{ "prompt": { "content": "Nowa treść..." } }
```

Pozostałych pól nie trzeba wysyłać. Odpowiedź: `200 OK`.

Błąd `422` z `{"code": ["zostało już zajęte"]}` oznacza, że prompt o tym kodzie już istnieje w tym samym zakresie. Zamiast tworzyć nowy, pobierz istniejący przez `GET /noe/prompts.json?code=...` i zrób PATCH.

## Wyszukiwanie

| Parametr | Opis |
|----------|------|
| `q` | Szuka w `name` i `code` |
| `code`, `kind`, `scope` | Filtr po dokładnej wartości |
| `order_by` | `id`, `created_at`, `updated_at`, `name`, `code` (sufiks `_desc` odwraca kolejność) |

## Zmienne Liquid

- `{{api_token}}` - token API bieżącego użytkownika
- `{{host}}` - adres konta, np. `https://firma.intum.com`
- `{{date}}` - data z parametru `date`, domyślnie dzisiejsza
- `{{ "code" | prompt_url }}` - link do innego prompta
- zmienne kontekstowe przekazywane przez przycisk AI, np. `{{desk_id}}`, `{{prompt_id}}`

Warunek na obecność zmiennej: `{% if prompt_id != blank %}...{% else %}...{% endif %}`

Pierwsza linia pliku systemowego może zawierać nagłówek `NAME: Nazwa` - staje się nazwą prompta i nie trafia do treści wysyłanej do modelu.

## Zasady

- Nie wstawiaj prawdziwego tokena do `content` - zawsze `{{api_token}}`, bo treść prompta widzą inni użytkownicy konta
- Przy edycji zachowaj `{{api_token}}` i `{{host}}` - bez nich prompt agentowy traci dostęp do API
- Przed DELETE sprawdź `scope`, `scope_id` i `created_by_id`, żeby nie skasować cudzego prompta

---

## Powiązane

- [Noe AI w Intum: Twoja sztuczna inteligencja na wyciągnięcie ręki](https://intum.intum.pl/kb/intum-kb-v1/noe-ai/noe-ai.md)
