W jaki sposób robię research materiałów do swojego newslettera?
Posługuję się między innymi RSS-ami, ale nie tak jak myślisz 🤓
Pełen workflow 🧵 ↓
Jako backend do obsługi RSS-ów używam serwisu Feedly.
Dlaczego nazywam to "backendem", a nie po prostu "czytnikiem"?
Bo nie czytam w tej aplikacji niczego i loguję się tam przeważnie raz na kilka miesięcy. Mam tam zbyt wielki śmietnik, aby to okiełznać 😉
Do wydobywania artykułów z Feedly wykorzystuję aplikację MAKE.
Prosty scenariusz składający się z dosłownie kilku kroków sprawdza, czy nowe artykuły, które pojawiły się w RSS-ach, pasują do moich zainteresowań i do tematyki, która interesuje moich czytelników.
Scenariusz w Make, wykonujący się regularnie, co 3 godziny, zwraca tylko nowe wpisy (z limitem ustawionym na 20 wpisów).
Wszystkie wyciągnięte tak artykuły scalam w jednego, długiego JSON-a.
Struktura to tablica:
[{"title":"aaa", "description":"bbb","url":ccc"}, ...]
Tak zbudowany JSON trafia do LLM-a (AI).
W moim przypadku jest to llama-3-sonar-large-32k-chat uruchamiany na infrastrukturze od Perplexity.
Model wybrałem doświadczalnie i w Twoim przypadku może sprawdzić się inny.
Model AI otrzymuję instrukcję (to parafraza, a nie cytat!):
"Za chwilę otrzymasz JSON-a z tytułami i opisami artykułów. Zostaw w nim tylko to, co lubię i koniecznie pozbądź się tego, co mnie denerwuje. Oto lista moich preferencji:
- lubię tutoriale
- nie chcę newsów o XYZ"
Wiadomo, że zapytanie jest bardziej rozbudowane, ale chcę pokazać konstrukcję.
Prompt zawiera oczywiście jeszcze informację o konieczności zwrócenia odpowiedzi bez formatowania, bez komentarzy i w formacie JSON.
Niestety, nie każdy model radzi sobie dobrze z budową JSON-a.
Tak przygotowany i odfiltrowany plik JSON nadal jest parsowany w Make.
Rekord po rekordzie wrzucam wszystkie pozostałe w nim artykuły do aplikacji Raindrop (coś jak Pocket/Instapaper).
Dzięki temu zabiegowi, w aplikacji mam tylko potencjalnie interesujące artykuły.
Kolejny krok to już po prostu czytanie tego, co udało mi się zebrać i wyławiania z trzycyfrowej liczby adresów URL około 30-35 subiektywnie najlepszych.
Przeważnie trwa to z 6-8 godzin — zależnie od dnia.
Kiedyś otrzymałem komentarz "jeśli musisz filtrować RSS-y, to znaczy, że obserwujesz złe feedy!". Oczywiście możesz tak powiedzieć, jeśli obserwujesz 3-4 źródła i 100% artykułów z nich Cię interesuje.
Niestety, istnieją portale, które dziennie produkują po 30-50 wpisów w RSS 😱
Przy dostatecznie dużej skali, automatyzacja filtrowania to coś, bez czego nie wyobrażam sobie pracy.
Oczywiście, niektóre z czytników mają wbudowane filtrowanie po słowach kluczowych, ale to niestety nie wystarcza i powoduje spore zamieszanie.
Przykładowo: chcesz się pozbyć wszystkich newsów o Facebooku, więc do listy zakazanych słow dodajesz "facebook", a tymczasem nagłówki w RSS, to:
- portal Zuckerberga znów ma kłopoty
- niebieska społecznościówka zakazana na Madagaskarze?
LLM ogarnie to bez problemu.
Sztuczna inteligencja jest tutaj przeze mnie używana w celu zrozumienia potencjalnego sensu artykułu (wiadomo, czasami przeleci jakiś clickbait), a nie do wyszukiwania keywordsów, bo to dałoby się zrobić znacznie prościej.
To, co opisałem to oczywiście tylko pewna część pracy, którą wykonuję. Pominąłem czytanie kilkudziesięciu newsletterów, skanowanie subredditów, czy współpracę z zewnętrznym dostawcą treści zatrudnionym na moje potrzeby.