Crawlery OpenAI: GPTBot, OAI-SearchBot i ChatGPT-User
OpenAI używa GPTBot do zbierania treści, które mogą posłużyć do trenowania modeli, OAI-SearchBot do indeksowania stron na potrzeby wyszukiwania ChatGPT i ChatGPT-User do wizyt, o które prosi człowiek. Zablokowanie GPTBot wyłącza tylko trenowanie. Zablokowanie OAI-SearchBot usuwa Cię z odpowiedzi wyszukiwania ChatGPT. Reguły robots.txt mogą nie obowiązywać ChatGPT-User.
Trzy różne user agenty jednej firmy, każdy z własnym tokenem robots.txt, powodują sporo zamieszania. Wiele witryn zablokowało GPTBot, gdy się pojawił, a część odkryła później, że przy okazji zablokowała crawlera, który decyduje, czy ChatGPT może je cytować, często przez zbyt szeroką regułę firewalla. W tym artykule każdy agent jest omówiony na podstawie dokumentacji OpenAI.
Na tej stronie
Co robi GPTBot
GPTBot zbiera treści, które mogą być używane do trenowania generatywnych modeli bazowych OpenAI. Dokumentacja OpenAI mówi, że zablokowanie GPTBot oznacza, iż treści witryny nie powinny być używane do trenowania tych modeli.
Jego user agent zawiera token GPTBot, na przykład Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot. OpenAI zaznacza, że numer wersji może się zmieniać, więc dopasowuj token, a nie cały ciąg. Zakresy adresów IP OpenAI publikuje pod openai.com/gptbot.json.
Czy go dopuścić, to kwestia Twojej polityki. Jedni wydawcy chcą, by ich treści trafiały do danych treningowych, inni nie. Zablokowanie nie wpływa na wyszukiwanie ChatGPT, bo to inny crawler. Jeśli zmienisz zdanie, wystarczy usunąć wiersz Disallow; nic nie trzeba rejestrować ani zgłaszać.
Co robi OAI-SearchBot
OAI-SearchBot to crawler wyszukiwarki OpenAI. Pokazuje strony w funkcjach wyszukiwania ChatGPT. OpenAI pisze wprost, że witryny, które zrezygnowały z OAI-SearchBot, nie będą pokazywane w odpowiedziach wyszukiwania ChatGPT.
Jeśli chcesz, by ChatGPT cytował Twoje strony, ten crawler trzeba dopuścić zarówno w robots.txt, jak i w firewallu. Jego zakresy IP są opublikowane pod openai.com/searchbot.json, dzięki czemu firewall może zweryfikować, że żądanie naprawdę pochodzi od OpenAI.
Co robi ChatGPT-User
ChatGPT-User nie jest crawlerem w zwykłym sensie. Pobiera stronę, gdy prosi o to użytkownik ChatGPT lub Custom GPT, na przykład gdy ktoś wklei Twój adres URL do czatu i poprosi o streszczenie. OpenAI podaje, że nie służy do automatycznego przeszukiwania sieci.
Z dokumentacji OpenAI ważne są tu dwa szczegóły. Po pierwsze, ponieważ te działania inicjuje użytkownik, reguły robots.txt mogą nie obowiązywać. Po drugie, ChatGPT-User nie służy do ustalania, czy treść może pojawić się w wyszukiwarce. W wyszukiwaniu liczy się ustawienie OAI-SearchBot.
Co się stanie po zablokowaniu każdego z nich
- Zablokowanie
GPTBot: Twoje treści są oznaczone jako niewykorzystywane do trenowania. Wyszukiwanie ChatGPT nadal może Cię pokazywać i cytować, jeśliOAI-SearchBotjest dopuszczony. - Zablokowanie
OAI-SearchBot: Twoje strony nie będą pokazywane w odpowiedziach wyszukiwania ChatGPT. Trenowaniem osobno sterujeGPTBot. - Zablokowanie
ChatGPT-Userw robots.txt: OpenAI podaje, że robots.txt może nie obowiązywać przy takich wizytach, więc efekt nie jest pewny. Blokada na poziomie firewalla zatrzymuje pobranie, a użytkownicy, którzy wkleją Twój link, dostaną błąd zamiast Twojej treści. - Zablokowanie wszystkich trzech na poziomie firewalla: ChatGPT nie może ani indeksować, ani pobierać Twoich stron, więc nie ma czego od Ciebie cytować.
- Dopuszczenie wszystkich trzech: strony mogą być indeksowane na potrzeby wyszukiwania, pobierane na żądanie i, przez
GPTBot, używane do trenowania.
OpenAI zaznacza też, że gdy dopuszczone są zarówno GPTBot, jak i OAI-SearchBot, firma może wykorzystać wyniki jednego przeszukania do obu celów, by nie przeszukiwać witryny dwa razy.
Jakiego robots.txt używać dla crawlerów OpenAI
W przypadku większości witryn, które chcą pojawiać się w odpowiedziach ChatGPT, warto dopuścić crawlera wyszukiwarki, a o trenowaniu zdecydować osobno. Ten plik dopuszcza wyszukiwanie i wyłącza trenowanie:
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Disallow: /
User-agent: *
Allow: /
Disallow: /admin/
Zwróć uwagę na szczegół RFC 9309: crawler stosuje się do grupy, w której jest wymieniony, i ignoruje grupę *. W powyższym przykładzie OAI-SearchBot miałby dostęp do /admin/, bo jego własna grupa nie zawiera wiersza Disallow: /admin/. Powtarzaj ścieżki, które mają pozostać prywatne, w każdej nazwanej grupie. OpenAI podaje, że zmiany dotyczące wyszukiwania mogą zacząć działać po około 24 godzinach.
Jak sprawdzić, czy firewall ich przepuszcza
robots.txt określa tylko Twoją politykę. To, co faktycznie dostaje każde żądanie, zależy od firewalla lub CDN. Pobierz stronę z user agentem każdego crawlera i porównaj kod odpowiedzi oraz rozmiar treści z żądaniem z przeglądarki. Jeśli crawler dostaje 403, 429 lub stronę weryfikacji, a przeglądarka zwykłą stronę, firewall nadpisuje Twój robots.txt.
AISeeWhy wykonuje to porównanie od razu dla wszystkich trzech agentów OpenAI, blokady OAI-SearchBot i ChatGPT-User oznacza jako P1, bo kosztują one cytowania, a zablokowany GPTBot pokazuje jako P3, czyli wybór polityki, a nie błąd.
Najczęstsze pytania
Czy GPTBot to to samo co ChatGPT?
Nie. GPTBot to crawler zbierający dane treningowe. Wyszukiwanie ChatGPT korzysta z OAI-SearchBot, a wizyty na żywo na prośbę użytkowników pochodzą od ChatGPT-User.
Czy mogę dopuścić wyszukiwanie ChatGPT, a zablokować trenowanie?
Tak. Dopuść OAI-SearchBot i zablokuj GPTBot w robots.txt. OpenAI opisuje te dwa ustawienia jako niezależne.
Czy powinienem blokować OpenAI według adresu IP?
Blokada po IP uniemożliwia crawlerowi przeczytanie Twojego robots.txt i utrudnia zmianę polityki. Zazwyczaj lepiej określić politykę w robots.txt, a opublikowanych zakresów IP używać do weryfikacji crawlerów OpenAI, a nie do ich blokowania.
Dlaczego dopasowywać token, a nie pełny user agent?
OpenAI podaje, że numer wersji w jego user agentach może się zmieniać, a publikowane przykładowe ciągi różnią się między crawlerami. Reguły dopasowujące GPTBot lub OAI-SearchBot działają dalej po aktualizacji, a reguły dopasowujące dokładny ciąg mogą niepostrzeżenie przestać działać.