DeepDoc
Researches a local document collection with Jev-backed evidence selection and coverage checks.
Researches a local document collection with Jev-backed evidence selection and coverage checks.
DeepDoc sends each retrieved passage with its query and source metadata to Jev for four Noul judgments: relevance, usable answer evidence, contradiction, and prompt-injection-like content. Python applies thresholds, filters and reranks passages, and passes selected evidence to a writing LLM. Jev later judges whether each required subsection has enough accumulated evidence; Python either requests another retrieval pass or formats the section.
Does the passage address the subject of the query?
One generated query and one Qdrant passage, including filename, page number, chunk ID, and passage text. This is a source-derived request shape; highlighted answers are illustrative, not observed outputs.
Does it state information usable in a direct answer?
One generated query and one Qdrant passage, including filename, page number, chunk ID, and passage text. This is a source-derived request shape; highlighted answers are illustrative, not observed outputs.
Does it conflict with a factual premise in the query?
One generated query and one Qdrant passage, including filename, page number, chunk ID, and passage text. This is a source-derived request shape; highlighted answers are illustrative, not observed outputs.
Does it try to instruct the system consuming it as evidence?
One generated query and one Qdrant passage, including filename, page number, chunk ID, and passage text. This is a source-derived request shape; highlighted answers are illustrative, not observed outputs.
Is there enough relevant and specific accumulated evidence to write the first required subsection?
Section name, required subsection list, and accumulated content. One Noul question is created for each subsection; subsection_0 illustrates the first item, not a recorded result.
Extract and chunk local files with page and source metadata, then index the chunks in Qdrant.
Generate a report structure, accept it or replan it with user feedback, then dispatch section research agents.
Generate section queries, retrieve Qdrant passages, and ask Jev about each query-passage pair. Python filters and ranks the surviving evidence.
A writing LLM accumulates evidence. Jev checks required subsections; Python generates another query when coverage is missing and retry budget remains.
Format each completed section and combine them into a Markdown report.
The same typed decision model governs both evidence admission before writing and coverage after synthesis. The application keeps thresholds, ranking, retry limits, and report generation in ordinary code and a separate writing model.