Contextator
ENTR

Kaynaklar

Dokümantasyon Sitesi Kaynağı

Herkese açık bir sitenin sitemap'ini, llms.txt'ini ya da bir crawl'ını indekslemek — algılama, beş tavan, robots.txt ve tazelik kontrolü.

Güncelleme:

Herkese açık bir dokümantasyon sitesini kendi sitemap’i, kendi llms.txt’i ya da onu tek bir giriş noktasından crawl ederek indeksleyin — oturum açma yok, kimlik bilgisi yok, hedefe hiçbir şey kurulmuyor.

Bir tane eklemek

Add source → Documentation site

Alan Notlar
Name Mount öneki. Değiştirilemez
Entry point Bir sitemap.xml, bir llms.txt, ya da crawl’ın başlayacağı sıradan bir sayfa
Entry format Varsayılan olarak Detect from the document. Algılama reddettiğinde elle ayarlayın — sitemap, llms.txt ya da crawl
Index now Kaynak kaydedilir kaydedilmez bir çalıştırmayı kuyruğa alır

Giriş noktasını çekmek, üç formattan hangisi olduğunu algılamak ve ne bulunduğunu bildirmek için Test connection’a basın — bir sitemap’ten bir sayfa sayısı, llms.txt’ten bir link sayısı ya da bir crawl için başlangıç sayfasının kendisinin sunduğu link sayısı.

Giriş noktası ne olabilir

Contextator, verdiğiniz URL’deki belgeyi okur, uzantısını değil, bu yüzden üçü de herhangi bir yolda çalışır:

  • sitemap.xml — her <loc> çekilecek bir sayfadır. Başka sitemap’lere işaret eden bir <sitemapindex>, WEB_MAX_DEPTH kadar derine ve en fazla WEB_MAX_PAGES iç içe sitemap okunacak şekilde otomatik olarak izlenir.
  • llms.txt — bir sitenin LLM tarafından okunabilir bir indeksi için gelişmekte olan konvansiyon. Sayfadaki her Markdown linki çekilecek bir sayfadır.
  • Tek bir sayfa — bunların dışındaki her şey bir crawl başlatır: o URL’den genişlik öncelikli, onun host’unu paylaşan ve onun yolunun altında kalan linkleri izleyerek.

Algılama, URL’yi değil belgeyi okur. Giriş noktasındaki belge üçünden hiçbirine uymadığında — bir landing page’e yönlendiren bir sitemap, HTML olarak sunulan bir llms.txt — kaynak tahmin etmek yerine reddeder ve Entry format alanını adlandırır, çünkü tahmin etmek, bir sayfayı ya da hiçbir sayfayı indekslemeyen ve yine de başarı bildiren bir kaynak üretir. Bu durumda Entry format’ı elle ayarlayın: bu, yalnızca algılananın bir göstergesi değil, çalışan bir geçersiz kılmadır.

Beş tavan

Bir crawl, hepsi örnek genelinde ortam değişkeni olan beş sınırla sınırlıdır — kaynak başına geçersiz kılma yoktur:

Tavan Değişken Varsayılan
Kaynak başına sayfa WEB_MAX_PAGES 1000
Giriş noktasından link derinliği WEB_MAX_DEPTH 10
İstekler arası gecikme WEB_REQUEST_DELAY_MS 500
Toplam crawl zaman bütçesi WEB_CRAWL_BUDGET_MS 900000 (15 dakika)
robots.txt’e uy WEB_RESPECT_ROBOTS 1 (açık)

Bir tavana çarpmak, senkronizasyonu başarısız kılmak yerine crawl’ı olduğu yerde bitirir — kaynak, ulaştığı sayfaları indeksler ve çalıştırma hangi sınırın onu durdurduğunu söyler. Beşi de .env içindeki, ürünle gelen .env.example’de listelenen, örnek genelindeki WEB_* değişkenleridir — ulaşılan bir tavan için, değişkenlerden birini yükseltmeden önce giriş noktasını daraltmak ya da siteyi birden çok kaynağa bölmek daha iyi bir çözümdür.

WEB_MAX_PAGES indekslenen sayfaları değil, getirilen sayfaları sayar, bilerek: metni yalnızca script’lerinde olduğu için reddedilen bir sayfa, eskimiş bir sitemap bağlantısından gelen bir 404 ya da başarısız bir bağlantı yine de birinin web sunucusu tarafından sunulmuştur, bu yüzden burada hiç kimsenin hesabı olmadığı bir host’u korumak için var olan tek ayara sayılır. Hiç istenmeyen bir URL hiçbir zaman sayılmaz — bir robots.txt reddi ya da başka bir host’ta duran bir bağlantı, süreçten hiçbir şey çıkmadan yerel olarak alınan bir karardır.

robots.txt

Varsayılan olarak uyulur (WEB_RESPECT_ROBOTS=1):

  • Bir Crawl-delay yönergesi, hızı yalnızca WEB_REQUEST_DELAY_MS’in üzerine çıkarabilir — onu düşüremez.
  • robots.txt’in 404 yanıtı vermesi kısıtlama yok olarak okunur — crawl devam eder.
  • robots.txt’in hiç yüklenememesi — bir 5xx ya da bir bağlantı hatası — kuralları okunamayan bir siteyi crawl’lamak yerine senkronizasyonu başarısız kılar.

Headless bir tarayıcı yoktur: HTML yanıtında bulunmak yerine içeriği istemci tarafı JavaScript’le render edilen bir sayfa, tıpkı render edilemeyen bir dosyanın başka herhangi bir kaynakta olduğu gibi, adıyla reddedilir.

Bir sayfa neye dönüşür

Çekilen her sayfa, başka herhangi bir kaynaktan gelen bir .html dosyasının geçtiği aynı HTML→Markdown dönüşümünden geçer — bkz. İçerik Türleri. URL, belgenin yolu olur: uzantıyı, URL’nin bittiği sonek değil, yanıtın içerik türü belirler, ve bir query string atılmak yerine yolun içine hash’lenir, bu yüzden yalnızca query string’i farklı iki URL çakışmaz.

Nasıl taze tutulur

Yalnızca bir sitemap.xml kaynağı ucuz bir tazelik kontrolü alır: iki istek, önce robots.txt sonra sitemap’in kendisi, giriş sayısını ve en yeni <lastmod> tarihini son çalıştırmayla karşılaştırır. İkisi de değişmediyse hiçbir şey yeniden çekilmez. Hiç <lastmod> taşımayan bir sitemap’in karşılaştıracak hiçbir şeyi yoktur, bu yüzden aşağıdaki diğer iki biçim gibi her çalıştırmada baştan sona yeniden çekilir.

llms.txt ve crawl kaynaklarının ucuzca kontrol edilebilecek eşdeğer bir sinyali yoktur, bu yüzden her zamanlanmış çalıştırma, aynı beş tavan içinde kaynağı baştan sona yeniden çeker. Programın kendisinin nasıl ayarlandığı için bkz. İndeksleme.

Sık karşılaşılan sorunlar

Belirti Neden ve çözüm
Kaynak reddediyor ve Entry format’ı adlandırıyor Algılama, giriş noktasının ne olduğunu söyleyemedi — bir landing page’e yönlendiren bir sitemap, HTML olarak sunulan bir llms.txt. Formatı elle ayarlayın
İndeksten bir sayfa eksik WEB_MAX_PAGES ya da WEB_MAX_DEPTH’in ötesinde kalıyor, robots.txt tarafından dışlandı ya da içeriğini istemci tarafı JavaScript’le render ediyor
Çalıştırma bir tavanda durdu Kaynağın satırı hangisini adlandırır — sayfa, derinlik ya da zaman bütçesi. Ayarı yükseltmeden önce giriş noktasını daraltın ya da siteyi kaynaklara bölün
Senkronizasyon robots.txt’te başarısız oldu Hiç okunamadı (5xx ya da bir bağlantı hatası), bu bir izin olarak sayılmaz. Bir 404 sorun olmazdı
Bir sayfa served as …, which is not a page this source can read diyerek reddediliyor Host, bu kaynağın okumadığı bir içerik türü gönderiyor — bir .md dosyasında application/octet-stream yaygın olanıdır. Yalnızca HTML, Markdown ve düz metin okunur
Senkronizasyon başarısız oluyor ve mevcut belgeleri silmeyi reddettiğini söylüyor Çalıştırma, kaynak zaten belge tutarken hiçbir şey indekslemedi — bir CDN’in kısa süreliğine bir landing page ile yanıtladığı bir sitemap, yeniden adlandırılmış bir llms.txt. Belgeler, kaybolmuş sayılıp silinmek yerine tutulur; giriş noktasını kontrol edin, sonra yeniden senkronize edin

Gezinmek için ok tuşları, açmak için Enter.