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 Del 2 - Använda verktyget
Sunday, 21 December 2025
Det här är Häfte 2 i DocSummarizer serien. Se Häfte 1 för arkitektur och mönster, eller Häfte 3 för den djupa tekniska dykningen i inbäddningar och hämtning.
Förvandla dokument eller webbadresser till faktabaserade sammanfattningar - för människor eller AI agenter - utan att skicka något till molnet.
Varje påstående är spårbart, alla fakta anger dess källa, fristående binär, körs helt på din maskin.
# Human-readable summary
docsummarizer -f contract.pdf
# JSON for agents/pipelines
docsummarizer tool -u "https://docs.example.com"
Vad den här artikeln behandlar: Installation, nyckellägen (Auto/BertRag/Bert), mallar och vanliga användningsfall.
Vad det inte täcker: Fullständig kommandoreferens, inställningsalternativ, felsökning, arkitekturdetaljer.
För fullständig dokumentation, se INLEDNING. För hur det fungerar internt, se Häfte 3.
Varför detta existerar
De flesta sammanfattningar ger dig text. bevis.
- I varje påstående ingår
[chunk-N]hänvisningar Tillbaka till källmaterial - Förtroendenivåer (högt/medelhögt/lågt) baserat på bevisning
- Strukturerad JSON-utmatning för agentintegration, CI-rörledningar eller MCP-servrar
- Kvalitetsmått Fånga hallucinationer innan de rymmer.
Om du behöver Tillit En sammanfattning - eller mata den till ett annat system - som är viktig.
Kännetecken
- och BertRag Pipeline: Produktionskvalitet BERT extraktion → hämtning → LLM syntes
- Automatiskt läge: Smart läge val baserat på dokument och fråga
- på Bert- läge: Ren extraherande sammanfattning - ingen LLM behövs, fungerar offline (~3-5s)
- Avrundad utmatning av bevis: Citeringar, konfidensnivåer, spårbara påståenden
- Flera lägen: Auto, BertRag, Bert, BertHybrid, MapReduce, Rag, Iterativ
- Verktygsläge: Ren JSON för LLM-agenter, MCP-servrar, CI-kontroller
- 13 Mallar: standard, prosa, kort, oneliner, kulor, verkställande, detaljerad, teknisk, akademiska, citeringar, bokrapport, möte, strikt
- Stora dokument: Hanterar 500+ sidor med hierarkisk bearbetning
- Webbhämtning: Säkerhetshärdad (SSRF-skydd, HTML-sanering)
- Uppspelningsrätt läge: Huvudlös webbläsare för JavaScript-renderade sidor (SPA, React apps)
- ONNX-inbäddningar: Zero-config lokala inbäddningar - modeller automatisk nedladdning vid första användning
- Kvalitetsanalys: Detektion av hallucination, extraktion av entiteter
- Motståndskraftig LLM: Polly-baserade försök med jitter backoff + brytare
- Endast lokalt: Ingenting lämnar din maskin
Använda som ett LLM-verktyg
och tool kommando är speciellt utformad för integration med AI-agenter, MCP-servrar och andra automatiserade system. Det ger strukturerade JSON att stdout med bevis-grundade påståenden - perfekt för att bygga RAG rörledningar eller agent verktyg.
Grundläggande verktygsanvändning
# 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'
Verktygsutmatningsstruktur
Verktygskommandot returnerar strukturerad JSON med bevisspårning:
{
"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"
}
}
Verktygskommandoalternativ
docsummarizer tool [options]
tillval och kort beskrivning på plats
|--------|-------|-------------|
| --url | -u på webbadressen för att hämta och sammanfatta
| --file | -f Fil för att sammanfatta
| --query | -q Obligatorisk fokusfråga
| --mode | -m Sammanfattande läge (Auto, BertRag, Bert, BertHybrid, MapReduce, Rag, Iterative)
| --model Ollama modell att använda
| --config | -c Inställningsfilsökväg
Principer för utformning
- Bevisupptagning: Varje fordran inkluderar
evidenceID:n som refererar till källbitar - Förtroendenivåer: Fordringar är betygsatta
high,medium, ellerlowpå grundval av bevisning som ligger till grund för detta beslut, - Ren utmatning: för
executivesammanfattning har inga citeringsmarkörer för enkel visning - Metadata: Bearbetningsstatistik hjälper till med felsökning och kvalitetsbedömning
- Felhantering: Misslyckanden återvänder
success: falsemed enerrormeddelande
Exempel på integration
Pythonskript:
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']}")
Skalledning:
# 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'
Snabbstart
Ladda ner förbyggda binärer
Förbyggda inhemska körbara program finns tillgängliga från Utgåvor av GitHub:
Ladda ner ladda ner ladda ner
| ---------- | -------------- | ---------- |
|---|---|---|
Fönster på ARM64 docsummarizer-win-arm64.zip |
||
Obligatoriskt för Linux på x64 docsummarizer-linux-x64.tar.gz |
||
Obligatoriskt för Linux på ARM64 docsummarizer-linux-arm64.tar.gz |
||
och macOS på x64 (Intel) docsummarizer-osx-x64.tar.gz |
||
ARM64 (Apple Silicon) 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 "."
Förutsättningar
Bert Mode (inga externa tjänster)
För ren utvinningssammanfattning, Inga externa tjänster krävs:
docsummarizer -f document.md -m Bert
ONNX modeller automatisk nedladdning från HuggingFace vid första användning (~23MB). Returnerar i ~3-5 sekunder.
LLM Modes (Auto, BertRag, MapReduce, etc.)
För LLM-driven summering krävs Ollama:
# Install Ollama from https://ollama.ai
ollama pull llama3.2:3b # Default model - good balance of speed/quality
ollama serve
Hastighetstips: För snabbare sammanfattningar (~3s vs ~15s), använd
--model qwen2.5:1.5b
Valfritt: Dockning (binära format)
Krävs för PDF, DOCX, XLSX, PPTX, HTML, bilder (PNG/JPG/TIFF), CSV, VTT och AsciiDoc-filer. Markering och enkla textfiler läses direkt - ingen dockning krävs.
docker run -d -p 5001:5001 quay.io/docling-project/docling-serve
Valfritt: Qdrant ( Persistent Vector Storage)
Krävs inte som standard - BertRag använder vektorer i minnet. Aktivera Qdrant för ihållande lagring för att undvika att återinbädda dokument i efterföljande körningar:
docker run -d -p 6333:6333 -p 6334:6334 qdrant/qdrant
Anpassa sedan in docsummarizer.json:
{
"bertRag": {
"vectorStore": "Qdrant",
"collectionName": "docsummarizer",
"persistVectors": true
}
}
Valfritt: Ollama-inbäddningar
Om du föredrar Ollama för inbäddningar istället för ONNX:
ollama pull nomic-embed-text # Or mxbai-embed-large
# Then use: --embedding-backend Ollama
Verifiera beroenden
docsummarizer check --verbose
Förväntad effekt visar en formaterad tabell:
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.
Anmärkning: Dockning och Qdrant som visar till är bra för arbetsflöden endast Markdown.
Användning
Förvalt beteende
Kör docsummarizer utan några argument kommer att
- Leta efter
README.mdi aktuell katalog - Sammanfatta det med hjälp av Automatiskt läge (val av smartläge)
- Skriv ut sammanfattningen till konsolen med en trevlig panel UI
- Spara automatiskt till
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
Grundläggande sammanfattning
# 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
Sammanställningsläge
Verktyget utvecklades från "bara MapReduce" till en full pipeline. Här är vad varje läge faktiskt gör:
Automatisk (förval)
Väljer rätt läge baserat på vad du ber om. Använd detta om du inte har en anledning att inte.
docsummarizer -f doc.pdf
BertRag (Produktion)
Det här är vad du vill ha för produktion.
- Extrahera - Tolkning av dokumentet i segment, bädda in dem med BERT
- Hämta - Hitta de relevanta segmenten (semantisk sökning + salience scoring)
- Syntetisk storlek - LLM skriver en flytande sammanfattning från dessa segment
docsummarizer -f doc.pdf -m BertRag
docsummarizer -f doc.pdf -m BertRag --focus "payment terms"
Varför använda den: Varje påstående spårar tillbaka till en källa segment. Ingen hallucination. Skalar till någon dokumentstorlek. LLM bara körs i slutet (billig).
Bert (Snabb, ingen LLM)
Ren extraktion med lokala ONNX-modeller, inget LLM-samtal alls.
docsummarizer -f doc.pdf -m Bert
Varför använda den: Fungerar offline. Returnerar i ~3-5 sekunder. Deterministisk (samma indata = samma utdata). Tillräckligt bra för snabbsökning.
BertHybrid Ordförande
BERT-extrakt, LLM-lack. Mellanmark mellan Bert och BertRag.
docsummarizer -f doc.pdf -m BertHybrid
KartaReduce / Rag / Iterativ
De ursprungliga lägena. Fungerar fortfarande, men BertRag ersatte dem för de flesta användningsfall.
- KartaReduce: Parallell kapning, bra för 100% täckning
- Släpkärra: Vector search, bra för fokuserade frågor (legacy - BertRag gör detta bättre)
- Iterativt: Sekventiell bearbetning, endast för små dokument
docsummarizer -f doc.pdf -m MapReduce # Full coverage
docsummarizer -f doc.pdf -m Rag --focus "query" # Legacy focused mode
Frågeläge
I stället för att sammanfatta, ställ frågor om ett dokument:
docsummarizer -f manual.pdf --query "How do I install the software?"
Webbadresshämtning
Sammanfatta webbsidor direkt utan att ladda ner:
# 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
Innehåll som stöds: HTML (sanitized), PDF, Markdown, bilder (OCR), Office-dokument. Stora bilder ändras automatiskt.
Säkerhet: SSRF-skydd, DNS-rebindande skydd, innehållsliknande gating, dekompressionsbombskydd, HTML-sanering.
JavaScript-renderade sidor: Användning --web-mode Playwright för SPA och React-appar (auto-installationer Krom vid första användningen).
Strukturerat läge
Extrahera maskinläsbar JSON istället för prosa:
docsummarizer -f document.pdf --structured -o Json
Utdrag: enheter, funktioner, nyckelflöden, fakta (med konfidensnivåer), osäkerheter, koncisa passager.
Sammanfattande mallar
# 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
Template med ord på bästa sätt
|----------|-------|----------|
| default på ~300 på balanserad sammanfattning med ämnen (2 stycken)
| prose på ~400 på ren flerpunktsprosa - inga metadata
| brief Kort sammanfattning på 2-3 meningar
| oneliner Sammanfattning av enkel mening
| bullets Skottpunktslista (5-7 objekt)
| executive på ~150 på Executive information med rekommendationer
| detailed på ~1000 på ett heltäckande sätt med alla ämnen
| technical på ~350 på tekniska dokument med genomförandedetaljer på
| academic på ~250 på Akademiskt abstrakt format på engelska
| citations på auto på nyckelcitat med källciteringar endast på
| bookreport på ~500 på bok rapport (inställning, tecken, tomt, teman) på
| meeting på ~200 på Möteskommentarer (beslut, åtgärder, frågor)
| strict på ~60 på Token-effektiva, 3 kulor max, ingen säkring
För att se alla tillgängliga mallar med beskrivningar:
docsummarizer templates
Förlaga till benchmarking
Jämför modeller på samma dokument med hjälp av benchmark underkommando:
docsummarizer benchmark -f doc.pdf -m "qwen2.5:1.5b,llama3.2:3b,ministral-3:3b"
Kommandot benchmarking tolkar dokumentet en gång, kör sedan varje modell på samma bitar för rättvis jämförelse. Utmatning visar timing, ordräkning och ord/sekund för varje modell.
Bearbetning av tillverkningssatser
Behandla hela kataloger:
# 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
Kommandoradsväljare
Förvalt alternativ och kort beskrivning på grund av förvalda värden
|--------|-------|-------------|---------|
| --file | -f Sökväg till dokument (DOCX, PDF, MD) på engelska
| --directory | -d Sökväg till katalog för batch-bearbetning
| --url | -u Webbadress för att hämta och sammanfatta
| --web-enabled Aktivera webbhämtning (krävs för --url) false |
| --mode | -m Sammanfattande läge: Auto, BertRag, Bert, BertHybrid, MapReduce, Rag, Iterative Auto |
| --structured | -s Använd strukturerat JSON-extraktionsläge false |
| --focus Inriktningsfråga för RAG-läge
| --query | -q och frågeläge istället för summering
| --model Ollama modell att använda llama3.2:3b |
| --verbose | -v på Visa detaljerade framsteg med live UI false |
| --config | -c Sökväg till inställningsfil med automatisk upptäckt
| --output-format | -o Utmatningsformat: Konsol, Text, Markering, Json Console |
| --output-dir Utmatningskatalog för filutmatningar
| --extensions | -e på Filtillägg för batch-läge på alla dockningsformat
| --recursive | -r Processkataloger rekursivt false |
| --template | -t En sammanfattning av mallen (standard, kort, kulor, verkställande, etc.) default |
| --words | -w Obligatoriskt antal målord (överskrider mall)
--embedding-backend Inbäddad backend: Onnx, Ollama Onnx |
|
|---|---|
--web-mode Webbhämtningsläge: Enkelt, Playwright Simple |
|
--analyze |
-a till Kör kvalitetsanalys på sammanfattning på false |
Sammanställningsläge
MapReduce (rekommenderas)
Bästa för omfattande sammanfattningar med fullständig dokumenttäckning.
docsummarizer -f document.pdf -m MapReduce -v
Hur det fungerar:
- Dela upp dokumentet i strukturella bitar (per rubrik)
- Sammanfattar varje bit parallellt med LLM
- Reducerar sammanfattningar till sammanfattningar med citeringar
- Validerar alla citeringar referens verkliga bitar
Hierarkisk reduktion för långa dokument:
För mycket långa dokument där den kombinerade bitsammanfattningen överskrider modellens sammanhangsfönster använder MapReduce automatiskt hierarkisk reduktion:
- Slagning: Gruppsammanfattningar i partier som passar in i sammanhanget
- Intermediär minskning: Reducerar varje sats till en kondenserad sammanfattning
- Slutlig minskning: Sammanställer delsammanfattningar i slutresultatet
- Rekursiv: Om intermediärer fortfarande är för stora, lägger till fler nivåer
100 chunks → 100 summaries → 5 batches → 5 intermediate summaries → final
Detta bevarar full dokumenttäckning oavsett längd - varje bit bidrar till den slutliga sammanfattningen. Verktyget uppskattar tokens (~4 tecken / token) och riktar 60% sammanhangsfönster utnyttjande per minskning pass.
Förmåner: Snabb, komplett täckning, parallell bearbetning, hanterar dokumentlängd Nackdelar: Kan missa tvärsnittsanslutningar, långsammare för mycket långa dokument
RAG (bästa för fokuserade frågor)
Bäst när du behöver fokusera på specifika ämnen eller har en riktad fråga.
docsummarizer -f document.pdf -m Rag --focus "pricing and payment terms" -v
Hur det fungerar:
- Indexerar dokumentbitar som vektorbäddar i Qdrant
- Extraherar viktiga ämnen från dokumentrubriker
- Hämtar relevanta bitar per ämne med semantisk sökning
- Synthesizes fokuserad sammanfattning med citeringar
När du ska använda RAG över MapReduce:
Scenario på bästa sätt |----------|-----------| på "Summarisera hela detta dokument" på kartanReduce "Vad säger det här om säkerhet?" 500-sidig manual, behöver allt på kartanReduce (hierarkisk) på 500 sidor manual, behöver specifik avsnitt på RAG på Behöver snabba resultat, har inte Qdrant på kartanReduce
RAG är inte om hantering av långa dokument - MapReduce hanterar det med hierarkisk reduktion. RAG handlar om Relevansfiltrering: när du vill ignorera 90% av ett dokument och fokusera på vad som är viktigt för din specifika fråga.
Förmåner: Ämnesfokuserad, semantisk förståelse, återanvändning index, snabbare för fokuserade frågor Nackdelar: Kan missa innehåll utanför fokusområdet, kräver Qdrant, långsammare initial indexering
Iterativt
Bästa för berättande dokument där kontexten flödar sekventiellt.
docsummarizer -f story.pdf -m Iterative -v
Varning: Långsammare och kan förlora sammanhang på långa dokument (>10 bitar).
Stor dokumentguide
Välja rätt läge
på dokumenttyp på mål och läge på grund av detta |---------------|------|------|-----| Tekniska specifikationer (50+ sidor) en fullständig sammanfattning på kartanReduce med fullständig täckning på Novel/Narrative med fullständig sammanfattning på kartanReduce och behöver tidskontext till Juridiskt avtal och fullständig sammanfattning på kartanReduce på sidan Kan inte missa klausuler • Lagligt kontrakt • "Betalningsvillkor?" • RAG • Fokusera på specifika avsnitt på API-dokument (200 sidor) på "Hur fungerar auth?" på forskningsrapport och fullständig sammanfattning på kartanReduce med struktur, behöver allt
Fiktion vs icke- fiktion
på innehållstyp på bästa sätt . Anteckningar . |--------------|-----------|-------| | Fiktion/Narrativ på kartanReduce och Plot kräver sekventiellt sammanhang | Tekniska dokument på båda sidor av kartanReduce for overview, RAG for specifics | Rättsliga/avtal på kartanReducera alla klausuler som är viktiga | Handböcker på RAG på Vanligen fråga efter detaljer
Prestanda
på dokumentstorlek på kartanReducera RAG-anteckningar |---------------|-----------|-----|-------| 10 sidor 15s 20s båda snabbt på 50 sidor 45s 30s på RAG snabbare om det är fokuserat på 200 sidor 3-5 min på 1–2 min på Hierarkisk reduktion på 500+ sidor 10–15 min på 2-3 min Överväg flera RAG-frågor
Inställning
Skapa standardinställning
docsummarizer config --output myconfig.json
Inställningsfil
Inställningen är automatiskt upptäckt från:
--configalternativdocsummarizer.jsoni aktuell katalog.docsummarizer.json(dold fil)~/.docsummarizer.json(användarhem)
Exempel 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
}
}
Hanteringsalternativ
Obligatoriskt förvald beskrivning
|--------|---------|-------------|
| maxLlmParallelism Ollama köer (Ollama köer, så högre värden bara kö)
| maxHeadingLevel på endast H1/H2. Ställ in till 3 för finare granularitet
| targetChunkTokens 0 (auto) 0 = automatisk beräkning (~25% av sammanhangsfönstret)
| minChunkTokens 0 (auto) på minsta möjliga före sammanslagningen. 0 = 1/8 av målet
Utmatningsformat
Sammanfattning
## 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
Spårmått: Täckning (% avsnitt ingår), Citeringshastighet (citeringar / bult), Chunks bearbetade (RAG kan hoppa över några).
Förlaga till rekommendationer
på modell på storlek på hastighet och kvalitet på användningsfallet på plats
|-------|------|-------|---------|----------|
| qwen2.5:1.5b på 986MB och mycket snabb (~3s)
| gemma3:1b 815MB på snabb (~10s) på ett rättvist sätt på en alternativ liten modell
| llama3.2:3b 2GB på medellång (~15s) på mycket bra Förval - bra balans
| ministral-3:3b 2.9GB på medellång (~20s) på ett mycket bra sätt, kvalitetsfokuserad
| llama3.1:8b Slow (~45s) på 4,7GB (~45s)
Tips: För snabbare sammanfattningar (~3s vs ~15s), använd
--model qwen2.5:1.5b. För kritiska dokument där kvalitet betyder mer, använd--model llama3.1:8b.
Bygg från källa
# Clone the repository
git clone https://github.com/scottgal/mostlylucidweb.git
cd mostlylucidweb/Mostlylucid.DocSummarizer
# Build
dotnet build
# Run
dotnet run -- --help
Självbevarade byggnader
För produktion utan krav på .NET runtime installation:
# 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
Utmatning: bin/Release/net9.0/<runtime>/publish/docsummarizer
Felsökning
"Kan inte ansluta till Ollama"
- Se till att Ollama kör:
ollama serve - Kontrollera att modellerna dras:
ollama list
"Doclingtjänst inte tillgänglig"
- Det här är krävs endast för PDF/DOCX-filer
- För Markdown-filer kan du ignorera detta fel
- För att fixa:
docker run -p 5001:5001 quay.io/docling-project/docling-serve
"Qdrantanslutning misslyckades"
- Det här är endast krävs för RAG-läge (
--mode Rag) - För MapReduce- läge (standard), kan du ignorera detta fel
- För att fixa:
docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant
"Circuit breaker är öppen"
- Ollama är överbelastad eller har kraschat
- Vänta 30 sekunder för brytaren att återställa, eller starta om Ollama
- Verktyget använder Polly resilience policys och kommer auto-retry
"Wsarecv" eller anslutningsfel (Windows)
- Detta är en känd Ollama fråga om Windows (GitHub #13340)
- Verktyget automatiskt hanterar detta med försök logik och anslutning återhämtning
- Om ihållande, starta om Ollama och försök igen
"LLM-generationen har gått ut"
- Öka tidsgränsen i konfigurationen
- Dela upp mycket stora dokument
- Kontrollera att Ollama inte är överbelastad med andra förfrågningar
Repetitiva eller lågkvalitativa sammanfattningar
Symtom: Kul poäng ekar prompten ("Återvänd endast kul poäng", "Reglen är...") i stället för att sammanfatta innehållet.
Orsak: Modell kämpar med snabb eller innehåll för länge.
Rätta: Standardvärdet qwen2.5:1.5b hanterar de flesta dokument bra. För problematiska dokument, försök --model llama3.2:3b. Se också Förlaga till rekommendationer.
Sammanfattning Ignorerar dokumentinnehåll
Om sammanfattningen verkar generisk eller inte refererar till specifikt innehåll:
- Modellen kan vara hallucinerande - kontroll
Citation ratei spårutgång - Försök med RAG- läge (
--mode Rag) som motiverar sammanfattningar i återvunna bitar - Användning
--verboseför att se vilka bitar som bearbetas
Omnämnanden saknas eller är ogiltiga
Om sammanfattningar saknas [chunk-N] Hänvisningar:
- Små modeller prioriterar innehåll framför citeringsformatering
- Prompterna är optimerade för hastighet, inte strikt citering överensstämmelse
- För strikta citeringar, använd större modeller som
llama3.2:3b - Kontrollera
Citation rateI spår – högre värden tyder på bättre spårbarhet
Prestandatips
- KartaReduce för hastighet (parallellbitar)
qwen2.5:1.5bför hastighet,llama3.2:3bför balans,llama3.1:8bför kvalitet- ONNX-inbäddningar (standard) är snabbare än Ollama för RAG-läge
- Lägre
maxLlmParallelismom du upplever timeout
Resurser
- Källkod
- Utgåvor av GitHub
- Dockning / Dockning tjänar
- Qdrant Ordförande - Lokal vektordatabas
- Ollama Ordförande / OllamaSharp Ordförande
- Polly Ordförande - .NET motståndskraft och tillfällig felhantering
- Spectre.Console - Vacker terminal UI
Serienavigering
- Del 1: Bygga ett dokumentsammanställning med RAG - Arkitekturen och mönster
- Del 2: Använda verktyget Snabbstartsguide
- Del 3: Avancerade begrepp - Djupdyk i BERT, ONNX, inbäddningar och hybridsökning