Feature request: opt-in crawl source receipt for RAG ingestion
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- python
- Ambito
- backend-api-design
Direzione di ricerca
Start with crawl4ai/models.py, especially the CrawlResult fields, then trace cache metadata and Docker API serialization. Define the receipt's URL, fetch-time, output-kind, digest, configuration fingerprint, cache, and outcome semantics without exposing secrets. Done means fresh, redirected, cache-hit, raw/fit, changed-configuration, serialization, secret-exclusion, and failed/partial-crawl tests satisfy the acceptance criteria while the default response remains compatible.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem / use case
Crawl4AI is positioned as a web-to-Markdown input for RAG and agent data pipelines. A typical ingestion job needs to answer three questions for every stored document: which source and crawl produced it, did the usable text actually change, and can the same processed artifact be traced later? Those answers drive re-embedding cost, stale-document replacement, and source attribution in downstream answers.
Today CrawlResult already exposes useful pieces such as url, redirected_url, response_headers, cached_at, cache_status, and Markdown (current model). The cache also has internal content hashes. But the result does not provide one documented, serialization-friendly record tying the selected output text to a stable digest, its actual fetch time, and its source. Every RAG integrator must assemble this independently, and a cache hit can otherwise be mistaken for a fresh fetch.
Proposed module: optional crawl source receipt
Add an opt-in, small source_receipt attached to each successful CrawlResult (and available through the Docker API serialization). Suggested fields:
- Requested URL and final URL, reusing existing redirect information.
fetched_at: time the underlying page was fetched; on a cache hit preserve the original fetch time. Optionally includeserved_atseparately.- Output kind (
raw_markdownorfit_markdown) and a versioned SHA-256 digest of the exact UTF-8 text returned for that kind. Make the normalization/encoding rule explicit. An unchanged digest lets an ingestion job skip embedding; a changed digest triggers replacement. - Crawl4AI version and a fingerprint of content-affecting, non-secret processing options, so a changed extraction configuration does not look like unchanged content.
- Existing cache status, and a clear distinction between successful extraction and fallback/partial output.
The default path can remain unchanged, with receipt generation behind a config flag. Please exclude cookies, Authorization headers, tokens, proxy credentials, and arbitrary response headers from the receipt/fingerprint. Consumers can retain the receipt next to their vector-store document ID; this does not require Crawl4AI to own a vector store or scheduler.
Acceptance criteria
- Fresh crawl, redirect, and cache-hit examples show accurate URL and fetch-time semantics.
- Identical selected Markdown + processing configuration yields the same digest; a text or relevant configuration change changes it.
- Raw and fit Markdown cannot accidentally share a digest namespace.
- Library and Docker API outputs serialize the receipt consistently; existing responses remain compatible when the option is off.
- Tests cover secret exclusion and a failed/partial crawl.
I checked main and develop result fields, the roadmap, and issue/PR searches for provenance, source lineage, content fingerprints, and crawl manifests. I found a planned incremental embedding index in the roadmap, but not this per-crawl receipt. The receipt could serve that later index while remaining useful to external ingestion pipelines.
- Lingua principale
- Python
- Stelle
- 85.4k
- Fork
- 8.9k
- Merge medio
- 5g 13h
- PR unite (30g)
- 28
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di unclecode/crawl4ai
-
[Bug]: crwl always bypasses the cache, -c cache_mode=enabled is ignoredForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta🐞 Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: whitespace-only inline elements are removed from cleaned_html, merging words in raw_markdown (prose, not only <pre>/<code>)Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta⚙ Done 🐞 Bug 🥸 - Medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
unclecode/crawl4ai#2328 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: HTTP crawler puts proxy credentials into the URL unencodedForse di nuovo libera @omarbounawarapy l’ha presa 12 giorni fa e non c’è nessuna pull request aperta. Aperta⚙ Done 🐞 Bug 🥸 - Medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
unclecode/crawl4ai#2326 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: Same PDF gives different markdown on each run when batch_size > 1 (threads share current_page_number)Forse già presa @Kylinny l’ha presa 14 giorni fa. Aperta⚙ Done 🐞 Bug 🥸 - Medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
unclecode/crawl4ai#2319 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: Reusing BFSDeepCrawlStrategy leaks the previous crawl's max_pages budget into a fresh runForse di nuovo libera @nightcityblade l’ha presa 14 giorni fa e non c’è nessuna pull request aperta. Aperta⚙ Done 🐞 Bug 📌 Root caused 🥸 - Medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
unclecode/crawl4ai#2309 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di unclecode/crawl4ai
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Deltares/imod-python#1940 ·
I maintainer di solito rispondono entro 1 giorno
-
effort: low prio: low ready
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
digitalfabrik/integreat-cms#4621 ·
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
ioos/compliance-checker#1375 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno