# Частина програми DocSummarizer 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"
```

**Обговорення цієї статті**: встановлення, режими ключів (Авто/ BenrtRag/Bert), шаблони і звичайні випадки використання.

**Те, чого він не покриває**: Повне посилання на команди, параметри налаштування, усунення проблем, параметри архітектури.

За повною документацією дивіться [README](https://github.com/scottgal/mostlylucidweb/blob/main/Mostlylucid.DocSummarizer/README.md). Для того, як він працює внутрішньо, дивіться [Частина 3](/blog/docsummarizer-advanced-concepts).

[TOC]

## Чому це існує

Більшість резюме надають вам текст. *свідчення*.

- **Будь- яка заява включає `[chunk-N]` Цитата** повернутися до вихідного матеріалу
- **Рівень довіри** (високий/медіум/вниз) заснований на підтримуванні доказів.
- **Structured JSON вивід** для інтеграції агентів, каналів CI або серверів MCP
- **Якість вимірювачів** спіймати галюцинації, перш ніж вони втечуть

Якщо треба, *довіра* Резюме, або подавання його іншій системі, має значення.

## Можливості

- **Латка трубопроводу**: Виробнича евакуація → Вхід → синтез LLM
- **} Режим авто**: Вибір кмітливого режиму на основі документа і запиту
- **}Червоний режим**: Чиста екстрактивна резюме - не потрібна LLM, працює у автономному режимі (~3- 5s)
- **Округлений доказ виведення**: Цитування, рівень довіри, претензії
- **Декілька режимів**: Auto, BertRag, BertHybrid, MapReduce, Rag, Iterative
- **Режим інструментів**: Очистити JSON для агентів LLM, серверів MCP, перевірки CI
- **13 Шаблони**: типовий, проз, короткий, однолінер, кулі, виконавчий, детальний, технічний, академічний, цитати, книжковий звіт, зустріч, строгий
- **Великі документи**: Опрацьовує 500+ сторінки з ієрархічною обробкою
- **Отримання інтернету**: Придатний для безпеки (СРРФ захист, дезінфікація HTML)
- **Режим Playwright**: Переглядач безголових для сторінок JavaScript (SPAs, React apps)
- **Вбудовування ONNX**: Вбудовування з нульовим налаштуванням - автозавантаження моделей після першого використання
- **Аналіз якості**: Розпізнавання галюцинацій, видобування сутностей
- **Змінний LLM**: Полістична повторна спроба зі зворотним зривом + розривом зв' язку
- **Лише локальні**: Ніщо не залишає вашого комп' ютера

## Використовується як інструмент LLM

The `tool` Команда розроблена спеціально для інтеграції з агентами AI, серверами MCP та іншими автоматичними системами. Програма виведе програму JSON до stdout з умовами, накресленими на основі даних, - відмінною для побудови трубопроводів RAP або інструментів агентів.

### Основне використання інструментів

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

Передня частина
|--------|-------|-------------|
| `--url` | `-u` location to app і підсумувати ♪
| `--file` | `-f` } Файл, щоб підсумувати ♪
| `--query` | `-q` ♪ Додатковий запит у фокусі ♪
| `--mode` | `-m` Режим =$ (Автоматичний, БертРаґ, Берт, Бертхир, MpReduce, Rag, Ітерати)
| `--model` ♪ Ollama модель, яку слід використовувати ♪
| `--config` | `-c` шляху до файла налаштувань@ info: whatsthis

### Ключові принципи дизайну

- **Нагромадження доказу**: Кожна вимога `evidence` Ідентифікатори, що стосуються шматків джерела
- **Рівні довіри**: Оголошення оцінено `high`, `medium`, або `low` ґрунтована на підтвердженні доказів
- **Очистити вивід**: The `executive` резюме не має позначок посилань на простий дисплей
- **Метадані**: Обробка статистики допоможе у виявленні вад і оцінці якості
- **Обробка помилок**: Невдача повертається `success: false` з an `error` message

### Приклади інтеграції

**Скрипт мовою 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):

Теократична} Звантажте ♪
|----------|--------------|----------|
Д. д. д. д. д. д. д. д. д. д. д. д. д. д. ст. `docsummarizer-win-x64.zip` |
Д. д. д. д. д. д. д. д. д. д. д. д. д. д. `docsummarizer-win-arm64.zip` |
 x64} `docsummarizer-linux-x64.tar.gz` |
* Linux'ARMSecond item of% 1% 2 Drive sentence `docsummarizer-linux-arm64.tar.gz` |
 x64 (Intel)} `docsummarizer-osx-x64.tar.gz` |
АРМ64 (Аплейк Кремнієвий) годин `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 "."
```

### Передумови

#### Режим Берта (Без зовнішніх служб)

Для чистої екстрактної узагальнення, **Зовнішні служби не потрібні**:

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

Моделі ONNX автоматично завантажуються з Hbacking Face після першого використання (~23MB). Повертає через ~3- 5 секунд.

#### Режими LLM (Автоматично, BertRag, MapReduction тощо)

Для резюме з підтримкою LLM, потрібна 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`

#### Необов' язковий: Docling (Binary Formats)

Потрібні для PDF, DOCX, XLSX, PPTX, HTML, зображень (PNG/ JPG/TIFF), CSV, VTT і файли AsciiDoc. **Відмітки і текстові файли буде прочитано безпосередньо, не обов' язково для додзвону.**

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

#### Необов' язковий: Qdrant (Сховище вектора)

Типово не потрібен - BerterRag використовує вектори пам' яті. Увімкнути 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.
```

> **Примітка**Дзвінок і QDantrive показують, що це добре для роботи з Маркоду.

## Використання

### Типова поведінка

Працює `docsummarizer` без аргументів:

1. Шукати `README.md` у поточному каталозі
2. Підсумувати його за допомогою **Автоматичний режим** (смарний вибір режиму)
3. Вивести резюме до консолі за допомогою приємного інтерфейсу панелі
4. Автозбереження до `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
```

## Режими опублікування

Інструмент еволюціонував від " Простої карти " до повного трубопроводу. Ось що робить кожен режим:

### Авто (типове)

Вибирає правильний режим на основі того, про що ви просите. Використовуйте цей режим, якщо у вас немає причин цього.

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

### BertRag (Продукція)

Це те, що ви хочете для виробництва.

1. **Видобути** - Обробіть фрагменти документа, вбудуйте їх за допомогою BERT.
2. **Отримати** - Знайти відповідні сегменти (семантичний пошук + оцінка).
3. **Синтезація** - LLM пише резюме з цих сегментів

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

**Навіщо використовувати його:** Кожне твердження слідує за відрізком джерела. Без галюцинацій. Масштабує до будь- якого розміру документа. LLM виконується лише у кінці документа (sheap).

### Берт (Fast, No LLM)

Чисте видобування з використанням локальних моделей ONNX. Жодного виклику LLM взагалі.

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

**Навіщо використовувати його:** Працює у автономному режимі. Повертає у ~3- 5 секундах. Визначити (те саме, що і вхід = той самий вивід). Добре підходить для швидкого сканування.

### BertHybrid

Екскременти BERT, полірування LLM. Середина між Бертом і БертомRag.

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

### MapReduce / Rag / Ітеративний

Початкові режими. Все ще працюють, але для більшості випадків використання BertRag їх було замінено.

- **MpReduction**: Паралельний шматок, придатний для 100% покриття
- **РагEthiopian weekday 2 - LongDayName**: Векторний пошук, добрий для фокусованих запитів (легка - БертРаґ робить це краще)
- **Ітеративний**: Послідовна обробка, використовується лише для крихітних документів

```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?"
```

### Отримання адрес інтернету

Підсумувати веб- сторінки безпосередньо без звантаження:

```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, images (OCR), Office documents. Великі зображення автоматично змінено.

**Безпека**: захист від SSRF, захист від повторного прив' язання DNS, гігієна вмісту, захист від декомпресійної бомби, дезінфікація HTML.

**Сторінки JavaScript**: Використання `--web-mode Playwright` для програм SPEAs і React (встановлює зберігачій при першому використанні).

### Режим структури

Видобути пристрій для читання 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
```

♪00.
|----------|-------|----------|
| `default` +00} Зрівноважує підсумки з темами (2 абзаци) }
| `prose` 400 * Чищення багатоабзацового прозу - без цілих
| `brief` Д-р Цукер: "Чудово, підсумовуй 2-3 речення"
| `oneliner` Д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. про р.
| `bullets` * * * * _  
| `executive` Укорочення з'єднанням з'єднаним з' єднанням
| `detailed` 1000}Створити з повними темами*
| `technical` } Технічні docs with application details}
| `academic` Абстрактний формат Academic}
| `citations` mathicus separes with source's only 
| `bookreport` Повідомлення щодо мови +500 * (встановлення, символи, графік, теми)}
| `meeting` Мається на увазі, що ми маємо справу з цими записами, а не з ними.
| `strict` 60} Токен-ефективний, 3 кулі макс, ні він}

Щоб переглянути всі доступні шаблони з описами:

```bash
docsummarizer templates
```

### Моделювання позначок

Порівняти моделі за одним документом за допомогою `benchmark` subcommand:

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

Команда pursemark оброблює документ один раз, а потім запускає кожну модель на однакові шматки для справедливого порівняння. Вивід показує час, кількість слів і слова/ секунду для кожної з моделей.

### Пакетна обробка

Процесувати цілі каталоги:

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

### Параметри командного рядка

Передня частина рядка:
|--------|-------|-------------|---------|
| `--file` | `-f` path to document (DOCX, PDF, MD) * - *
| `--directory` | `-d` Шлях до каталогу для пакетної обробки - *
| `--url` | `-u` ♪ Web URL для app і підсумовування} - }
| `--web-enabled` ▸ Увімкнути отримання Тенет (обов' язкове для -- url)} `false` |
| `--mode` | `-m` Режим сягментації: Auto, BertRag, BerthHybrid, MapReduce, Rag, it'reate} `Auto` |
| `--structured` | `-s` Використовує режим JSON} `false` |
| `--focus` } Фокус-вправа на режим raG сяє None' s none
| `--query` | `-q` Режим передач замість узагальнення} Жодного}
| `--model` ♪ Ollama модель, яку слід використовувати ♪ `llama3.2:3b` |
| `--verbose` | `-v` біса Показувати детальний поступ з живим UI00 `false` |
| `--config` | `-c` Шлях до файла налаштування } Авто- }
| `--output-format` | `-o` } Вихідний формат: Консоль, Текст, Маркада, Json} `Console` |
| `--output-dir` }Д_ каталог для файлів виходів} Поточна}
| `--extensions` | `-e` ♪ File strations для пакетного режиму} Всі маски голінга}
| `--recursive` | `-r` ♪ `false` |
| `--template` | `-t` шаблон rece (типовий, скорочений, куль, виконавчий тощо) `default` |
| `--words` | `-w` кількість слів (позаді шаблоном)} 1) типово}

| `--embedding-backend` Сервер wizard: Onx, Ollama} `Onnx` |
| `--embedding-model`  {\cH80} {\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ > `AllMiniLmL6V2` |
| `--web-mode` Режим веб- сторінки: простий, " Playwright" `Simple` |
| `--analyze` | `-a` біса Виконувати аналіз якості з резюме `false` |

## Режими опублікування

### Віддалення карти (рекомендовано)

Найкраще для детального резюме з повним покриттям документів.

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

**Як це працює**:

1. Розділяє документ на структурні шматки (за заголовками)
2. Підсумовує кожен шматок паралельно, використовуючи LLM
3. Зменшує підсумки до виконавчого резюме з цитатами
4. Перевіряє всі посилання на справжні шматки

**Ієрархічне відновлення довгих документів**:

У дуже довгих документах, де об' єднані підсумки шматків перевищують контекстне вікно моделі, MpReduction автоматично використовує ієрархічне зменшення:

1. **Пакетне**: Групи підсумовуються у пакети, які відповідають контексту
2. **Інтерактивне відновлення**: Зменшує кожну партію до скороченого резюме
3. **Остаточне зменшення**: Об' єднує проміжні підсумки до остаточного виводу
4. **Рекурсивний**: Якщо проміжні все ще завеликі, додається більше рівнів

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

За допомогою цього пункту можна зберегти повний обкладинок документа незалежно від тривалості - кожен шматок додає до остаточного резюме. Інструмент оцінить позначення (~4 chars/ entry) і призначення за використання 60% контекстних вікон на проходження зменшення.

**Pros**: Швидка, повна обкладинка, паралельна обробка, керує будь- якою довжиною документа
**Консептиди**: Може пропустити поперечні з' єднання, повільніші для дуже довгих документів

### RAG (найкраще для фокусованих запитів)

Найкраще, коли вам потрібно зосередитись на конкретних темах або мати поставлене запитання.

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

**Як це працює**:

1. Індексує шматки документа як векторні вбудовування у Qdrant
2. Видобуває ключові теми з заголовків документів
3. Отримання відповідних шматків на тему за допомогою семантичного пошуку
4. Синтезація фокусованого резюме цитатами

**Коли використовувати RAG над MapReduction**:

 } core Mode}
|----------|-----------|
♪ "Summarize this entire document" ♪ MapRece}
♪ What does this says about security?)  біса сягає
Підручник з 500-сторінкових сторінок, потрібен будь- який рядок, що відповідає будь-якій карті (hierarchical)
Підручник з 500-сторінкових сторінок, потрібен специфічний секція  сяГС
♪00_00] AND AND AND AND AND AND AND AND TO THE AND AND AND AND AND

RAG - це **неDescription of a condition. Do not translate key words (# V1S #, # V1 #,)** щодо роботи з довгими документами - MapReduction ручки з ієрархічним зменшенням. Про RAG можна дізнатися з розділу **Фільтрування з практичністю**: якщо ви бажаєте ігнорувати 90% документа і зосередитися на тому, що має значення для вас.

**Pros**: Фокусування теми, семантичне розуміння, індекс використання, швидше для запитів з фокусуванням
**Консептиди**: Може бракувати вмісту поза зосередженою зоною, потребує Qdrant, повільне початкове індексування

### Ітеративний

Лучший для сюжетных документов, где контекст движется по всему.

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

**Попередження**: Повільніше і може призвести до втрати контексту на довгих документах ( >10 шматків).

## Великий підручник з документа

### Вибір правильного режиму

Передня частина (попередня частина)
|---------------|------|------|-----|
Територія (50+сторінки)} + + + + + + + + + + 00: 00: 00: 00: 00:00:00:00 
♪ Novel/Narrate сягнув кінця рядка ♪
  + + + +1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Д_ д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. про н. про н. про н.п. д. д.п. д. д. д.
♪ API docs (200 pages) ♪
♪Dep appearance ♪ ["Тінка"] + 00:00; 00:04; 00:04; 00:04; 00:04; 00:04; 00:04; 00:04; 00:04; 00:04; 00:04; 00:04; 00:04; 00:04:04; 00:04:04; 00:04; 00:04; 00:04; 00:04; 00:00:00:00; 00:00:00:00; 00:00; 00:00; 00:00; 00:00:00; 00:00:00; 00:00; 00:00; 00:00; 00:00; 00:00:00:00; 00:00:00; 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

### Фігура проти нефіктивності


|--------------|-----------|-------|
| **Fiction/ Narrative** } MapRece} }Вимагає sequential context }
| **Технічні документи** } І мапРеод для огляду, SEG для специфічних
| **Legal/Contacts** Місто/ М. 
| **Підручники** Зазвичай, запит на специфічні особливості

### Швидкодія

Д_ д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д.
|---------------|-----------|-----|-------|
Д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. ст. ст.
Гортаючий 50 сторінок, 45 см, 30 см, швидше, якщо зосереджений на чомусь.
200 сторінок * 3 * 3 * 1/2 * .
500+сторінок] 10-15/год 2/3 дріть

## Налаштування

### Створити типові налаштування

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

### Файл налаштувань

Налаштування буде автоматично відкрито з:

1. `--config` option
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
  }
}
```

### Параметри обробки

Передбачається, що це буде час, коли ви познайомитеся з програмою і познайомитеся з нею.
|--------|---------|-------------|
| `maxLlmParallelism` +8 * + + [LM] - черги (Ольяма, отже, вищі значення просто у черзі) *
| `maxHeadingLevel` Д_ д. д. д. д. д. д. д. д. д. д. ст. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д.
| `targetChunkTokens` ♪ 0 (автоматично)} Розмір цілі. 0 = авто- обчислення (~25% контекстного вікна)
| `minChunkTokens` * 0 (автоматично)} Мінімальний перед об' єднанням. 0 = 1/8 цілі

## Формат виводу

### Структура резюме

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

**Межі траєкторії**: Обкладинка (% sections), Частота цитування (citations/ bulet), Оброблені біти (RAG може пропустити деякі).

## Рекомендації для моделей

 Mode +Використовуйте
|-------|------|-------|---------|----------|
| `qwen2.5:1.5b` Д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д. д.
| `gemma3:1b` 815/5 * Time (~10s) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
| `llama3.2:3b` } 2GB} Носій (~15s)} Дуже благодійство **Типовий** - Врівноважений погляд.
| `ministral-3:3b` 9GB} Середній (~20s)} Дуже гладка}Чудово- з' єднана}
| `llama3.1:8b` ♪----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

> **Підказка**: для швидших підрахунків (~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 serve`
- Перевіряються моделі: `ollama list`

### "Недоступна служба Docling Service"

- Це **Потрібні лише для файлів PDF/ DOCX**
- Для файлів з розміткою ви можете ігнорувати цю помилку
- Полагодити: `docker run -p 5001:5001 quay.io/docling-project/docling-serve`

### "З' єднання Cdantry зазнало невдачі"

- Це **Потрібний лише для режиму REG** (`--mode Rag`)
- Для режиму обертання карти (типовий), ви можете ігнорувати цю помилку
- Полагодити: `docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant`

### "Вимикач сіндиту відкритий"

- Ollama перевантаження або аварійне завершення
- Зачекайте 30 секунд, щоб перезапустити або перезапустити Ollama
- Інструмент використовує правила стійкості і буде здійснюватися автоповторення

### " wsarecv " або помилки з' єднання (Windows)

- Це відома проблема Ollama у Windows (GitHub # 13340)
- Інструмент автоматично робить це з повторенням логіки і відновлення з' єднання
- Якщо постійні, перезапустіть Ollama і спробуйте знов

### "Покоління МВ вичерпано"

- Збільшити час очікування у налаштуваннях
- Розділити дуже великі документи
- Перевірити Ollama не переобтяжено іншими запитами

### Репетитивні або суми низької кварцості

**Симптоми**: Позначки вказують на луну запиту (" Повернути лише позначки ," " Це правило... ") замість резюме вмісту.

**Причина**: Модель бореться з пропозицією або змістом занадто довго.

**Виправити**: Типове `qwen2.5:1.5b` добре обробляє більшість документів. Для сумнівних документів спробуйте `--model llama3.2:3b`. Див. [Рекомендації для моделей](#model-recommendations).

### Резюме Ігнорувати вміст документа

Якщо резюме видається загальним або не посилається на специфічний вміст:

- Ця модель може бути галюцинацією - перевірка. `Citation rate` у виводі трасування
- Спробувати режим RAG (`--mode Rag`) підсумовування на отриманих шматках
- Користування `--verbose` щоб побачити, які шматки оброблятимуться

### Відсутні посилання або некоректні

Якщо немає резюме `[chunk-N]` Цитата:

- Малі моделі визначають вміст над форматуванням
- Запити оптимізовано для швидкості, а не строгого дотримання цитування
- Для строгих цитат використовуйте більші моделі на зразок `llama3.2:3b`
- Перевірити `Citation rate` у рівнях - вищі значення вказують на кращу здатність відслідковувати

## Поради щодо швидкодії

- **MpReduction** для швидкості (шарові шматки)
- **`qwen2.5:1.5b`** для швидкості, **`llama3.2:3b`** для балансу, **`llama3.1:8b`** для якості
- **Вбудовування ONX** (типовий) швидший за Ollama для режиму RAG
- Нижній **`maxLlmParallelism`** якщо час очікування триває

## Ресурси

- [Джерельний код](https://github.com/scottgal/mostlylucidweb/tree/main/Mostlylucid.DocSummarizer)
- [Випуски GitHub](https://github.com/scottgal/mostlylucidweb/releases?q=docsummarizer)
- [Docling](https://github.com/docling-project/docling) / [Служачи з докором](https://github.com/docling-project/docling-serve)
- [Qdrant](https://qdrant.tech/) - Локальна база даних вектора
- [Ольямаjapan. kgm](https://ollama.ai/) / [OllamaSap](https://github.com/awaescher/OllamaSharp)
- [ПолліCity in Alaska USA](https://github.com/App-vNext/Polly) -. НеЕТ- гнучкість і пасивне згладжування
- [Спектр.КонсольAspect](https://spectreconsole.net/) - Красивый терминал.

## Серія Навігація

- **[Частина 1. Будування інструменту обчислення документів за допомогою RAG](/blog/building-a-document-summarizer-with-rag)** - Архітектура і візерунки
- **[Частина 2.](/blog/docsummarizer-tool)** Інструкція для швидкого запуску
- **[Частина 3: Додаткові припущення](/blog/docsummarizer-advanced-concepts)** - Глибоко занурившись у БЕРТ, ONX, instructions і гібридний пошук.

### Пов' язаний

- [Перегляд CSV з локальними LLM](/blog/analysing-large-csv-files-with-local-llms)
- [Веб- вміст з LLM](/blog/fetching-and-analysing-web-content-with-llms)