This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
DocSummarizer Part 2 - Utilisation de l'outil
Sunday, 21 December 2025
Il s'agit de Partie 2 de la série DocSummarizer. Voir Partie 1 pour l’architecture et les modèles, Partie 3 pour une profonde immersion technique dans les embeddings et la recherche, ou Partie 4 utiliser la bibliothèque NuGet pour construire vos propres applications RAG.
Transformer des documents ou des URLs en éléments de preuve- Sommaires fondés M SK1 pour les humains ou les agents AI - sans envoyer quoi que ce soit à la nulle part
Toute revendication est traçable. Chaque fait cite sa source . Automne M SK2 binaire contenant, fonctionne entièrement sur votre machineMSC4
# Human-readable summary
docsummarizer -f contract.pdf
# JSON for agents/pipelines
docsummarizer tool -u "https://docs.example.com"
Ce que couvre cet article: InstallationM SK1 modes clés (Auto/BertRagMSC4BerteMNK5 templatesMST6 et cas d'utilisation communautaires MST7
Ce qu’il ne couvre pas: Référence complète des commandes , options de configuration, troubleshootingM SK3 détails sur l'architectureMSC4
Pour obtenir la documentation complète,, voir le document README. Pour savoir comment il fonctionne à l’interne, voir Partie 3.
Pourquoi cela existe-t-il?
La plupart des résumés donnent un texte. Ce qui vous donne preuves.
- Toute réclamation comprend
[chunk-N]citations Retour à la source - Niveaux de confiance (haut, /moyenne, MSC2baisse, M SK3selon les éléments de preuve à l’appui
- Produit JSON structuré pour l'intégration d'agents, pipelines CI, ou serveurs MCP
- Mesures de qualité apercevoir des hallucinations avant d'échapper
Si vous avez besoin de la confiance un résumé - ou le transmettre à un autre système - qui a une incidence
Caractéristiques
- 🚀 Pipeline BertRag: ProductionM SK1 extraction BERT de niveau Récupération → synthèse LLM
- 🤖 Mode automatique: Choix du mode intelligent fondé sur le document et la demande
- ⚡ Mode Bert: Sommaire extractionnel pur - il n'est pas nécessaire de LLM
- Evidence-Exemplaires circonscrits: CitationsM SK1 Niveaux de confiance , revendications traçables
- Modes multiples: Auto, BertRag, BertMSC3 BertHybridM SK4 MapReduceMSL5 RagMST6 Itérative
- Mode d'outils: Clean JSON pour les agents LLM, Servers MCPM SK2 Contrôles CI
- Modèles de 13: default , prose, briefM SK3 onelinerMST4 bulletsM ST5 executiveMst6 detailedM st7 technicalMSt8 academicM St9 citationsMstr10 bookreportMr st11 meetingMrt12 strict
- Documents importants: Méthodes de manipulation 500+ pages avec traitement hiérarchique
- Traitement sur le Web: SécuritéM SK1hardened (SSRF protection, HTML sanitisationMSC4
- Mode de traduction: Explorateur sans tête pour JavaScript- pages rendues ( SPAsM SK3 Appliques réactives )
- Embeddings de l'ONNX: ZeroM SK1config local embeddings - models auto-download on first use
- Analyse de la qualité: Détection des hallucinationsM SK1 Extraction d’entités
- LLM résistant: PollyM SK1re-essai basé sur le détournement d'atterrissage + breaker de circuit
- Seuls locaux: Rien ne laisse votre machine
Utilisation comme outil LLM
L'article 5 de la Loi sur l'immigration et le statut des réfugiés tool command est conçu spécialement pour l'intégration avec les agents AI, serveurs MCP, et autres systèmes automatisésM SK2 Il produit une JSON structurée pour s'appuyer sur des données probantes - revendications fondées MSC4 parfaite pour la construction de pipelines RAG ou d'outils d'agents
Utilisation des outils de base
# Summarize a URL and get JSON output
docsummarizer tool --url "https://example.com/docs.html"
# Summarize a local file
docsummarizer tool -f document.pdf
# With a focus query
docsummarizer tool -f contract.pdf -q "payment terms and conditions"
# Pipe to jq for processing
docsummarizer tool -f doc.pdf | jq '.summary.keyFacts'
Structure de sortie de l'outil
Le commandement de l'outil retourne JSON structuré avec le suivi des preuves:
{
"success": true,
"source": "https://example.com/docs.html",
"contentType": "text/html",
"summary": {
"executive": "Brief summary of the document.",
"keyFacts": [
{
"claim": "The system supports 10,000 TPS.",
"confidence": "high",
"evidence": ["chunk-3", "chunk-7"],
"type": "fact"
}
],
"topics": [
{
"name": "Architecture",
"summary": "The system uses microservices...",
"evidence": ["chunk-1", "chunk-2"]
}
],
"entities": {
"people": ["John Smith"],
"organizations": ["Acme Corp"],
"concepts": ["OAuth 2.0", "REST API"]
},
"openQuestions": ["What is the disaster recovery plan?"]
},
"metadata": {
"processingSeconds": 12.5,
"chunksProcessed": 15,
"model": "qwen2.5:1.5b",
"mode": "MapReduce",
"coverageScore": 0.95,
"citationRate": 1.2,
"fetchedAt": "2025-01-15T10:30:00Z"
}
}
Options de commande d'outil
docsummarizer tool [options]
| Option | courte | Description S |
|---|---|---|
--url |
-u |
URL pour récupérer et résumer |
--file |
-f |
Dossier pour résumer |
--query |
-q |
Demande de concentration facultative |
--mode |
-m |
Modèle de sommation ( Auto, BertRagM SK3 BertMSC4 BertHybridMST5 MapReduceMSL6 RagMSR7 ItérativeMsl8 SSL9 |
--model Modèle Ollama pour utiliser |
||
--config |
-c |
Voie de fichier de configuration |
Principes de conception clés
- Justification de la preuve: Toute réclamation comprend
evidenceIDs renvoyant aux chunks de source - Niveaux de confiance: Les réclamations sont cotées
high,medium, oulowsur la base de preuves à l'appui - Nettoyage de la sortie: Le
executivesommaire n'a pas de marqueurs de citation pour une présentation facile - Données métadonnées: Les statistiques de traitement aident à débuger et à évaluer la qualité
- Erreur de manutention: Retour des défauts
success: falseavec unerrormessage
Exemples d'intégration
Script de Python:
import subprocess
import json
result = subprocess.run(
["docsummarizer", "tool", "-u", "https://example.com/api-docs"],
capture_output=True, text=True
)
data = json.loads(result.stdout)
if data["success"]:
for fact in data["summary"]["keyFacts"]:
if fact["confidence"] == "high":
print(f"- {fact['claim']}")
Pipeline Shell:
# Extract high-confidence facts only
docsummarizer tool -f doc.pdf | jq '[.summary.keyFacts[] | select(.confidence == "high")]'
# Get just the executive summary
docsummarizer tool -u "https://example.com" | jq -r '.summary.executive'
Démarrage rapide
Télécharger Pre- Binaries construits
Pré- les executables natifs construits sont disponibles à partir de Publications de GitHub:
| Platform | Architecture MSC2 Téléchargement SMC3 | |
|---|---|---|
Windows docsummarizer-win-x64.zip |
||
| Windows | ARM docsummarizer-win-arm64.zip |
|
| Linux | x64 | docsummarizer-linux-x64.tar.gz |
| Linux | ARM docsummarizer-linux-arm64.tar.gz |
|
| macOS | x64 IntelM SK4 | docsummarizer-osx-x64.tar.gz |
| macOS | ARM64 Apple SiliconM SK4 | docsummarizer-osx-arm64.tar.gz |
# Download and extract (Linux/macOS)
curl -L -o docsummarizer.tar.gz https://github.com/scottgal/mostlylucidweb/releases/download/docsummarizer-v3.1.0/docsummarizer-linux-x64.tar.gz
tar -xzf docsummarizer.tar.gz
chmod +x docsummarizer
# Download and extract (Windows PowerShell)
Invoke-WebRequest -Uri "https://github.com/scottgal/mostlylucidweb/releases/download/docsummarizer-v3.1.0/docsummarizer-win-x64.zip" -OutFile "docsummarizer.zip"
Expand-Archive -Path "docsummarizer.zip" -DestinationPath "."
Exigences préalables
Mode Bert (Pas de services externes)
Pour une résumation extractive pure, Aucun service externe n'est requis:
docsummarizer -f document.md -m Bert
OnNX models auto-download from HuggingFace on first use (~23MBM SK2 Retours en ~3-5 secondsMSC4
Modes de LLM (AutoM SK1 BertRag, MapReduce , etcMSC4
Pour le LLM- sommation par puissanceM SK1 Ollama est requis :
# Install Ollama from https://ollama.ai
ollama pull llama3.2:3b # Default model - good balance of speed/quality
ollama serve
Pointe de vitesse: Pour des résumés plus rapides, (~3s vs
--model qwen2.5:1.5b
Optionnel: Doclage (Formats binairesM SK2
Exigé pour les fichiers PDF, DOCXM SK1 XLSX , PPTX, HTMLMSC4 images Mska5PNGMsko6JPGMsek7TIFFMske8 CSVMsku9 VTTMsco10 et fichiers AsciiDocMski11 Les fichiers de texte marquage et simples sont lus directement - aucun documentage requis.
docker run -d -p 5001:5001 quay.io/docling-project/docling-serve
Optionnel: Qdrant M SK1Système d'entreposage continu de vecteurs)
Non exigé par défaut - BertRag utilise des vecteurs de mémoire dans- . Activer Qdrant pour le stockage persistant afin d'éviter la réintroduction de documents sur les exécutions subséquentes
docker run -d -p 6333:6333 -p 6334:6334 qdrant/qdrant
Ensuite, configurez dans docsummarizer.json:
{
"bertRag": {
"vectorStore": "Qdrant",
"collectionName": "docsummarizer",
"persistVectors": true
}
}
Optionnel: Embeddings Ollama
Si vous préférez Ollama pour les embeddings plutôt que ONNX:
ollama pull nomic-embed-text # Or mxbai-embed-large
# Then use: --embedding-backend Ollama
Vérifier les dépendances
docsummarizer check --verbose
La sortie attendue montre une table formatée:
Dependency Status
╭─────────┬────────┬────────────────────────╮
│ Service │ Status │ Endpoint │
├─────────┼────────┼────────────────────────┤
│ Ollama │ OK │ http://localhost:11434 │
│ Docling │ Optional │ http://localhost:5001 │
│ Qdrant │ Optional │ localhost:6333 │
╰─────────┴────────┴────────────────────────╯
Default Model Info
╭────────────────┬────────────────╮
│ Property │ Value │
├────────────────┼────────────────┤
│ Name │ llama3.2:3b │
│ Family │ llama │
│ Parameters │ 3.2B │
│ Context Window │ 128,000 tokens │
╰────────────────┴────────────────╯
Ready to summarize! Ollama is available.
Remarque: Docling et Qdrant montrant que ✗ est bon pour MarkdownM SK2seulement les flux de travail.
Utilisation
Le comportement par défaut
En cours docsummarizer sans arguments va:
- Rechercher
README.mddans le répertoire actuel - Résumer en utilisant Mode d'auto (sélection du mode intelligent)
- Imprimer le résumé à la console avec une belle UI du panneau
- Auto- sauvegarder à
readme.summary.md
# Summarize README.md in current directory
docsummarizer
# Shows a formatted panel with:
# - Document info table (file, mode, model)
# - Progress indicators during processing
# - Summary panel with the result
# - Topics tree if available
# - Saved: readme.summary.md
Sommaire de base
# Just run it - Auto mode picks the best approach
docsummarizer -f document.pdf
# Fast mode - no LLM, pure extraction (~3-5s)
docsummarizer -f document.pdf -m Bert
# Production mode - best quality with validated citations
docsummarizer -f document.pdf -m BertRag
# Focused on specific topic
docsummarizer -f manual.pdf -m BertRag --focus "installation steps"
# Verbose progress
docsummarizer -f document.pdf -v
Modes de sommaire
L’outil a évolué de "just MapReduce" à un pipeline completM SK2 Voici ce que chaque mode fait en réalitéMSC4
Auto (Default)
Choisissez le mode approprié en fonction de ce que vous demandez.
docsummarizer -f doc.pdf
BertRag (ProductionM SK1
C'est ce que vous voulez pour la production. TroisM SK1Pipeline de phase:
- Extraire - Parser le document en segments, les insérer avec BERT
- Récupérer - Trouver les segments pertinents cherche sémantique MSC2 cote de salienceMSc3
- Synthèse - LLM écrit un résumé fluide de ces segments
docsummarizer -f doc.pdf -m BertRag
docsummarizer -f doc.pdf -m BertRag --focus "payment terms"
Pourquoi l'utiliser: Chaque allégation remonte à un segment source. Aucune hallucination. Échelle à n'importe quelle taille du document . LLM ne fonctionne qu'à l'extrémité M SK3 bon marchéMSC4
Bert (FastM SK1 Non LLM)
Extraction pure à l'aide de modèles locaux d'ONNX. Aucun appel LLM en tout
docsummarizer -f doc.pdf -m Bert
Pourquoi l'utiliser: Fonctionne en mode offline. Retours en ~3-5 secondesM SK2 Déterministe ( même entrée
BertHybrid
Extraits de BERT, polishes LLMM SK1 Terrain intermédiaire entre Bert et BertRag.
docsummarizer -f doc.pdf -m BertHybrid
MapReduce / Rag / Itérative
Les modes originaux. fonctionnent toujours, mais BertRag les a remplacés pour la plupart des cas d’utilisationM SK2
- Réduction de la carte: Échantillonnage parallèleM SK1 bon pour la couverture 100%
- Rag: Recherche vectorielle, bon pour les demandes ciblées (légacy - BertRag le fait mieux
- Iterative: Traitement séquentiel, ne s'applique qu'aux petits dossiers
docsummarizer -f doc.pdf -m MapReduce # Full coverage
docsummarizer -f doc.pdf -m Rag --focus "query" # Legacy focused mode
Mode de demande
Au lieu de résumer, poser des questions sur un document
docsummarizer -f manual.pdf --query "How do I install the software?"
Traitement de l'URL Web
Résumer les pages Web directement sans télécharger:
# Summarize a web article
docsummarizer --url "https://example.com/article.html" --web-enabled
# Summarize a remote PDF
docsummarizer --url "https://example.com/document.pdf" --web-enabled
# With structured JSON extraction
docsummarizer --url "https://example.com/api-docs.html" --web-enabled --structured
Contenu appuyé: HTML (sanitized), PDFM SK3 MarkdownMSC4 images (OCRMST6 Documents d’officeMSL7 Large images automatically redimensionnées
Sécurité: Protection SSRFM SK1 Protection de rebinding DNS, Contenu -Gating typeMSC4 Protection contre les bombes à décompressionMska5Santé HTMLM Ska6
JavaScript- pages remises: Usage --web-mode Playwright pour les SPA et les applications React (auto-installe Chromium lors de la première utilisationM SK2
Mode structuré
Extraire la machine-JSON lisible au lieu de prose:
docsummarizer -f document.pdf --structured -o Json
Extraits: entitésM SK1 fonctions , flux clés, faits MST4 avec niveaux de confianceM ST5 incertitudesSST6 passages citablesS ST7
Formulaires de synthèse
# Use a template
docsummarizer -f doc.pdf --template executive
docsummarizer -f doc.pdf -t bullets
# Specify custom word count with template:wordcount syntax
docsummarizer -f doc.pdf -t bookreport:500
docsummarizer -f doc.pdf -t executive:100
# Or use --words to override any template's default
docsummarizer -f doc.pdf -t detailed --words 300
| Modèle | Mots | Suivant le mieux pour M |
|---|---|---|
default Résumé équilibré avec les thèmes (2 paragraphesM SK4 |
||
prose |
~400 ≥ | Multiple claire-prose paragraphique MSC4 aucune métadonnées S |
brief Résumé des sentences |
||
oneliner Résumé d’une seule phrase |
||
bullets |
auto | Liste des points de balayage (5-7 articles) M |
executive |
~150 ≥ | Réunion d'information avec recommandations de la direction |
detailed |
~1000 ≥ | Comprend tous les sujets |
technical |
~350 ≥ | Dossiers techniques avec des détails sur la mise en œuvre |
academic Format d’abrégé universitaire |
||
citations |
auto | Citations clés avec des citations de source seulement |
bookreport |
~500 ≥ | Rapport du livre MSC3settingM SK4 characters, plotMSC6 themesMST7 |
meeting Notes de séance (décisions |
||
strict |
~60 ≥ | TokenM SK3efficient, ≤3 bullets maxMSC6 sans couverture |
Pour voir tous les modèles disponibles avec des descriptions:
docsummarizer templates
Évaluation comparative des modèles
Comparer les modèles sur le même document en utilisant benchmark sous-command:
docsummarizer benchmark -f doc.pdf -m "qwen2.5:1.5b,llama3.2:3b,ministral-3:3b"
Le commandement de référence analyse le document une fois, puis conduit chaque modèle sur les mêmes tronçons pour une comparaison équitable . La sortie montre la timingM SK2 le nombre de mots , et les motsMSC4deux secondes pour chaque modèle.
Traitement par lots
Processuer des répertoires entiers:
# Use BertRag for quality
docsummarizer -d ./documents -m BertRag -v
# Fast offline batch (no LLM needed)
docsummarizer -d ./documents -m Bert -o Json --output-dir ./summaries
# Process only PDFs recursively
docsummarizer -d ./documents -e .pdf --recursive -v
Commande-Options de ligne
| Option | courte | |||
|---|---|---|---|---|
--file |
-f |
Voie vers le document | ||
--directory |
-d |
Voie vers le répertoire pour le traitement de lots | ||
--url |
-u |
URL Web pour extraire et résumer | ||
--web-enabled |
Faire fonctionner le téléchargement du Web. false |
|||
--mode |
-m |
Modèle de sommationM SK1 Auto, BertRagMSC3 BertMST4 BertHybridMSS5 MapReduceMSR6 RagMSSS7 Itérative MSS8 Auto |
||
--structured |
-s |
Utiliser le mode d'extraction JSON structuré | false |
|
--focus |
Demande de concentration pour le mode RAG | Aucune S | ||
--query |
-q |
Modèle de demande au lieu d'une sommation | ||
--model Modèle Ollama pour utiliser |
llama3.2:3b |
|||
--verbose |
-v |
Voir les progrès détaillés avec l'interface en direct | false |
|
--config |
-c |
Voie vers le fichier de configuration | ||
--output-format |
-o |
Format de sortieM SK1 Console , Texte, Marquage de marquageMST4 Json MST5 Console |
||
--output-dir |
Répertoire des sorties pour les sorties de fichiers | Directeur courant S | ||
--extensions |
-e |
Extensions de fichiers pour le mode d'échantillonnage | ||
--recursive |
-r |
Récursivement les répertoires de processus | false |
|
--template |
-t |
Modèle de sommaire (défault, brèveM SK3 bulletsMST4 cadre supérieurM ST5 etcMSS6 MSSS7 default |
||
--words |
-w |
Nombre de mots ciblés ( Modèle qui surride |
| --embedding-backend | | Embedding backend: OnnxM SK3 Ollama | Onnx |
| --embedding-model Nom du modèle ONNX ( Mode RAGM SK3 | AllMiniLmL6V2 |
| --web-mode | | Mode d'acheminement sur le Web Simple |
| --analyze | -a | Effectuer une analyse de qualité sur le résumé | false |
Modes de sommaire
Réduire la carte (RecommandéM SK1
Le meilleur pour les résumés complets avec une couverture complète des documents.
docsummarizer -f document.pdf -m MapReduce -v
Comment cela fonctionne:
- Diviser le document en blocs structurels (par rubriques)
- Résumer chaque morceau en parallèle à l'aide de LLM
- Réduire les sommaires en résumés exécutifs avec des citations
- Validation de toutes les citations renvoyant aux chunks réels
Réduction hiérarchique pour les documents longs:
Pour les documents très longs où les résumés combinés dépassent le modèle's context window, MapReduce utilise automatiquement la réduction hiérarchiqueM SK2
- Battage: Résumés des groupes en lots qui correspondent au contexte
- Réduction intermédiaire: Réduit chaque lot à un résumé condensé
- Réduction finale: Merge les résumés intermédiaires dans le résultat final
- Récursive: Si les intermédiaires sont encore trop importantsM SK1 ajoute plus de niveaux
100 chunks → 100 summaries → 5 batches → 5 intermediate summaries → final
Cela préserve la couverture complète des documents indépendamment de leur longueur - chaque fragment contribue au sommaire finalM SK1 L'outil estime les tokens (~4 chars /token) et les cibles
Pros: FastM SK1 Coverage complet , Processus parallèle, manipule toute longueur de document Cons: Il est possible de manquer à la croiséeM SK1connexions sectionnelles , plus lente pour les documents très longs
RAG (Best for Focused Queries)
Le mieux quand vous avez besoin de vous concentrer sur des sujets précis ou d’avoir une question ciblée.
docsummarizer -f document.pdf -m Rag --focus "pricing and payment terms" -v
Comment cela fonctionne:
- Indexe les tronçons de document comme embeddings vecteurs dans Qdrant
- Extrait des sujets clés de la rubrique du document
- Recupère les tronçons pertinents par sujet en utilisant la recherche sémantique
- Synthèse du résumé ciblé avec des citations
Quand utiliser RAG sur MapReduce:
| Scénario | Modèle le mieux adapté |
|---|---|
| "Summer l'ensemble de ce document | |
| "Qu'est-ce que cela dit sur la sécurité? | |
| 500- manuel de page, sections particulières requises. | |
| Besoin d'obtenir des résultats rapidesM SK1 ne possèdent pas de Qdrant |
Le RAG est non pas sur la manipulation de documents longs - MapReduce gère avec une réduction hiérarchique filtrage de la pertinence: lorsque vous voulez ignorer 90% d’un document et se concentrer sur ce qui est important pour votre question particulière
Pros: Thème-focusedM SK2 compréhension sémantique , index de renouvellement de l’indice Cons: Le contenu peut être manqué à l’extérieur de la zone de concentration , requiert QdrantM SK2 indexation initiale plus lente
Iterative
Le meilleur pour les documents narratifs où le contexte se déroule séquentiellement.
docsummarizer -f story.pdf -m Iterative -v
Avertissement: Plus lente et risque de perdre le contexte sur les documents longs (>10 chunks).
Guide du grand document
Choix du mode droit
| Type de document | But | Modèle | Pourquoi SMK4 |
|---|---|---|---|
| spécifications techniques | pages | 50+ | Pages |
| NouveauxM SK1Narrative | Sommaire complet | Réduction de la carte | Nécessite un contexte temporel S |
| Contrat juridique | |||
| Contrat juridique | "Conditions de paiement?" | ||
| Dossiers API | Pages | 200 | pages |
| Document de recherche | Résumé complet MSC2 MapReduce MSC3 Structuré MSc4 a besoin de tout SMC5 |
Fiction vs Non-Fiction
| Type de contenu | Modèle le mieux adapté MSC2 Notes MSC3 | |
|---|---|---|
| Fiction/Narrative | MapReduce | La planification requiert un contexte séquentiel |
| Documents techniques | Les deux | CarteRéduction pour aperçuM SK2 RAG pour spécifications |
| Droits juridiques/Contracts | MapReduce | Chacune des clauses est pertinente. |
| Manuels | RAG | Enquête habituelle pour des spécifications |
Rendement
| Taille du document | Réduction de la carte | |||||
|---|---|---|---|---|---|---|
| Pages | 10 pages | |||||
| 50 pages | ||||||
| Réduction hiérarchique | ||||||
| Pages | 500+ pages MSC2 \10-15 min MSC4 | 5 | min | Considérer plusieurs demandes de RAG SMC7 |
Configuration
Générer la configuration par défaut
docsummarizer config --output myconfig.json
Fichier de configuration
La configuration est auto-discovered from:
--configoptiondocsummarizer.jsondans le répertoire actuel.docsummarizer.json(fichier caché)~/.docsummarizer.json(domaine de l'utilisateur)
Exemple : docsummarizer.json:
{
"embeddingBackend": "Onnx",
"onnx": {
"embeddingModel": "AllMiniLmL6V2"
},
"ollama": {
"model": "llama3.2:3b",
"embedModel": "mxbai-embed-large",
"baseUrl": "http://localhost:11434",
"temperature": 0.3,
"timeoutSeconds": 1200
},
"docling": {
"baseUrl": "http://localhost:5001",
"timeoutSeconds": 1200,
"pdfBackend": "pypdfium2",
"pagesPerChunk": 10,
"maxConcurrentChunks": 4,
"enableSplitProcessing": true
},
"qdrant": {
"host": "localhost",
"port": 6333,
"collectionName": "documents"
},
"processing": {
"maxHeadingLevel": 2,
"targetChunkTokens": 1500,
"minChunkTokens": 200,
"maxLlmParallelism": 2
},
"output": {
"format": "Console",
"verbose": false,
"includeTrace": false
},
"webFetch": {
"enabled": false,
"mode": "Simple",
"timeoutSeconds": 30,
"userAgent": "Mozilla/5.0 DocSummarizer/1.0"
},
"batch": {
"fileExtensions": [".pdf", ".docx", ".md", ".txt", ".html"],
"recursive": false,
"continueOnError": true
}
}
Options de traitement
| Option | Défault MSC2 Description MSC3 | ||||
|---|---|---|---|---|---|
maxLlmParallelism |
8 | Demandes LLM concomitantes | Llama queues | , | donc des valeurs plus élevées seulement queue | |
maxHeadingLevel |
2 ≥ | Partitionner sur H1/HM SK4 uniquementMSC5 Établir à MSC6 pour une granularité plus fine SMC7 | |||
targetChunkTokens |
0 ≥(auto) ≤ | Taille de l'enveloppe cibleM SK5 ==0 = autoMSC8calculer == (~25% de la fenêtre contextuelle | |||
minChunkTokens |
0 |
Format de sortie
Structure sommaire
## Executive Summary
- Key finding 1 with specific details [chunk-0]
- Important point 2 with numbers and dates [chunk-3]
- Critical requirement 3 [chunk-5]
## Section Highlights
- Introduction: Overview of the system architecture [chunk-0]
- Requirements: Technical specifications detailed [chunk-3]
...
## Open Questions
- What is the timeline for Phase 2?
- How does the fallback mechanism work?
### Trace
- Document: document.pdf
- Chunks: 12 total, 12 processed
- Topics: 5
- Time: 21.4s
- Coverage: 100%
- Citation rate: 1.20
Mesures de traçage: Catégorie de couverture (% sections inclusesM SK2 Taux de citation (citations/bulletMSC5 Contenants traités M(L'ARG peut passer quelques-unes de ces sectionsMNK7
Recommandations types
| Modèle | Taille SMK2 vitesse | qualité | Case d'utilisation SSK5 | ||||||
|---|---|---|---|---|---|---|---|---|---|
qwen2.5:1.5b |
MSC1MB MSC2 Très rapide SMC3s SMC4 | ||||||||
gemma3:1b |
MSC1MB MSC2 Fast SMC3s SMC4 \MSC5 Faire ESC6 Modèle de rechange petit ESC7 | ||||||||
llama3.2:3b |
2GB Défault - bon solde | ||||||||
ministral-3:3b |
2.9GB MSC2 Moyenne SMC3sS MC4 | 5 | Très bonne | SMC6 | Qualité | MSC7 | axée | ||
llama3.1:8b |
MSC1GB MSC2 Motif SMC3sMSc4 | Excellent SMC6 Haut ESC7 Sommaires de qualité MESC8 |
Conseils: Pour des résumés plus rapides, (~3s vs
--model qwen2.5:1.5b. Pour les documents critiques où la qualité est plus importante--model llama3.1:8b.
Établir à partir de la source
# Clone the repository
git clone https://github.com/scottgal/mostlylucidweb.git
cd mostlylucidweb/Mostlylucid.DocSummarizer
# Build
dotnet build
# Run
dotnet run -- --help
Self-Contained Builds
Pour le déploiement de la production sans nécessiter l’installation .NET runtime:
# Build self-contained executable (Windows x64)
dotnet publish -c Release -r win-x64 --self-contained
# Build for Linux
dotnet publish -c Release -r linux-x64 --self-contained
# Build for macOS
dotnet publish -c Release -r osx-x64 --self-contained
Output: bin/Release/net9.0/<runtime>/publish/docsummarizer
Troubleshooting
"Ne pouvait pas se connecter à OllamaM SK1
- Assurer que Ollama fonctionne:
ollama serve - Les modèles de vérification sont retirés:
ollama list
"Le service de télécopie n'est pas disponibleM SK1
- Il s'agit de seulement requis pour les fichiers PDF/DOCX
- Pour les fichiers Markdown, vous pouvez ignorer cet erreur
- Pour corriger:
docker run -p 5001:5001 quay.io/docling-project/docling-serve
"Connexion Qdrant a échoué"
- Il s'agit de seulement requis pour le mode RAG (
--mode Rag) - Pour le mode MapReduce (default), vous pouvez ignorer cet erreur
- Pour corriger:
docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant
"Circuit breaker is openM SK1
- Ollama est surchargée ou a échoué
- Attendez 30 secondes pour que l'interrupteur de circuit réétablisse , ou reprend Ollama
- L'outil utilise les politiques de résilience Polly et fera auto-retry
"wsarecvM SK1 ou erreurs de connexion (Windows)
- Il s’agit d’un problème connu de Ollama sur Windows (GitHub #13340)
- L'outil auto-y traite avec la logique de retry et le rétablissement des connexions
- Si persistant, relancer Ollama et essayer de nouveau
"La génération de l'LLM a été reportée à temps"
- Accroître le temps d'arrêt dans la configuration
- Diviser les documents très importants
- Vérifier si Ollama n'est pas surchargée par d'autres demandes
Répétitif ou faible- Sommaires de qualité
Symptômes: Points de bullet échoent l'énoncé d'écoulement ("Retourner uniquement les points de bulletsM SK2 "La règle est...") au lieu de résumer le contenuMSC5
Cause: Model struggling with the prompt or content too long .
Fixer: Par défaut qwen2.5:1.5b gère la plupart des documents bien. Pour les documents problématiques, essayer --model llama3.2:3b. Voir Recommandations types.
Sommaire Ignore le contenu du document
Si le résumé semble générique ou ne renvoie pas à un contenu spécifique'
- Le modèle peut avoir des hallucinations - vérification
Citation ratedans les sorties de traçage - Essayez le mode RAG (
--mode Rag) qui justifie les résumés dans les chunks repris - Utilisation
--verbosepour voir quels chunks sont traités
Citations manquantes ou invalides
Si les résumés ne sont pas disponibles [chunk-N] citations:
- Les petits modèles accordent la priorité au contenu plutôt qu'à la présentation des citations
- Les prompts sont optimisés pour la vitesse, non stricte conformité à la citation
- Pour les citations strictes,, utiliser des modèles plus grands comme
llama3.2:3b - Vérifier
Citation ratedans la tracée -, les valeurs supérieures indiquent une meilleure traçabilité
Conseils sur la performance
- Réduction de la carte pour la vitesse (chaînes parallèlesM SK1
qwen2.5:1.5bpour la vitesse,llama3.2:3bpour le solde,llama3.1:8bpour la qualité- Emplacements de l'ONNX (defaultM SK1 sont plus rapides que Ollama pour le mode RAG
- Sous-échelon
maxLlmParallelismSi vous éprouvez des interruptions de temps
Ressources
- Code de source
- Publications de GitHub
- Méthode de travail / Services de doctrine
- Qdrant - Base de données sur les vecteurs locaux
- Ollama / OllamaSharp
- Polly - . Résilience et transition du réseau NET-faultM SK3manifestation
- Spectre.Console - Gracieuse interface terminale
Navigation des séries
- Partie 1: Établissement d'un résumé de document avec RAG - L'architecture et les modèles
- Partie 2: Utilisation de l'outil ( cet articleM SK1 - Guide de démarrage rapide-
- Partie 3: Concepts avancés - plongée profonde dans BERTM SK1 ONNX, emplacements , et recherche hybride