Cel: Nie chcę klikać w interfejs ChatGPT. Chcę wejść na platform.openai.com, stworzyć asystenta dostępnego przez API, który będzie pisał tak, jak ja piszę. Chcę wiedzieć ile próbek przygotowaćjak je opisaćjak wciągnąć książki / zasady copywritingujak wyciągnąć styl, wartości, sposób myślenia i zamknąć to wszystko w instrukcjach + plikach, które asystent będzie stosował przy generowaniu nowych tekstów.

To jest dokładnie taki przewodnik.


Spis treści

  1. Co właściwie trenujemy? Asystent vs Fine-tune vs CustomGPT
  2. Model: co wybrać do pisania w Twoim stylu (praktyczne rekomendacje)
  3. Jakie dane zebrać: Twoje teksty, wartości, historie, myślenie
  4. Ile danych? Minimalne i optymalne objętości (słowa, posty, różnorodność)
  5. Jak wciągnąć książki i materiały marketingowe (legalność + metoda destylacji)
  6. Schemat analizy stylu: JSON Style Spec
  7. Prompty analityczne: wydobywanie stylu z próbek
  8. Prompty syntezy: łączenie wielu analiz w jeden profil
  9. Prompty walidacyjne: czy AI naprawdę rozumie Twój styl?
  10. Budujemy pakiet stylu: pliki .json.md, embedowane przykłady
  11. Tworzenie Asystenta przez API (Assistants API) – krok po kroku
  12. Jak karmić asystenta zadaniami: format zapytań, parametry, ograniczenia tokenów
  13. Strategia iteracyjna: poprawiaj styl na bazie wyników
  14. FAQ: najczęstsze problemy (za długie, zbyt generyczne, za mało „mnie”)
  15. Checklista gotowości / Pre-flight do pierwszego realnego użycia
  16. Załączniki: szablony plików, przykłady JSON, curl, Python

1. Co właściwie trenujemy? Asystent vs Fine-tune vs CustomGPT

CelCo toGdzie tworzyszPlusyMinusyKiedy wybrać
Asystent (Assistants API)Obiekt z instrukcjami + plikami + narzędziamiplatform.openai.com → APISzybki, elastyczny, łatwo aktualizować styl, możesz dołączać pliki (Twoje przykłady)Nie „uczy się” param wagi modelu, tylko korzysta z kontekstu95% przypadków stylu pisania. Zalecane dla Ciebie.
Fine-tuneTrening modelu na Twoich przykładach (przebudowa wag)Upload JSONL → fine-tuning jobStyl częściowo „wypalony” w modelu. Nie musisz wysyłać stylu każdorazowoKoszt, czas, potrzebujesz dużo danych, styl może przykryć inne tematyGdy masz dziesiątki tysięcy słów i chcesz działać bardzo tanio w runtime
Custom GPT (UI)Bot konfigurowany ręcznie w chat.openaiInterfejs ChatGPTZero koduNie chcesz UINie wybierasz

Ty chcesz: Asystent przez API z dobrze przygotowanymi instrukcjami + plikami stylu + ewentualnie „mini‑few‑shot” przykładami. Fine-tune możesz dodać później.


2. Model: co wybrać do pisania w Twoim stylu

Rekomendacje praktyczne (priorytet: koszt vs jakość + styl):

Opcja szybka / tania: gpt-4o-mini – lekki, szybki, wystarczający do generowania postów, jeśli styl opisany w instrukcjach.

Opcja jakość / kreatywność: gpt-4o – kiedy zależy Ci na niuansie tonu, dłuższych formach (artykuły, newslettery, opowieści).

Eksperymentalnie: Możesz mieć dwóch asystentów: jeden „draft” (tańszy), drugi „polerka” (lepszy model). Workflow: Draft w mini, refine w 4o.

Jeśli planujesz długie teksty (3k+ słów), pilnuj tokenów: dziel zadania na sekcje.


3. Jakie dane zebrać: Twoje teksty, wartości, historie, sposób myślenia

Chcesz, żeby asystent „brzmiał jak Ty” i „myślał jak Ty”. To dwa różne poziomy.

3.1 Dane językowe (jak piszesz)

  • Posty na LinkedIn, blog, newslettery, opisy projektów.
  • Fragmenty wiadomości do klientów (uważaj na dane wrażliwe – zanonimizuj!).
  • Notatki głosowe transkrybowane (zachowują naturalny styl mówiony).

3.2 Dane mentalne (jak myślisz)

  • Twoje wartości zawodowe (np. autentyczność, iteracja, widoczny proces).
  • Ulubione metafory (kawa, warsztat, mapa, pies, interakcja UX…).
  • Ramy decyzyjne (najpierw cel biznesowy, potem UX, potem technika?).
  • Co Cię wkurza (buzzwordy, lanie wody, brak konkretów).
  • Jak mówisz „stop”: styl feedbacku, sarkazm, ale z ciepłem.

3.3 Dane inspiracyjne (jakie źródła kształtują Twój styl)

  • Książki o copywritingu (np. Ogilvy, Bly, Godin).
  • Kursy storytellingu, marketingu emocji.
  • Notatki: „Podoba mi się rytm X, humor Y, struktura Z – używaj tego jako inspiracji, ale nie kopiuj”.

3.4 Dane ograniczeń

  • Nie używaj myślnika —. Zamiast tego kropki. (Twoja preferencja!).
  • Polsko-angielski miks ok, ale kontrolowany.
  • Zwięźle. Lepiej 3 krótkie zdania niż jedno tasiemcowe.

4. Ile danych? Minimalne i optymalne objętości

Jakość docelowaLiczba próbekŁączna liczba słówRóżnorodnośćUwagi
Minimalna (bot „jak ja… mniej więcej”)5 próbek2–3k słów1 kanałTylko krótkie posty → styl będzie spłaszczony
Używalna (polecane minimum)10–15 próbek6–10k słówRóżne formaty: post, mail, instrukcjaLepiej łapie ton i rytm
Mocna baza20+ próbek15k+ słówRóżne długości + żarty + techniczneIdealna do asystenta stylowego
Fine-tune kandydat50+ próbek40k–60k słówszerokoMożna przejść na FT + prompt light

Podział formatów (przykład):

  • 5 × posty LinkedIn ~300–500 słów.
  • 5 × maile do klienta ~400 słów.
  • 3 × długie wpisy blogowe ~1k słów.
  • 2 × transkrypt audio „mówię do kogoś” – styl mówiony.

5. Jak wciągnąć książki i materiały marketingowe

Masz książki copywriterskie? Świetnie. Nie wrzucamy ich surowo (prawa autorskie + zbyt dużo tokenów). Zamiast tego:

5.1 Destylacja książki → zasady

Prompt do destylacji (robisz per rozdział):

Przeczytaj poniższy fragment książki o copywritingu.
Wypisz: 1) Główne zasady pisania, 2) Schematy nagłówków, 3) Czego unikać, 4) Przykłady zastosowania.
Odpowiedz w JSON.
Fragment:
"""
...tekst rozdziału...
"""

5.2 Agregacja zasad do biblioteki taktyk

Powtarzasz dla kilku książek → potem łączysz je w copy_principles.json.

5.3 Połączenie stylu + zasad

Gdy asystent generuje tekst, dostaje pliki:

  • lukasz_style.json – jak pisać.
  • copy_principles.json – jakie ramy marketingowe stosować.
  • (opcjonalnie) audience_context.md – do kogo piszemy.

Tak AI nie kopiuje książki. Używa Twojego stylu + zasad mistrzów.


6. Schemat analizy stylu: JSON Style Spec

Ustalmy wspólny format. Dzięki temu łatwo testować, wersjonować i poprawiać.

{
  "style_version": "2025-07-22",
  "language": "pl",
  "voice": "Swobodny, rozmowa przy kawie, refleksyjny, czasem sarkastyczny.",
  "tone_modifiers": ["motywujący", "autentyczny", "krótkie zdania", "humor sytuacyjny"],
  "do_not_use": ["formalny żargon urzędowy", "długie myślniki —"],
  "sentence_length": {
    "avg_words": 14,
    "variance": "średnia",
    "guideline": "Jeśli zdanie >22 słowa, rozbij na dwa."
  },
  "paragraph_style": "krótkie akapity 1–4 zdania, sporo białej przestrzeni",
  "signature_phrases": ["No i jedziemy", "Dobra, teraz praktyka", "Łyk kawy"],
  "emoji_usage": "umiarkowane, tylko gdy wzmacniają ton",
  "format_preferences": {
    "listy": "krótkie bullet-y",
    "kodu": "blok fenced code",
    "nagłówki": "H2/H3 proste rzeczowe"
  },
  "values": ["autonomia", "praktyczność", "szacunek dla czasu odbiorcy"],
  "thinking_model": "Zawsze: problem → co chcesz osiągnąć → minimalny krok praktyczny.",
  "audience_default": "freelancerzy, właściciele małych agencji, tech-ludzie"
}

7. Prompty analityczne: wydobywanie stylu z próbek

7.1 Analiza pojedynczej próbki → JSON

SYSTEM: Jesteś AnalitykStyluAI. Analizujesz styl pisania autora.
USER: Oto próbka tekstu oznaczona TAG={tag}.
Wypisz JSON wg schematu: voice, tone, tempo, długość zdań, słownictwo, formy retoryczne, ulubione struktury, słowa-klucze, zwroty powtarzalne, sygnatury, meta-komentarze.
Tekst:
"""
{{TEKST}}
"""

7.2 Analiza metryczna (bardziej surowa)

Policz i zwróć w JSON:
- liczba zdań
- średnia długość zdania (słowa)
- % zdań zaczynających się od spójników (np. A, I, Ale, Więc)
- % użycia 1. osoby (ja, mi, mnie)
- % 2. osoby (ty, Tobie)
- Emojis count
- Średnia liczba słów/akapity

7.3 Wykrywanie tonu i energii

Na podstawie próbki oceń poziom energii: niski / spokojny / dynamiczny / hype.
Przypisz 1–5: humor, bezpośredniość, konkret, emocjonalność.
Oddaj JSON.

8. Prompty syntezy: łączenie wielu analiz w jeden profil

8.1 Łączenie JSON-ów stylu

SYSTEM: Jesteś StyleSynth. Masz wiele analiz stylu autora.
USER: Połącz poniższe JSON-y w jeden spójny profil. Jeśli pola się różnią, wybierz najczęściej występujące lub oblicz średnią.
Zachowaj wszystkie sygnatury językowe.
JSON-y:
[[ ... tutaj lista JSON ... ]]

8.2 Wyciągnij reguły generowania tekstu

Na podstawie profilu stylu stwórz instrukcje dla modelu generującego tekst:
- Jak zaczynać teksty?
- Jak budować akapity?
- Jak kończyć (CTA / refleksja / pytanie)?
- Jakiego tonu używać?
- Jak unikać formalizmu?
Odpowiedź: Markdown checklist.

9. Prompty walidacyjne: czy AI naprawdę rozumie Twój styl?

Po zbudowaniu profilu stylu – test.

9.1 Test generacji A/B

  1. Poproś model o tekst w Twoim stylu.
  2. Poproś o ten sam tekst „neutralnie, bez stylu”.
  3. Porównaj.

Prompt:

Napisz krótki post (200 słów) o tym, jak automatyzacja oszczędza czas.
Wersja A: w moim stylu (patrz profil).
Wersja B: neutralna, korporacyjna.
Zwróć obie, oznacz A / B.

9.2 Samoocena modelu

Oceń swój wynik: w % zgodności ze stylem. Jeśli mniej niż 80%, wypisz co poprawić.

9.3 Kontrola preferencji

Czy w wygenerowanym tekście użyłeś długiego myślnika — ? Jeśli tak, popraw.

10. Budujemy pakiet stylu (plikowy)

Stwórz folder, np. lukasz-writer/:

lukasz-writer/
 ├─ style/
 │   ├─ lukasz_style.json
 │   ├─ copy_principles.json
 │   └─ audience_context.md
 ├─ examples/
 │   ├─ post_linkedin_01.md
 │   ├─ mail_klient_ux.md
 │   └─ blog_długi_case.md
 ├─ rules/
 │   └─ formatting.md  (np. bez myślnika —)
 └─ README.md

Te pliki załadujesz do OpenAI Assistants File Storage i podepniesz pod Asystenta.


11. Tworzenie Asystenta przez API (Assistants API) – krok po kroku

Poniżej przykład z użyciem curl. Możesz też użyć Python/JS SDK.

11.1 Upload plików stylu

curl -s -D >(grep -i x-request-id >&2) \
 -H "Authorization: Bearer $OPENAI_API_KEY" \
 -F "purpose=assistants" \
 -F "file=@style/lukasz_style.json" \
 https://api.openai.com/v1/files

Zapamiętaj id zwróconego pliku. Powtórz dla wszystkich plików.

11.2 Utwórz Asystenta

curl https://api.openai.com/v1/assistants \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer $OPENAI_API_KEY" \
 -d '{
   "model": "gpt-4o-mini",
   "name": "Lukasz Writer",
   "instructions": "Piszesz w stylu opisanym w dołączonych plikach. Krótkie zdania. Swobodnie. Bez myślnika —. Zawsze pytaj o kontekst odbiorcy, jeśli nie podano.",
   "tools": [],
   "file_ids": ["file-lukasz_style", "file-copy_principles", "file-audience_context"],
   "metadata": {"style_version": "2025-07-22"}
 }'

W odpowiedzi dostaniesz obiekt Asystenta z id – zapisz.

11.3 Utworzenie wątku i zadanie pytania

# Tworzymy wątek
THREAD=$(curl -s https://api.openai.com/v1/threads \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer $OPENAI_API_KEY" \
 -d '{"messages":[]}' | jq -r '.id')

# Dodaj wiadomość
curl -s https://api.openai.com/v1/threads/$THREAD/messages \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer $OPENAI_API_KEY" \
 -d '{
   "role":"user",
   "content":"Napisz post LinkedIn o tym, dlaczego małe agencje powinny dokumentować procesy. 150-220 słów. CTA na koniec."
 }'

# Uruchom asystenta
RUN=$(curl -s https://api.openai.com/v1/threads/$THREAD/runs \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer $OPENAI_API_KEY" \
 -d '{"assistant_id":"asst_lukasz_writer"}' | jq -r '.id')

# Polling wyniku
curl -s https://api.openai.com/v1/threads/$THREAD/messages \
 -H "Authorization: Bearer $OPENAI_API_KEY"

Uwaga: W modelu Assistants pliki są „znane” Asystentowi – może je cytować / używać jako kontekstu bez każdorazowego przesyłania ich w promptach.


12. Jak karmić asystenta zadaniami

12.1 Minimalny format zapytań

Podajesz:

  • Temat („Jak automatyzacja ratuje małe agencje przed chaosem”).
  • Format (post, mail, artykuł, skrypt video).
  • Długość (słowa, znak + tolerancja).
  • Odbiorca (freelancerzy B2B? kierownicy marketingu?).
  • Cel (edukacja, lead, sprzedaż, refleksja?).

Szablon

FORMAT: Post LinkedIn
CEL: Zaciekawić małych właścicieli agencji WordPress
DŁUGOŚĆ: 180-220 słów
STRUKTURA: Hook / Problem / 3 Lekcje / CTA Komentarz
TEMAT: Dokumentuj proces zanim zatrudnisz kolejną osobę.

12.2 Wymuszanie stylu w runtime (gdyby plik zaginął)

Pisz w stylu: swobodnie, krótkie zdania, bez myślnika —, ciepło, sarkastyczny błysk.

12.3 Multi-wersje

Wygeneruj 3 warianty. Oznacz: A/Test emocjonalny, B/Techniczny, C/Surowy.

13. Strategia iteracyjna: poprawiaj styl

  1. Generujesz 5 tekstów.
  2. Zaznaczasz fragmenty „to brzmi jak ja” vs „to AI”.
  3. Tworzysz plik style_refinements.md z feedbackiem:
    • Dodać więcej pytań retorycznych.
    • Mniej emoji.
    • Więcej przykładów z klientami PL.
  4. Update Asystenta: PATCH /assistants/{id} → nowe instructions + nowy plik.

Powtarzasz cykl co 2–4 tygodnie.


14. FAQ: najczęstsze problemy

AI pisze za formalnie → W instrukcji: „Unikaj formalnego języka. Jeśli tekst zaczyna brzmieć jak pismo urzędowe – przepisz bardziej po ludzku.”

Za długie zdania → Dodaj regułę: „Rozbij zdania >20 słów”.

Nie pyta o kontekst → W instrukcji głównej: „Jeśli odbiorca nieokreślony, zapytaj: ‘Dla kogo piszemy?’”.

Zjada polskie znaki → Sprawdź kodowanie wejścia / JSON UTF-8.

Przekracza długość → Użyj max_output_tokens lub sekcyjnego generowania.


15. Checklista gotowości / Pre-flight

☐ Mam min. 10 próbek w .md.
☐ Zanonimizowane dane klientów.
☐ Wyciągnięty profil stylu (JSON).
☐ Spisana lista wartości + persona odbiorcy.
☐ Pliki wrzucone do OpenAI Files.
☐ Asystent utworzony (id zapisane).
☐ Test: 3 tematy → wygenerowane 3 posty → subiektywna ocena >80% zgodności.
☐ Gotowe.


16. Załączniki

16.1 lukasz_style.json – szablon

{
  "style_version": "YYYY-MM-DD",
  "language": "pl",
  "voice": "Swobodny, konwersacyjny, z humorem i refleksją.",
  "tone_modifiers": ["krótkie zdania", "dynamiczne", "motywujące", "czasem sarkastyczne"],
  "values": ["autonomia", "efektywność", "autentyczność"],
  "avoid": ["język urzędowy", "przeładowane akapity", "myślnik —"],
  "format_defaults": {
    "paragraph_len": "1-4 zdania",
    "bullets": "tak, gdy listy praktyczne",
    "emoji": "oszczędnie"
  },
  "endings": ["CTA: napisz w komentarzu", "Refleksja: co Ty o tym myślisz?"],
  "thinking_model": "Zawsze najpierw cel odbiorcy, potem najmniejszy krok praktyczny."
}

16.2 Instrukcja główna dla Asystenta (wstaw do instructions przy tworzeniu)

Jesteś asystentem piszącym w stylu Łukasza.
Używaj stylu opisanego w dołączonym pliku lukasz_style.json.
Zanim napiszesz tekst, ustal: format, długość, odbiorcę, cel.
Krótko. Naturalnie. Jak rozmowa przy kawie.
Unikaj myślnika —. Jeśli zdania za długie – tnij.
Używaj przykładów z życia (projekty agencji, WordPress, automatyzacje). Możesz generować przykłady fikcyjne, ale realistyczne.
Jeśli nie ma danych, zadawaj pytania.
Zawsze kończ mini-CTA lub pytaniem do odbiorcy.

16.3 Curl: podgląd asystentów

curl -H "Authorization: Bearer $OPENAI_API_KEY" \
 https://api.openai.com/v1/assistants | jq '.'

16.4 Aktualizacja instrukcji

curl -X POST https://api.openai.com/v1/assistants/asst_lukasz_writer \
 -H "Authorization: Bearer $OPENAI_API_KEY" \
 -H "Content-Type: application/json" \
 -d '{
  "instructions": "[NOWE] ..."
}'

17. Twoje zadanie na start (zrób to teraz)

  1. Z folderu /projektów wybierz 10 tekstów, które są „najbardziej Ty”.
  2. Zrób plik CSV: nazwa, typ, ścieżka, słowa – żeby mieć porządek.
  3. Przeleć każdy promptem analitycznym (7.1) i zapisuj JSON.
  4. Zsyntezuj profil stylu.
  5. Stwórz asystenta.
  6. Zrób test: 3 tematy → wynik → oceniasz w skali 1–5 → dopisz poprawki.

Jak przejdziesz ten cykl raz, cała reszta to iteracje.

Zostaw swoje dane kontaktowe — napiszemy do Ciebie w ciągu 2 dni, aby umówić się na 30 minutową darmową konsulatację

Forma pierwszego kontaktu
Klikając przycisk, wyrażasz zgodę na przetwarzanie danych osobowych