Czy publikuje się bez tego, by ktoś widział tekst?
Tak, jeśli tak wybierzecie — i nie, jeśli nie. Silnik może działać całkowicie automatycznie, a w tym trybie artykuł, który przejdzie oba poziomy bramy, trafia do publikacji bez tego, by ktoś go przeczytał. Ale brama nie jest dekoracyjna: odrzuci artykuł za brak pola nagłówka, za 1.199 słów zamiast 1.200, albo za jedną jedyną frazę z czarnej listy. A jeśli wolicie, by każdy artykuł przechodził przez parę oczu, automatyczna publikacja zostaje wyłączona i wszystko zatrzymuje się do etapu weryfikacji, z sygnałami widocznymi od razu. Nasza rekomendacja na początek to druga opcja, aż sygnały staną się nudne.
Co się dzieje, gdy model pomyli fakt?
To zależy od rodzaju faktu i warto uczciwie powiedzieć, że nie wszystkie błędy są wychwytywane. Wychwytywane są: nazwa klienta podana bez dowodu zgody, zmyślona statystyka w rodzaju procentu dostępności bez pomiaru, stwierdzenie, które mogłoby sugerować, że posiadamy narzędzie, które tylko integrujemy, nagroda, której nie ma na liście rzeczywistych. Nie są wychwytywane: błędna data kalendarzowa z zewnętrznej wiadomości albo techniczne stwierdzenie o produkcie strony trzeciej, które brzmi wiarygodnie. Dla takich rzeczy nie ma innego strażnika niż człowiek, dlatego każdy artykuł zachowuje w nagłówku źródła, z których wyszedł — weryfikacja pozostaje możliwa po publikacji, a korekta jest commitem.
Jak zatrzymuje się przepływ?
Na trzy sposoby, w kolejności szybkości. Zatrzymanie timera systemowego — jutro nic już nie startuje. Wyczyszczenie zmiennej trzymającej klucz publikacji — silnik pisze i weryfikuje, ale powiadomienie wyszukiwarek jest pomijane z ostrzeżeniem w dzienniku. I uruchomienie w trybie suchym, które zatrzymuje się po wyborze tematów i niczego nie generuje. Dodatkowo pojedyncze uruchomienie ma limit czasu w jednostce usługi, najpierw z łagodnym sygnałem, a potem z wymuszonym zatrzymaniem.
Czy silnik działa teraz, na serwerze?
Nie możemy potwierdzić tego z zewnątrz i nie będziemy tego twierdzić. To, co możemy pokazać, to kod, jednostka usługi, timer, procedura instalacji i dzienniki uruchomień, które mamy. Jedyny pełny przebieg w dziennikach był na stacji roboczej, nie na serwerze — widać to po ścieżkach plików — i trwał dwie i pół godziny, czyli ponad limit 60 minut w jednostce systemd. Jeśli interesuje was dzisiejszy stan naszej instalacji, zapytajcie, a sprawdzimy razem. Wolimy takie pytanie niż „tak”, które okazuje się fałszywe.
Ile artykułów zostało dotąd opublikowanych?
Z naszych dzienników: zero. Pełne uruchomienie zebrało 24 tematy, zachowało 18 po ocenie, wybrało 3, napisało 3 artykuły i 57 tłumaczeń — a bramka zatrzymała wszystkie trzy. Dwa dlatego, że druga weryfikacja w ogóle nie mogła się uruchomić, jeden z powodu brakującego pola w nagłówku, mimo że miał 2.478 słów, więc z dużym zapasem przekroczył próg długości. Publikacja nie została wywołana, wyszukiwarki nie dostały żadnego adresu. Moglibyśmy wam tego nie mówić. Mówimy, bo to dokładnie demonstracja, której potrzebuje usługa: bramka naprawdę zatrzymuje.
To nie „treść AI”, która psuje pozycjonowanie w wyszukiwarce?
Właściwe pytanie nie brzmi, kto napisał, tylko czy tekst odpowiada na coś, czego ktoś rzeczywiście szuka, i czy da się to zweryfikować. Dlatego progi w bramce są ustawione na rzeczy, które korelują z użytecznością, a nie ze stylem: minimalna długość, struktura z podtytułami, linki wewnętrzne do istniejących stron, sekcja pytań. I dlatego czarna lista zawiera dokładnie te wyrażenia, które sygnalizują tekst napisany po to, by wypełnić miejsce. Tego, czego nie obiecujemy, to konkretnej pozycji w wynikach — to zależy od wielu rzeczy, które nie zależą od nas.
Ile kosztuje jedno uruchomienie?
Koszt się mierzy, a nie szacuje: każde wywołanie modelu zlicza tokeny wejściowe i wyjściowe, a dzienny raport podaje sumę rozbitą według modelu, wraz z liczbą wywołań. Przy próbnym uruchomieniu z naszych dzienników: 24 wywołania na modelu tańszym. Przy pełnym uruchomieniu z trzema artykułami i 57 tłumaczeniami: 32 wywołania, z czego 3 na modelu droższym — to one odpowiadały za największą część kosztu. Model używany na każdym etapie jest zmienną środowiskową, więc można obniżyć etap do tańszego modelu bez ruszania kodu. Kwota w pieniądzach zależy od wybranych modeli i ich stawek w momencie uruchomienia.
W jakich językach pisze i co dzieje się z terminami marek?
Źródłem jest rumuński, a cele to dziewiętnaście języków — angielski, rosyjski, ukraiński, polski, niemiecki, włoski, francuski, hiszpański, niderlandzki, arabski, turecki, hebrajski, hindi, japoński, koreański, indonezyjski, chiński uproszczony, portugalski brazylijski i czeski. Przy każdym języku w konfiguracji jest zapisany powód, dla którego się tam znajduje. Terminy marek i techniczne są w glosariuszu i pozostają nieprzetłumaczone, także w arabskim, hebrajskim i pismach azjatyckich, gdzie reguła jest wyraźna: pozostają w alfabecie łacińskim. Adresów linków wewnętrznych nigdy się nie lokalizuje.
Co nie jest gotowe z tego, co opisaliście?
Trzy rzeczy, powiedziane teraz, żebyście nie odkrywali ich sami. Własna dokumentacja miejscami wyprzedziła kod — komentarz na początku etapu notowania wspomina model, który nie jest już tym wywoływanym, a rejestr źródeł opisuje większy zestaw kanałów RSS niż ten z listy. Po drugie: dwa ze źródeł wpisanych do rejestru są oznaczone jako aktywne, ale ich pobieracz nie jest wywoływany w funkcji, która zbiera wszystko, więc dziś nic nie wnoszą. Po trzecie: pełne uruchomienie z dzienników przekroczyło limit czasu w jednostce usługi, co oznacza, że na serwerze, przy obecnych ustawieniach, zostałoby przerwane w połowie — limit trzeba podnieść albo dzienny pakiet zmniejszyć przed automatycznym uruchomieniem.