# DocSummarizer Part 2 - Χρήση του εργαλείου

<!--category-- AI, LLM, RAG, C#, Docling, Ollama, Qdrant, Tools -->
<datetime class="hidden">2025-12-21T11:00</datetime>

[![Απελευθέρωση GitHub](https://img.shields.io/github/v/release/scottgal/mostlylucidweb?filter=docsummarizer*&label=docsummarizer)](https://github.com/scottgal/mostlylucidweb/releases?q=docsummarizer)
[![NET](https://img.shields.io/badge/.NET-9.0-512BD4)](https://dotnet.microsoft.com/)
[![Έκδοση](https://img.shields.io/badge/version-3.1.0-blue)](https://github.com/scottgal/mostlylucidweb/releases?q=docsummarizer)

Αυτό είναι **Μέρος 2** της σειράς DocSummarizer. [Μέρος 1](/blog/building-a-document-summarizer-with-rag) για την αρχιτεκτονική και τα πρότυπα, ή [Μέρος 3](/blog/docsummarizer-advanced-concepts) για τη βαθιά τεχνική κατάδυση σε ενσωμάτωση και ανάκτηση.

> **Μετατρέψτε τα έγγραφα ή τις διευθύνσεις URL σε περιλήψεις αποδεικτικών στοιχείων - για ανθρώπους ή πράκτορες της τεχνητής νοημοσύνης - χωρίς να στείλετε τίποτα στο σύννεφο.**

Κάθε ισχυρισμός είναι ανιχνεύσιμο, κάθε γεγονός αναφέρει την πηγή του.

```bash
# Human-readable summary
docsummarizer -f contract.pdf

# JSON for agents/pipelines
docsummarizer tool -u "https://docs.example.com"
```

**Τι καλύπτει αυτό το άρθρο**: Εγκατάσταση, βασικές λειτουργίες (Auto/BertRag/Bert), πρότυπα και περιπτώσεις κοινής χρήσης.

**Αυτό που δεν καλύπτει**: Πλήρης εντολή αναφοράς, επιλογές ρυθμίσεων, αντιμετώπιση προβλημάτων, λεπτομέρειες αρχιτεκτονικής.

Για πλήρη τεκμηρίωση, βλέπε [Readme](https://github.com/scottgal/mostlylucidweb/blob/main/Mostlylucid.DocSummarizer/README.md). Για το πώς λειτουργεί εσωτερικά, δείτε [Μέρος 3](/blog/docsummarizer-advanced-concepts).

[TOC]

## Γιατί Υπάρχει Αυτό

Οι περισσότεροι πληροφοριοδότες σου δίνουν κείμενο. *στοιχεία*.

- **Κάθε απαίτηση περιλαμβάνει `[chunk-N]` προσβολές** πίσω στο αρχικό υλικό
- **Επίπεδα εμπιστοσύνης** (υψηλή/μέτρια/χαμηλή) με βάση τα αποδεικτικά στοιχεία
- **Δομημένη έξοδος JSON** για ενσωμάτωση παραγόντων, αγωγών CI ή διακομιστών MCP
- **Μετρήσεις ποιότητας** πιάνεις παραισθήσεις πριν ξεφύγουν.

Εάν χρειάζεστε να *εμπιστοσύνη* Μια περίληψη - ή να την τροφοδοτήσει σε άλλο σύστημα - που έχει σημασία.

## Χαρακτηριστικά

- **Αγωγός BertRag**: Παραγωγή-βαθμού BERT εξαγωγή → ανάκτηση → σύνθεση LLM
- **Αυτόματη λειτουργία**: Smart mode selection based on document and question
- **Λειτουργία Bert**: Καθαρή εξόρυξη - δεν απαιτείται LLM, λειτουργεί εκτός λειτουργίας (~3-5s)
- **Αποδεικτικά στοιχεία-γύρω έξοδος**: Παραπομπές, επίπεδα εμπιστοσύνης, ιχνηλάσιμες αξιώσεις
- **Πολλαπλές λειτουργίες**: Auto, BertRag, Bert, BertHybrid, MapReduce, Rag, Iteratial
- **Λειτουργία εργαλείων**: Καθαρός JSON για πράκτορες LLM, διακομιστές MCP, έλεγχοι CI
- **13 Πρότυπα**: προεπιλογή, πεζογραφία, σύντομη, oneliner, σφαίρες, εκτελεστικός, λεπτομερής, τεχνική, ακαδημαϊκή, αναφορές, έκθεση βιβλίου, συνάντηση, αυστηρή
- **Μεγάλα Έγγραφα**: Χειρίζεται 500+ σελίδες με ιεραρχική επεξεργασία
- **Γουέμπ Φέρνοντας**: Security-harded (SSRF protection, HTML sanitization)
- **Λειτουργία θεατρικού συγγραφέα**: Ακέφαλο πρόγραμμα περιήγησης για σελίδες με JavaScript (SPAs, React apps)
- **Ενσωμάτωση ONNX**: Zero-config τοπικές προσθήκες - μοντέλα auto-download για την πρώτη χρήση
- **Ανάλυση Ποιότητας**: Ανίχνευση ψευδαίσθησης, εξαγωγή οντότητας
- **Ανθεκτικό LLM**: Polly-based retry with jitter backoff + circular breaker
- **Μόνο τοπικά**: Τίποτα δεν φεύγει από το μηχάνημα σας

## Χρήση ως εργαλείο LLM

Η `tool` Η εντολή έχει σχεδιαστεί ειδικά για την ενσωμάτωση με τους πράκτορες AI, τους διακομιστές MCP και άλλα αυτοματοποιημένα συστήματα.

### Βασική χρήση εργαλείων

```bash
# 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'
```

### Δομή εξόδου εργαλείων

Η εντολή εργαλείων επιστρέφει δομημένη JSON με εντοπισμό στοιχείων:

```json
{
  "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"
  }
}
```

### Επιλογές εντολών εργαλείων

```bash
docsummarizer tool [options]
```

Επιλογή &gt; Σύντομη Περιγραφή &gt;
|--------|-------|-------------|
| `--url` | `-u` URL για να φέρει και να συνοψίσει
| `--file` | `-f` Αρχείο προς σύνοψη
| `--query` | `-q` Προαιρετική ερώτηση εστίασης
| `--mode` | `-m` Λειτουργία Summarization (Auto, BertRag, Bert, BertHybrid, MapReduce, Rag, Iterative)
| `--model` Μοντέλο Ollama για χρήση
| `--config` | `-c` Ρολόι αρχείου ρύθμισης &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt; &gt; &gt; &gt; &gt; &lt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt; &lt; &gt; &gt; &lt; &gt; &gt; &lt; &gt; &gt; &lt; &gt; &gt; &gt; &gt; &lt; &gt; &lt; &gt; &lt; &lt; &lt; &lt; &gt; &lt; &lt; &lt; &lt; &lt; &lt; &lt; &lt; &lt; &gt; &gt; &gt; &lt;

### Βασικές αρχές σχεδιασμού

- **Αποδείξεις Γεγονότα**: Κάθε απαίτηση περιλαμβάνει `evidence` IDs refering source chunks
- **Επίπεδα εμπιστοσύνης**: Ισχυρίζονται οι απαιτήσεις `high`, `medium`, ή `low` με βάση τα αποδεικτικά στοιχεία
- **Καθαρά έξοδος**: Η `executive` περίληψη δεν έχει δείκτες αναφοράς για εύκολη εμφάνιση
- **Μεταδεδομένα**: Η επεξεργασία στατιστικών βοηθά στην αποσφαλμάτωση και την αξιολόγηση της ποιότητας
- **Χειρισμός λάθους**: Οι αποτυχίες επιστρέφουν `success: false` με `error` Μήνυμα

### Παραδείγματα ενσωμάτωσης

**Σενάριο Python:**

```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']}")
```

**Αγωγός κελύφους:**

```bash
# 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'
```

## Γρήγορη εκκίνηση

### Κατεβάστε Προκατασκευασμένα Δυαδικά

Προ-χτισμένο ιθαγενή εκτελέσιμα είναι διαθέσιμα από [Κυκλοφορίες GitHub](https://github.com/scottgal/mostlylucidweb/releases?q=docsummarizer):

Πλατφόρμα Αρχιτεκτονική Κατεβάστε την Πλατφόρμα
|----------|--------------|----------|
Τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows, τα Windows. `docsummarizer-win-x64.zip` |
Τα Windows ARM64 `docsummarizer-win-arm64.zip` |
Λινούξ `docsummarizer-linux-x64.tar.gz` |
Linux Linux ARM64 `docsummarizer-linux-arm64.tar.gz` |
Μακς, Χ64 (Intel) `docsummarizer-osx-x64.tar.gz` |
ARM64 (Apple Silicon) `docsummarizer-osx-arm64.tar.gz` |

```bash
# 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 "."
```

### Προαπαιτούμενα

#### Λειτουργία Bert (χωρίς εξωτερικές υπηρεσίες)

Για καθαρή εξόρυξη, **δεν απαιτούνται εξωτερικές υπηρεσίες**:

```bash
docsummarizer -f document.md -m Bert
```

ONNX μοντέλα auto-download από HuggingFace κατά την πρώτη χρήση (~23MB). Επιστρέφει σε ~3-5 δευτερόλεπτα.

#### LLM Modes (Auto, BertRag, MapReduce, κλπ.)

Για την LLM-powered distribution απαιτείται Ollama:

```bash
# Install Ollama from https://ollama.ai
ollama pull llama3.2:3b        # Default model - good balance of speed/quality
ollama serve
```

> **Τροχαίο άκρο**: Για γρηγορότερες περιλήψεις (~3s vs ~15s), χρήση `--model qwen2.5:1.5b`

#### Προαιρετικό: Αποκωδικοποίηση (Δευτερεύουσες Μορφές)

Απαιτείται για PDF, DOCX, XLSX, PPTX, HTML, εικόνες (PNG/JPG/TIFF), CSV, VTT και AsciiDoc αρχεία. **Markdown και απλά αρχεία κειμένου διαβάζονται άμεσα - δεν απαιτείται Dockling.**

```bash
docker run -d -p 5001:5001 quay.io/docling-project/docling-serve
```

#### Προαιρετικό: Qdrant (Δυνατότητα αποθήκευσης διάνυσμα)

Δεν απαιτείται από προεπιλογή - BertRag χρησιμοποιεί in-memory vectors. Ενεργοποιήστε Qdrant για επίμονη αποθήκευση για να αποφύγετε την εκ νέου ενσωμάτωση εγγράφων σε επόμενες διαδρομές:

```bash
docker run -d -p 6333:6333 -p 6334:6334 qdrant/qdrant
```

Στη συνέχεια ρυθμίστε `docsummarizer.json`:

```json
{
  "bertRag": {
    "vectorStore": "Qdrant",
    "collectionName": "docsummarizer",
    "persistVectors": true
  }
}
```

#### Προαιρετικό: Ενσωμάτωση Ollama

Εάν προτιμάτε Ollama για ενσωμάτωση αντί του ONNX:

```bash
ollama pull nomic-embed-text   # Or mxbai-embed-large
# Then use: --embedding-backend Ollama
```

### Επιβεβαίωση εξαρτήσεων

```bash
docsummarizer check --verbose
```

Η αναμενόμενη έξοδος δείχνει έναν διαμορφωμένο πίνακα:

```
              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.
```

> **Σημείωση**: Docling and Qdrant showing 

## Χρήση

### Προκαθορισμένη συμπεριφορά

Τρέξιμο `docsummarizer` χωρίς επιχειρήματα:

1. Ψάξτε για `README.md` στον τρέχοντα κατάλογο
2. Συνοψίστε το χρησιμοποιώντας **Αυτόματη λειτουργία** (έξυπνη επιλογή τρόπου λειτουργίας)
3. Εκτυπώστε την περίληψη στην κονσόλα με ένα ωραίο πάνελ UI
4. Auto-αποθήκευση σε `readme.summary.md`

```bash
# 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
```

### Βασική ανακεφαλαίωση

```bash
# 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
```

## Τρόποι ανακεφαλαίωσης

Το εργαλείο εξελίχθηκε από το "just MapReduce" σε έναν πλήρη αγωγό.

### Αυτόματη (προεπιλογή)

Επιλέγει τη σωστή λειτουργία με βάση αυτό που ζητάτε. Χρησιμοποιήστε αυτό, εκτός αν έχετε κάποιο λόγο να μην το κάνετε.

```bash
docsummarizer -f doc.pdf
```

### BertRag (Παραγωγή)

Αυτό είναι που θέλετε για την παραγωγή.

1. **Εκχύλισμα** - Μεταθέστε το έγγραφο σε τμήματα, τα ενσωματώστε με BERT
2. **Ανάκτηση** - Βρείτε τα σχετικά τμήματα (σημαντική αναζήτηση + salience βαθμολόγηση)
3. **Συνθέτης** - Η LLM γράφει μια άπταιστη περίληψη από αυτά τα τμήματα

```bash
docsummarizer -f doc.pdf -m BertRag
docsummarizer -f doc.pdf -m BertRag --focus "payment terms"
```

**Γιατί να το χρησιμοποιήσετε:** Κάθε απαίτηση βρίσκεται πίσω σε ένα τμήμα της πηγής. Δεν παραισθήσεις. Κλίμακα σε οποιοδήποτε μέγεθος εγγράφου. LLM λειτουργεί μόνο στο τέλος (cheap).

### Bert (Τελευταία, αριθ. LLM)

Καθαρή εξαγωγή χρησιμοποιώντας τοπικά μοντέλα ONNX. Δεν LLM κλήση καθόλου.

```bash
docsummarizer -f doc.pdf -m Bert
```

**Γιατί να το χρησιμοποιήσετε:** Λειτουργεί εκτός σύνδεσης. Επιστρέφει σε 3-5 δευτερόλεπτα. Καθοριστική (ίδια είσοδος = ίδια έξοδος). Αρκετά καλή για γρήγορες σαρώσεις.

### BertHybrid

BERT εκχυλίσματα, LLM γυαλίζει. Μεσαίο έδαφος μεταξύ Bert και BertRag.

```bash
docsummarizer -f doc.pdf -m BertHybrid
```

### Χάρτης Μειώστε / Rag / Διανοητική

Η αρχική λειτουργία. Ακόμα λειτουργεί, αλλά BertRag τους αντικατέστησε για τις περισσότερες περιπτώσεις χρήσης.

- **Μειώστε το χάρτη**: Παράλληλο πνιγμό, καλό για 100% κάλυψη
- **Ραγκ**: Αναζήτηση διάνυσμα, καλό για εστιασμένες ερωτήσεις (legacy - BertRag κάνει αυτό καλύτερα)
- **Διανοητική**: Συνεχής επεξεργασία, χρήση μόνο για μικροσκοπικά έγγραφα

```bash
docsummarizer -f doc.pdf -m MapReduce  # Full coverage
docsummarizer -f doc.pdf -m Rag --focus "query"  # Legacy focused mode
```

### Λειτουργία ερώτησης

Αντί να κάνετε ερωτήσεις σχετικά με ένα έγγραφο:

```bash
docsummarizer -f manual.pdf --query "How do I install the software?"
```

### Αναπαραγωγή URL ιστούName

Συνοψίστε τις ιστοσελίδες απευθείας χωρίς λήψη:

```bash
# 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
```

**Υποστηριγμένο περιεχόμενο**: HTML (ανθυγιεινές), PDF, Markdown, εικόνες (OCR), έγγραφα γραφείου. Μεγάλες εικόνες επαναδιαμορφώνονται αυτόματα.

**Ασφάλεια**: Προστασία SSRF, DNS επανασύνδεση προστασίας, περιεχόμενο τύπου gating, προστασία βόμβα αποσυμπίεσης, απολύμανση HTML.

**JavaScript-διαχωρισμένες σελίδες**: Χρήση `--web-mode Playwright` για εφαρμογές ZPA και React (αυτόματο-installs Χρώμιο κατά την πρώτη χρήση).

### Δομημένη κατάσταση

Εκχύλισμα που είναι αναγνώσιμο από τη μηχανή JSON αντί της πρόζας:

```bash
docsummarizer -f document.pdf --structured -o Json
```

Απόσπασμα: οντότητες, λειτουργίες, βασικές ροές, γεγονότα (με τα επίπεδα εμπιστοσύνης), αβεβαιότητες, περικοπές.

### Συνοπτικά πρότυπα

```bash
# 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
```

Τιτλολόγιο &lt; &gt; Λέξεις &gt; Best για ~
|----------|-------|----------|
| `default` 
| `prose` ~400 ~ Καθαρό πρόζα πολλαπλών παραγράφων - χωρίς μεταδεδομένα ~
| `brief` Γρήγορη περίληψη 2-3 πρότασης
| `oneliner` ~25 ~ Περίληψη ενιαίας πρότασης ~
| `bullets` Αυτόματη λίστα σημείων Bullet (5-7 αντικείμενα)
| `executive` □ ~150 Ενημέρωση της Εκτελεστικής Επιτροπής με συστάσεις □
| `detailed` 
| `technical` ~350 ~ Τεχνικά docs με λεπτομέρειες εφαρμογής ~
| `academic` Ακαδημαϊκή αφηρημένη μορφή
| `citations` Αυτόματη &amp; &amp; &amp; &amp; &gt; Βασικά εισαγωγικά με αναφορές μόνο στην πηγή
| `bookreport` Έκθεση βιβλίου (ρύθμιση, χαρακτήρες, οικόπεδο, θέματα)
| `meeting` ~200 σημειώσεις συνάντησης (αποφάσεις, δράσεις, ερωτήσεις)
| `strict` ~60 ~ Token-αποτελεσματικό, 3 σφαίρες max, χωρίς αντιστάθμιση ~

Για να δείτε όλα τα διαθέσιμα πρότυπα με περιγραφές:

```bash
docsummarizer templates
```

### Μοντέλο συγκριτικής αξιολόγησης

Συγκρίνετε τα μοντέλα στο ίδιο έγγραφο με τη χρήση του `benchmark` Υποδιοικητής:

```bash
docsummarizer benchmark -f doc.pdf -m "qwen2.5:1.5b,llama3.2:3b,ministral-3:3b"
```

Η εντολή αναφοράς παριστάνει το έγγραφο μία φορά, στη συνέχεια τρέχει κάθε μοντέλο στα ίδια κομμάτια για δίκαιη σύγκριση.

### Επεξεργασία παρτίδας

Επεξεργαστείτε όλους τους καταλόγους:

```bash
# 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
```

### Επιλογές γραμμής εντολών

Επιλογή &gt; Σύντομη Περιγραφή &gt; Προκαθορισμένο &gt;
|--------|-------|-------------|---------|
| `--file` | `-f` Διαδρομή προς το έγγραφο (DOCX, PDF, MD) 
| `--directory` | `-d` Διαδρομή προς τον κατάλογο για την επεξεργασία παρτίδων
| `--url` | `-u` Web URL για να φέρει και να συνοψίσει
| `--web-enabled` &gt; Ενεργοποιήστε το web getching (απαιτείται για --url) `false` |
| `--mode` | `-m` Λειτουργία Summarization: Auto, BertRag, Bert, BertHybrid, MapReduce, Rag, Iterative `Auto` |
| `--structured` | `-s` Χρήση δομημένου τρόπου εξαγωγής JSON `false` |
| `--focus` Εστίαση ερωτημάτων για τον τρόπο λειτουργίας RAG
| `--query` | `-q` Λειτουργία ερώτησης αντί για την εκκαθάριση Κανένας
| `--model` Μοντέλο Ollama για χρήση `llama3.2:3b` |
| `--verbose` | `-v` Εμφάνιση λεπτομερούς προόδου με ζωντανό UI `false` |
| `--config` | `-c` Διαδρομή προς το αρχείο ρυθμίσεων Auto-ανακαλύψτε το
| `--output-format` | `-o` Μορφή εξόδου: Κονσόλα, κείμενο, Markdown, Json `Console` |
| `--output-dir` Ο κατάλογος εξόδου για τις εξόδους αρχείων
| `--extensions` | `-e` □ Επεκτάσεις αρχείων για τη λειτουργία παρτίδας □ Όλες οι μορφές Dockling
| `--recursive` | `-r` Οι κατάλογοι της διαδικασίας επανεμφανίζονται `false` |
| `--template` | `-t` Ανακεφαλαιωτικό πρότυπο (προκαθορισμένο, σύντομο, σφαίρες, εκτελεστικό κ.λπ.) `default` |
| `--words` | `-w` Ο αριθμός λέξεων στόχου (πρωτότυποoverrides) Το πρότυπο προεπιλεγμένο

| `--embedding-backend` Ενσωμάτωση backend: Onnx, Ollama `Onnx` |
| `--embedding-model` Το όνομα μοντέλου του ONNX (RAG mode) `AllMiniLmL6V2` |
| `--web-mode` Λειτουργία Web getch: Απλός, Playwright `Simple` |
| `--analyze` | `-a` Αναλύστε την ποιότητα στην περίληψη `false` |

## Τρόποι ανακεφαλαίωσης

### Μειώστε (Συνιστάται)

Καλύτερα για περιεκτικές περιλήψεις με πλήρη κάλυψη εγγράφων.

```bash
docsummarizer -f document.pdf -m MapReduce -v
```

**Πώς λειτουργεί**:

1. Διαχωρίζει το έγγραφο σε δομικά κομμάτια (κατά τίτλο)
2. Συνοψίζει κάθε κομμάτι παράλληλα με τη χρήση LLM
3. Μειώνει τις περιλήψεις στην εκτελεστική περίληψη με αναφορές
4. Επικυρώνει όλες τις αναφορές αναφοράς πραγματικά κομμάτια

**Ιεραρχική Μείωση για Μακρά Έγγραφα**:

Για πολύ μεγάλα έγγραφα όπου οι συνδυασμένες περιλήψεις κομματιών υπερβαίνουν το παράθυρο πλαίσιο του μοντέλου, ο ΧάρτηςΜειώστε αυτόματα χρησιμοποιεί ιεραρχική μείωση:

1. **Παρτίδα**: Περιλήψεις ομάδων σε παρτίδες που ταιριάζουν στο πλαίσιο
2. **Ενδιάμεση μείωση**: Μειώνει κάθε παρτίδα σε μια συμπυκνωμένη περίληψη
3. **Τελική μείωση**: Merges ενδιάμεσες περιλήψεις στην τελική έξοδο
4. **Αναδρομική**: Εάν τα ενδιάμεσα είναι ακόμα πολύ μεγάλα, προσθέτει περισσότερα επίπεδα

```
100 chunks → 100 summaries → 5 batches → 5 intermediate summaries → final
```

Αυτό διατηρεί πλήρη κάλυψη εγγράφων ανεξάρτητα από το μήκος - κάθε κομμάτι συμβάλλει στην τελική περίληψη. Το εργαλείο εκτιμά μάρκες (~4 chars/token) και στοχεύει 60% τη χρήση παραθύρων πλαίσιο ανά κάρτα μείωσης.

**Pros**: Γρήγορη, πλήρης κάλυψη, παράλληλη επεξεργασία, χειρίζεται οποιοδήποτε μήκος εγγράφου
**ΚονςCity name (optional, probably does not need a translation)**: Μπορεί να χάσετε συνδέσεις διατομής, πιο αργά για πολύ μεγάλα έγγραφα

### RAG (Best for Focused Querries)

Καλύτερα όταν πρέπει να επικεντρωθεί σε συγκεκριμένα θέματα ή να έχουν μια στοχευμένη ερώτηση.

```bash
docsummarizer -f document.pdf -m Rag --focus "pricing and payment terms" -v
```

**Πώς λειτουργεί**:

1. Indexes document κομμάτια ως vector embeddings στο Qdrant
2. Απόσπασμα βασικών θεμάτων από τίτλους εγγράφων
3. Ανακτά σχετικά κομμάτια ανά θέμα χρησιμοποιώντας σημασιολογική αναζήτηση
4. Συνθέτει εστιασμένη περίληψη με αναφορές

**Πότε να χρησιμοποιήσετε RAG πάνω από MapReduct**:

Σενάριο Βέλτιστης Λειτουργίας
|----------|-----------|
• "Summarize this whole document"
Τι λέει αυτό για την ασφάλεια;
Το εγχειρίδιο 500 σελίδων, χρειάζεται τα πάντα. Χάρτης Μείωσε (ιεραρχικό)
Εγχειρίδιο 500 σελίδων, χρειάζεται ειδικό τμήμα
Χρειάζεστε γρήγορα αποτελέσματα, δεν έχετε Qdrant

RAG είναι **Όχι, όχι.** about handling long documents - ΧάρτηςΜειώστε τις λαβές που με ιεραρχική μείωση. **Φίλτρο συνάφειας**: όταν θέλετε να αγνοήσετε το 90% ενός εγγράφου και να εστιάσετε σε αυτό που έχει σημασία για τη συγκεκριμένη ερώτησή σας.

**Pros**: Επικεντρωμένη στο θέμα, σημασιολογική κατανόηση, δείκτης επαναχρησιμοποίησης, γρηγορότερα για εστιασμένες ερωτήσεις
**ΚονςCity name (optional, probably does not need a translation)**: Μπορεί να χάσει περιεχόμενο εκτός περιοχής εστίασης, απαιτεί Qdrant, βραδύτερη αρχική ευρετηρίαση

### Διανοητική

Καλύτερα για αφηγηματικά έγγραφα όπου το πλαίσιο ρέει διαδοχικά.

```bash
docsummarizer -f story.pdf -m Iterative -v
```

**Προειδοποίηση**: Πιο αργή και μπορεί να χάσει το πλαίσιο σε μακρινά έγγραφα (>10 κομμάτια).

## Μεγάλος Οδηγός Εγγράφων

### Επιλογή της Σωστής Λειτουργίας

~ Τύπος εγγράφου ~ Τρόπος στόχου ~ Γιατί ~
|---------------|------|------|-----|
□ Τεχνικό spec (50+ σελίδες) □ Πλήρης περίληψη ΧάρτηςΜειώστε την πλήρη κάλυψη
Μυθιστόρημα/Εμφάνιση άρθρων Πλήρης περίληψη ΧάρτηςΜειώστε το χρονικό πλαίσιο των αναγκών
Το νομικό συμβόλαιο είναι πλήρης περίληψη Χάρτης Μειώστε τις ρήτρες που δεν μπορούν να αστοχήσουν.
Το νομικό συμβόλαιο "Όροι πληρωμής";
API docs (200 pages) □ "Πώς λειτουργεί το Auth;"
Δομημένος, χρειάζεται τα πάντα

### Fiction vs Non-Fiction

Ο τύπος περιεχομένου είναι ο καλύτερος τρόπος σημειώσεις
|--------------|-----------|-------|
| **Φαντασία/Εμφάνιση** □ ΧάρτηςΜειώστε το οικόπεδο απαιτεί διαδοχικό πλαίσιο
| **Τεχνικά έγγραφα** Αμφότερος Χάρτης Μειώστε για επισκόπηση, RAG για συγκεκριμένες προδιαγραφές
| **Νομικά/συμβάσεις** Χάρτης Μειώστε κάθε ρήτρα μετράει.
| **Εγχειρίδια** Οι ΚΓΠΕ συνήθως ρωτούν για συγκεκριμένες λεπτομέρειες.

### Επιδόσεις

Το μέγεθος του εγγράφου ~ Χάρτης Μείωσε τις σημειώσεις ~
|---------------|-----------|-----|-------|
10 pages 15s 20s 20s 20s 20s 10s 10s 10s 15s 20s 20s 20s 20s
50 σελίδες 45s 30s 30s 30s 30s 30s 30s
Διακόσιες σελίδες Σελ 3-5 λεπτά 1-2 λεπτά Ιεραρχική μείωση
Σελίδες 500+ 10-15 λεπτά 2-3 λεπτά Σκεφτείτε πολλές ερωτήσεις RAG

## Ρύθμιση

### Δημιουργία προκαθορισμένης ρύθμισης

```bash
docsummarizer config --output myconfig.json
```

### Αρχείο ρύθμισης

Η ρύθμιση ανακαλύπτεται αυτόματα από:

1. `--config` επιλογή
2. `docsummarizer.json` στον τρέχοντα κατάλογο
3. `.docsummarizer.json` (Κρυφό αρχείο)
4. `~/.docsummarizer.json` (Σπίτι χρήστη)

Παράδειγμα `docsummarizer.json`:

```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
  }
}
```

### Επιλογές επεξεργασίας

Επιλογή &gt; Προκαθορισμένο &gt; Περιγραφή &gt;
|--------|---------|-------------|
| `maxLlmParallelism` Ολοκληρωτικά αιτήματα (ουρές Ollama, έτσι υψηλότερες τιμές μόνο ουρά)
| `maxHeadingLevel` Σετ σε 3 για λεπτότερη κοκκότητα
| `targetChunkTokens` 0 (αυτόματο) μέγεθος στόχου. 0 = αυτόματος υπολογισμός (~25% του παραθύρου πλαισίου)
| `minChunkTokens` 0 (auto) 

## Μορφή εξόδου

### Συνοπτική διάρθρωση

```C:\Blog\mostlylucidweb\Mostlylucid\Markdown\docsummarizer-tool.md
## 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
```

**Μετρητές ιχνοστοιχείων**: Coverage (% των τμημάτων που περιλαμβάνονται), Citation rate (cititions/buttle), Chunks processed (RAG may skip some).

## Υπόδειγμα συστάσεων

Μοντέλο Μέγεθος Ταχύτητα Ποιότητα Χρήση Κιβωτός
|-------|------|-------|---------|----------|
| `qwen2.5:1.5b` Πολύ γρήγορος (~3s) πολύ καλός βελτιστοποιημένος ταχύτητα.
| `gemma3:1b` ~ 815MB ~ Fast (~10s) ~ Fair ~ Alternative small model ~
| `llama3.2:3b` 2GB Μεσαίο (~15s) Πολύ καλό **Προκαθορισμένο** - καλή ισορροπία
| `ministral-3:3b` Μεσαίο (~20s) Πολύ καλός Εστιασμένος στην ποιότητα
| `llama3.1:8b` Αργές (~45s) Εξαιρετικές περιλήψεις υψηλής ποιότητας

> **Συμβουλή**: Για γρηγορότερες περιλήψεις (~3s vs ~15s), χρήση `--model qwen2.5:1.5b`. Για τα κρίσιμα έγγραφα όπου η ποιότητα έχει μεγαλύτερη σημασία, χρήση `--model llama3.1:8b`.

## Κατασκευή από την πηγή

```bash
# Clone the repository
git clone https://github.com/scottgal/mostlylucidweb.git
cd mostlylucidweb/Mostlylucid.DocSummarizer

# Build
dotnet build

# Run
dotnet run -- --help
```

### Αυτοσυντηρούμενα Οικοδομήματα

Για την ανάπτυξη της παραγωγής χωρίς να απαιτείται εγκατάσταση NET runtime:

```bash
# 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
```

Έξοδος: `bin/Release/net9.0/<runtime>/publish/docsummarizer`

## Αντιμετώπιση προβλημάτων

### "Δεν μπορούσε να συνδεθεί με την Ollama"

- Βεβαιωθείτε ότι η Ollama τρέχει: `ollama serve`
- Τα μοντέλα ελέγχου τραβήχτηκαν: `ollama list`

### "Docling service notable"

- Αυτό είναι **μόνο για αρχεία PDF/DOCX**
- Για αρχεία Markdown, μπορείτε να αγνοήσετε αυτό το σφάλμα
- Για να διορθώσετε: `docker run -p 5001:5001 quay.io/docling-project/docling-serve`

### "Η σύνδεση Qdrant απέτυχε"

- Αυτό είναι **Μόνο για τον τρόπο λειτουργίας RAG απαιτείται** (`--mode Rag`)
- Για τη λειτουργία μείωσης του χάρτη (προεπιλογή), μπορείτε να αγνοήσετε αυτό το σφάλμα
- Για να διορθώσετε: `docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant`

### "Ο διακόπτης είναι ανοιχτός"

- Η Ολάμα είναι υπερφορτωμένη ή έχει συντριβεί.
- Περιμένετε 30 δευτερόλεπτα για την επανεκκίνηση του διακόπτη κυκλώματος, ή επανεκκίνηση Ollama
- Το εργαλείο χρησιμοποιεί πολιτικές ανθεκτικότητας Polly και θα auto-retry

### "wsare contact" ή σφάλματα σύνδεσης (Windows)

- Αυτό είναι ένα γνωστό θέμα Ollama στα Windows (GitHub #13340)
- Το εργαλείο auto-handles αυτό με τη λογική ξανά δοκιμάστε και την ανάκτηση σύνδεσης
- Εάν επιμείνετε, επανεκκινήστε την Ollama και προσπαθήστε ξανά

### "Η γενιά LLM τελείωσε"

- Αύξηση χρονικού ορίου στη διαμόρφωση
- Διαχωρίστε πολύ μεγάλα έγγραφα
- Check Ollama δεν υπερφορτώνεται με άλλα αιτήματα

### Αντιδραστικός ή χαμηλής ποιότητας χαρακτηρισμός

**Συμπτώματα**: Οι πόντοι της σφαίρας αντηχούν την προτροπή ("Επιστρέψτε μόνο τα σημεία της σφαίρας," "Ο κανόνας είναι...") αντί να επαναπροσδιορίσετε το περιεχόμενο.

**Αιτία**: Μοντέλο που αγωνίζεται με την ταχύτητα ή το περιεχόμενο πάρα πολύ καιρό.

**Επιδιόρθωση**: Η προεπιλογή `qwen2.5:1.5b` Για προβληματικά έγγραφα, δοκιμάστε `--model llama3.2:3b`- Βλέπεις; [Υπόδειγμα συστάσεων](#model-recommendations).

### Περίληψη Αγνοεί Περιεχόμενο εγγράφου

Εάν η περίληψη φαίνεται γενική ή δεν αναφέρεται σε συγκεκριμένο περιεχόμενο:

- Το μοντέλο μπορεί να έχει παραισθήσεις - έλεγχος `Citation rate` στην έξοδο ιχνοστοιχείων
- Δοκιμάστε τη λειτουργία RAG (`--mode Rag`) p i ο υ p i ρ ο β λ έ p i ο ν τα ι p i ε ρ ι p i λ η ρ ο φ ο ρ ι κ έ ς p i ε ρ ι p i τ ώ σε ι ς σε ανακτημένα p i ε ρ ι σ σ σ ό τ ε ρ α
- Χρήση `--verbose` για να δούμε ποια κομμάτια υποβάλλονται σε επεξεργασία

### Λείπει ή μη έγκυρη αναφορά

Εάν δεν υπάρχουν περιλήψεις `[chunk-N]` αναφορές:

- Μικρά μοντέλα δίνουν προτεραιότητα στο περιεχόμενο πάνω από τη μορφοποίηση παραπομπή
- Τα κίνητρα βελτιστοποιούνται για ταχύτητα, όχι αυστηρή συμμόρφωση παραπομπή
- Για αυστηρές αναφορές, χρησιμοποιήστε μεγαλύτερα μοντέλα όπως `llama3.2:3b`
- Έλεγχος `Citation rate` ιχνηλάτηση - υψηλότερες τιμές δείχνουν καλύτερη ιχνηλασιμότητα

## Συμβουλές απόδοσης

- **Μειώστε το χάρτη** για ταχύτητα (παράλληλα κομμάτια)
- **`qwen2.5:1.5b`** για ταχύτητα, **`llama3.2:3b`** για την ισορροπία, **`llama3.1:8b`** για την ποιότητα
- **Ενσωμάτωση ONNX** (προκαθορισμένη) είναι ταχύτερη από την Ollama για τη λειτουργία RAG
- Χαμηλότερα **`maxLlmParallelism`** εάν βιώνουν timeouts

## Πόροι

- [Πηγαίος κώδικας](https://github.com/scottgal/mostlylucidweb/tree/main/Mostlylucid.DocSummarizer)
- [Κυκλοφορίες GitHub](https://github.com/scottgal/mostlylucidweb/releases?q=docsummarizer)
- [Αποκωδικοποίηση](https://github.com/docling-project/docling) / [Σερβίρετε DocklingName](https://github.com/docling-project/docling-serve)
- [QdrantCity name (optional, probably does not need a translation)](https://qdrant.tech/) - Τοπική διανυσματική βάση δεδομένων
- [ΟλάμαCity name (optional, probably does not need a translation)](https://ollama.ai/) / [OllamaSharp](https://github.com/awaescher/OllamaSharp)
- [ΠόλυCity name (optional, probably does not need a translation)](https://github.com/App-vNext/Polly) - Ανθεκτικότητα του δικτύου NET και παροδικός χειρισμός σφαλμάτων
- [Spectre.Console](https://spectreconsole.net/) - Όμορφο τερματικό UI

## Πλοήγηση σειράς

- **[Μέρος 1: Κατασκευή ενός συνοπτικού εγγράφου με τις ΚΓΠΕ](/blog/building-a-document-summarizer-with-rag)** - Η αρχιτεκτονική και τα μοτίβα
- **[Μέρος 2: Χρήση του εργαλείου](/blog/docsummarizer-tool)** (αυτό το άρθρο) - Οδηγός γρήγορης εκκίνησης
- **[Μέρος 3: Προηγμένες Έννοιες](/blog/docsummarizer-advanced-concepts)** - Βαθιά κατάδυση σε BERT, ONNX, ενσωμάτωση, και υβριδική αναζήτηση

### Σχετικό

- [Ανάλυση CSV με τοπικά LLMs](/blog/analysing-large-csv-files-with-local-llms)
- [Web Content with LLMs](/blog/fetching-and-analysing-web-content-with-llms)