# Strony internetowe dla RAG: zamień witryny w czysty, podzielny na chunki Markdown

> Zasilaj pipeline'y RAG stronami internetowymi: crawluj dokumentację do czystego Markdown i dziel według nagłówków. Od 0,07 USD/1K stron, bez KYC.

- URL: https://webreaderapi.com/pl/use-cases/rag/
- Ostatnia aktualizacja: 2026-10-22
- Wydawca: WebReaderAPI (https://webreaderapi.com)

Wyszukiwanie działa na tym, co wrzucisz do indeksu. Czysty Markdown z nagłówkami, metadanymi i źródłowym URL-em daje lepsze chunki, mniej zmarnowanych tokenów i odpowiedzi, które potrafią zacytować swoją stronę.

**Szybka odpowiedź — Jak wczytywać strony internetowe do pipeline'u RAG?**

Odczytaj każdą stronę jako Markdown jej głównej treści, podziel go wzdłuż nagłówków, dołącz źródłowy URL i tytuł do każdego chunka, a następnie zrób embedding i zapisz. **WebReaderAPI** zajmuje się odczytem: jedno zapytanie na stronę lub jedno zadanie crawlowania dla całej witryny do 10 000 stron, po jednym kredycie za stronę od 0,07 USD/1K stron według stanu na październik 2026. robots.txt jest respektowany. Bez KYC; płatność kryptowalutą.

## Wczytywanie do RAG z WebReaderAPI

| Atrybut | Wartość |
| --- | --- |
| Cała witryna | `POST https://webreaderapi.com/api/v1/crawl`: Crawling jednej witryny na zadanie, do 10 000 stron, zgodnie z jej sitemapą, jej robots.txt i jej Crawl-delay |
| Lista URL-i | `POST https://webreaderapi.com/api/v1/batch`: Do 100 URL-i na jedno zadanie wsadowe |
| Za stronę | Markdown głównej treści, tytuł, autor, data, język, liczba słów |
| PDF-y | Pliki PDF do 20 MB i 100 stron są konwertowane do Markdown, po 1 kredycie za każdy rozpoczęty blok 10 stron |
| Rozliczanie | 1 kredyt = 1 odczytana strona bez przeglądarki; 2 kredyty, gdy strona wymaga przeglądarki do wyrenderowania JavaScript. Zapytanie, które się nie powiedzie lub które zostanie odrzucone przez robots.txt witryny, nie jest obciążane opłatą |
| Cena | 14,25 USD za 50 000 stron; kredyty nigdy nie wygasają |

## Dlaczego czysty Markdown daje lepsze wyszukiwanie?

Chunki złożone z boilerplate'u wyszukują się źle. Gdy strona jest dzielona z menu, tekstem o cookies i stopką w środku, wiele chunków zawiera te same słowa nawigacji, a wyszukiwanie wektorowe zwraca je na niepowiązane pytania. Wyodrębnianie głównej treści usuwa ten szum przed zrobieniem embeddingu.

Nagłówki mają równie duże znaczenie. Chunk, który zaczyna się od `## Refund policy`, niesie ze sobą swój temat, więc zarówno embedding, jak i model czytający go później wiedzą, o czym jest. Czysty tekst gubi ten sygnał; surowy HTML ukrywa go pod znacznikami.

## Jak wygląda pipeline wczytywania?

Pięć kroków, niezależnie od tego, jakiego magazynu wektorów używasz:

1. **Zbierz adresy URL.** Przejdź przez crawling strony lub wyślij listę, którą już masz, jako batch.
2. **Czytaj jako Markdown.** Zostaw `main_content=true` dla artykułów i dokumentacji; użyj `false` dla stron listingowych.
3. **Dziel według nagłówków.** Tnij na `#`, `##` i `###`, a następnie skracaj długie sekcje do swojego limitu rozmiaru z niewielkim zakładkiem.
4. **Dołącz metadane.** Zapisuj `url`, `title`, `published_at` i ścieżkę nagłówków przy każdym chunku, żeby odpowiedzi mogły cytować swoje źródło.
5. **Odświeżaj.** Ponownie czytaj strony, których `lastmod` w sitemapie się zmienił, i usuwaj chunki stron, które teraz zwracają błąd.

*Python: czytaj strony i dziel je na chunki wraz ze źródłem*

```python
import os
import re

import requests

API = "https://webreaderapi.com/api/v1/read"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}
URLS = [
    "https://docs.example.com/getting-started",
    "https://docs.example.com/billing",
]


def chunks_for(url, max_len=2000):
    page = requests.get(API, headers=HEADERS, params={"url": url}, timeout=90).json()
    if "markdown" not in page:
        return []
    out = []
    for section in re.split(r"\n(?=#{1,3} )", page["markdown"]):
        section = section.strip()
        heading = section.splitlines()[0] if section else ""
        for start in range(0, len(section), max_len):
            out.append({
                "text": section[start:start + max_len],
                "url": page.get("final_url", url),
                "title": page.get("title"),
                "heading": heading,
            })
    return out


all_chunks = [c for u in URLS for c in chunks_for(u)]
print(len(all_chunks), "chunks ready to embed")

```

## Ile kosztuje zbudowanie i odświeżanie indeksu?

Zbudowanie kosztuje jeden kredyt za stronę, dwa za strony wymagające przeglądarki. Odświeżanie kosztuje tylko ponownie czytane strony. Trzy przykłady, według cen z października 2026:

- **Centrum pomocy produktu** liczące 800 stron, odświeżane miesięcznie dla zmienionych stron (około 10%): 800 kredytów raz, potem około 80 miesięcznie. 10 000 stron (3,75 USD) wystarczą na lata.
- **Dziesięć serwisów z dokumentacją** po 2 000 stron każdy, odświeżane co tydzień w 5%: 20 000 kredytów, potem około 4 000 miesięcznie. 50 000 stron (14,25 USD) pokrywają zbudowanie i siedem miesięcy odświeżeń.
- **Archiwum wiadomości** liczące 300 000 artykułów, które nigdy się nie zmieniają: 300 000 kredytów raz, co mieści się w 500 000 stron (50 USD).

Embeddingi i przechowywanie rozliczasz u własnych dostawców i nie są one wliczone w cenę.

## Czy mogę indeksować strony, które nie chcą być indeksowane?

Nie przez WebReaderAPI. Strony zabronione przez robots.txt dla naszego crawlera lub dla wszystkich robotów są pomijane i nie są naliczane; serwisy, które deklarują `Content-Signal: ai-input=no`, nie są dla Ciebie czytane. W przypadku własnych stron lub stron partnerów, które blokują roboty, poproś właściciela o zezwolenie `WebReaderAPI` w robots.txt; nasza [strona crawlera](https://webreaderapi.com/pl/bot/) pokazuje linie do dodania.

Ma to znaczenie także dla Twoich użytkowników. Asystent RAG, który cytuje źródła, jest bardziej użyteczny, gdy te źródła zgodziły się na odczyt.

## Który pakiet pasuje do projektu RAG?

Policz strony do zbudowania indeksu, dodaj miesięczne odświeżanie i wybierz pakiet, który pokryje kilka miesięcy. Kredyty nigdy nie wygasają.

| Plan | Ilość | Cena | Cena za jednostkę |
| --- | --- | --- | --- |
| Test | 10 000 stron | 3,75 USD | 0,38 USD/1K stron |
| Starter | 50 000 stron | 14,25 USD | 0,28 USD/1K stron |
| Build | 100 000 stron | 21,75 USD | 0,22 USD/1K stron |
| Scale | 500 000 stron | 50 USD | 0,10 USD/1K stron |

W każdym planie: Wyodrębnianie głównej treści · Renderowanie JavaScript, gdy potrzebne · Nieudane i odrzucone strony bez opłat · Kredyty nigdy nie wygasają

**Zanim zapłacisz**

- Minimalne doładowanie 25 USD. Doładuj raz kryptowalutą, a następnie kup dowolny plan ze swojego salda.
- Twoje saldo nie ma daty ważności i w każdej chwili możesz kupić za nie kredyty na strony. Jeśli pakiet kosztuje mniej niż minimalne doładowanie, kwotę, którą dodałeś wyłącznie, aby osiągnąć to minimum, można zwrócić na życzenie w ciągu 30 dni od płatności, w USDT lub USDC, pod warunkiem że jej nie wydałeś. Pozostałe saldo nie podlega zwrotowi, chyba że prawo stanowi inaczej.
- Zaksięgowane po sprawdzeniu Twojej płatności w blockchainie. Typowy czas potwierdzenia w sieci: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min

## Wprowadzanie danych do RAG: najczęstsze pytania

### Jakiego rozmiaru chunku powinienem używać?

Najpierw dziel według nagłówków, a potem skracaj sekcje dłuższe niż około 500 do 1 000 tokenów z niewielkim zakładkiem. Chunki oparte na nagłówkach zachowują jeden temat każdy, co zwykle daje lepsze wyniki wyszukiwania niż okna o stałym rozmiarze na całej stronie.

### Czy WebReaderAPI tworzy embeddingi lub przechowuje wektory?

Nie. WebReaderAPI czyta strony i zwraca Markdown z metadanymi. Embeddingi tworzysz modelu swojego wyboru i przechowujesz we własnej bazie danych wektorów; [strona LangChain i LlamaIndex](https://webreaderapi.com/pl/docs/langchain/) pokazuje jedno i drugie.

### Jak utrzymać indeks w aktualnym stanie?

Ponownie czytaj tylko strony, które się zmieniły. Większość sitemap zawiera datę `lastmod` dla każdego adresu URL; porównaj ją z ostatnim odczytem i wyślij zmienione adresy URL jako batch. Strony, które teraz zwracają błąd, należy usunąć z indeksu.

### Czy mogę uwzględnić pliki PDF z tej samej strony?

Tak. Crawling czyta linki do PDF w tej samej domenie z tymi samymi sprawdzeniami robots.txt. Pliki PDF do 20 MB i 100 stron są konwertowane do Markdown, po 1 kredycie za każdy rozpoczęty blok 10 stron.

---

WebReaderAPI: WebReaderAPI to API czytnika stron internetowych dla agentów AI, które zamienia każdą publiczną stronę internetową w czysty Markdown, z płatnością kryptowalutą i bez przesyłania dokumentów tożsamości. Przedpłacone kredyty od 0,07 USD/1K stron nigdy nie wygasają, a robots.txt jest respektowany. Bez KYC — bez dowodu, bez selfie, bez dokumentów. Płatność kryptowalutą.
