Зробіть ваші корпоративні документи готовими для ШІ — надійно, локально та семантично.

Досить часто організації зберігають свою документацію у форматах PDF, DOCX, XLSX та ePub. Хоча LLM (великі мовні моделі) добре працюють з HTML або простим текстом, ці рідні формати документів потребують конвертації, перш ніж їх можна ефективно використовувати в конвеєрах LLM + RAG, де ми хочемо спілкуватись з документом або набором документів.

LLM (Велика мовна модель) — попередньо навчена AI‑модель, яка генерує текст і відповіді на основі великих корпусів тексту.
RAG (Retrieval‑Augmented Generation) — підхід, що поєднує LLM з зовнішньою базою знань (наприклад, корпоративними документами), щоб модель могла отримувати та аналізувати доменний контент.

Наступна діаграма послідовності ілюструє типові кроки, які виконуються під час формування відповіді на запит:

LLM+RAG Frlow Diagram

Якість відповідей, яку ви отримуєте від Системи (LLM + RAG), залежить і від самої Системи, і від того, наскільки добре вихідні документи зберігають свою структуру та значення під час подачі у конвеєр отримання.


Проблема

Форматування документу – це не лише візуальний аспект, воно несе семантику. Заголовки, списки, таблиці, жирний/курсивний акцент, підписи та вбудовані зображення – усе це передає значення, яке допомагає LLM зрозуміти контекст. Наївне перетворення документів (наприклад, за допомогою OCR, який розглядає кожну сторінку як плоске зображення) часто втрачає цю семантику. У результаті отримання RAG‑запитів і подальші відповіді LLM можуть стати неточними або шумними.

OCR може допомогти зі сканованими документами, але часто знімає структуру (списки, розбиті по сторінках, межі таблиць, втрачені анотації). Крім того, це додає витрати та навантаження інфраструктури при обробці великих архівів.


Рішення

Альтернативний підхід – парсити документи з урахуванням їхньої структури та експортувати цю структуру у семантичний, придатний для LLM формат – Markdown. Markdown легкий, широко підтримуваний і зберігає заголовки, списки, таблиці, блоки коду, акценти, підписи та посилання на зображення – саме ті функції, які підвищують якість отримання.

GroupDocs.Markdown for .NET перетворює популярні формати документів (PDF, DOCX, XLSX, ePub та інші) у чистий, семантичний Markdown, придатний для інжекції у системи RAG. Це бібліотека для .NET, яка працює on‑premise, тому вся обробка відбувається у вашому середовищі – без зовнішніх сервісів, без витоку даних та без залежності від віддалених GPU.

Як почати

GroupDocs.Markdown for .NET доступний як пакет NuGet, а також у вигляді MSI‑ та ZIP‑завантажень.

Встановіть пакет NuGet за допомогою .NET CLI:

dotnet add package GroupDocs.Markdown

Або завантажте інсталятори та збірки з офіційної сторінки завантажень: https://releases.groupdocs.com/markdown/net/

Приклад використання (додайте у Program.cs):

// Import the namespace
using GroupDocs.Markdown;

// Set the license (optional for evaluation)
License.Set("GroupDocs.Markdown.lic");

// Instantiate the converter for a source document
var converter = new MarkdownConverter("rich-text-formatting.docx");

// Convert and save output to file
converter.Convert("rich-text-formatting.md");

Конвертований файл rich-text-formatting.md буде збережений у тій же папці, що й ваша програма.

Наступний скріншот показує вхідний файл DOCX та отриманий Markdown.

Source DOCX and output Markdown file

Якщо ви запускаєте без ліцензії, режим оцінки обробляє обмежену кількість сторінок (наприклад, три перші). Щоб випробувати повний продукт, запитайте тимчасову ліцензію.

Щоб отримати тимчасову ліцензію, відкрийте Майстер покупки, вкажіть контактні дані та натисніть Get a temporary license на кроці Contact Details. Тимчасова ліцензія буде надіслана вам електронною поштою.

Дізнатися більше про тимчасові ліцензії: https://purchase.groupdocs.com/temporary-license/


Підтримувані формати файлів

GroupDocs.Markdown for .NET підтримує широкий набір поширених корпоративних та ebook‑форматів. Повний перелік підтримуваних розширень:

  • PDF
    • pdf
  • Spreadsheets
    • .xls, .xlsx, .xlsb, .xlsm, .xlt, .xltx, .xltm, .xlam, .csv, .tsv, .ods, .ots, .fods, .numbers, .sxc
  • Word / Rich Text
    • .doc, .docx, .dot, .dotm, .dotx, .docm, .rtf, .odt, .ott
  • Ebooks
    • .azw3, .mobi, .epub
  • Text / Markup / Help
    • .chm, .xml, .txt

Як це працює (внутрішньо — високий рівень)

Коли документ обробляється, відбуваються два основних етапи:

  1. Витяг моделі документу
    Документ парситься у внутрішню об’єктну модель, яка представляє структурні елементи (абзаци, заголовки, списки, таблиці, зображення, виноски, анотації тощо). Парсер намагається зберегти семантику (наприклад, вкладеність списків, клітинки таблиці, підписи до зображень).

  2. Генерація Markdown
    Об’єктна модель обходимо та конвертуємо у Markdown згідно з налаштовувальними параметрами конвертації (як обробляти зображення, форматування таблиць, рівні заголовків, спеціальні анотації тощо). Результат – читаємий, семантично значущий файл Markdown, готовий до індексування вашою RAG‑потоковою системою.


Приклад експорту

Код вище демонструє, як експортувати DOCX у Markdown. Розгляньмо вихідні та результуючі файли як демонстрацію.

Source DOCX

Файл‑джерело rich-text-formatting.docx містить різноманітні блоки контенту й сильно форматований, щоб підкреслити головні семантичні елементи.

Preview powered by GroupDocs.Viewer for .NET UI.

Output Markdown

Вихідний контент rich-text-formatting.md наведено нижче, що показує, як різні елементи форматування відображаються у згенерованому Markdown‑файлі.

This document contains a variety of formatted elements that are used to test document rendering quality during file conversion
# <a name="_toc76372684"></a>**Font Formatting**
Source Sans Pro Light, 14 pt.

Simple text in Times New Roman 12 followed by an empty paragraph<sub>subscript</sub> and<sup>superscript</sup>.

Various characters: ‘ “ & < > £ ¥ § ¨ © ª « ® » ¼

Paragraph with multiple segments of text formatted in different fonts, sizes and colors. Very different sizes and colors including **bold**, *italic*, underline and 1 2 3 4 5 ~~strikethrough~~. Make sure that the lines wrapped in the same way in Word and in Pdf.

This text has shading and highlighting and borders, and it is supported.
# <a name="_toc76372685"></a>**Paragraph Formatting**
Paragraph shading should not form empty gaps even with spacing 12 after.

Centered paragraph with a line break had a problem.\
Centered paragraph with a line break had a problem.

Right aligned paragraphs must be right aligned properly.

Right aligned paragraph with line break works well.\
Right aligned paragraph with line break works well.

This paragraph has a border.

Right aligned condensed text had a problem.

Right aligned expanded text had a problem.

Spacing after and before do not add up, just the greater is used. This paragraph has 12 after. Also, when indents are different, the shading does not join.

This paragraph has 12 before, but in total there is only 12 above. Also note that shading belongs to the paragraph at the top and shading of this paragraph does not go down unless next paragraph has shading too. There are 24 points below.

There are 24 points above, but the gap between this and previous paragraph is only 24.

This paragraph is a test for double line spacing. This paragraph is a test for double line spacing. It also have 0.5” for the first line.

This is a test for 1.5 line spacing. This is a test for 1.5 line spacing. Also has -0.5” indent for the first line.

This paragraph has a page break 

and centered. It actually creates two paragraphs.

This is a test for Exactly 20 points of spacing. This is a test for Exactly 20 points of spacing. TTTTTT (20, 22, 24, 26, 28, 30).

There is a continuous section break after this line.

This line is in the new section. Next here is an empty section.

This line is in the fourth section.
# <a name="_toc76372686"></a>**Paragraph Justify**
This is a justified paragraph with a single segment. 111111111111111111111111111111111111111111.

Also a justified **paragraph** reset to left because of multiple segments. 111111111111111111111111111111111111111111.
# **Non-English Characters**
Wingdings: (x, Symbol: WÄ

Russian: Теперь немного по русски.
# <a name="_toc76372687"></a>**Tables**

|Cell 1.1 Left|Cell 1.2 Right|||
| :- | -: | :- | :- |
|Cell 2.1 Centered vertically|Cell 2.2 with background|Cell 2.3 with line break<br>and coloured border.||
|Cell 3.1 Bottom vertically|<p>Cell 3.2</p><p>Centered</p><p>Horizontally</p>|Cell 3.3 No border||

|Left red, blue top, green right and yellow bottom.|
| :- |

|Table with left indent and merged cells.||||
| :- | :- | :- | :- |
|||||
|||||



**Cell padding etc.**

|<p>Cell padding.</p><p>Top: 0.1, bottom 0.2</p><p>Left: 0.5, Right 0.4</p>|Zero padding on all sides, right aligned.|
| :- | -: |

|Outer 1.1|Outer 1.2. There is a nested table here||
| :- | :-: | -: |

|**Nested 1.1**|**Nested 1.2**|
| :- | :- |

|||Outer 1.3|
| :- | :-: | -: |

#
# <a name="_toc76372688"></a>**Lists**
**Numbered list:**

1. Item 1
1. Item 2
   1. Item 2.1
   1. Item 2.2
1. Item 3

**Bulleted list:**

- Item 1
- Item 2
  - Item 2.1
  - Item 2.2
- Item 3
#
# <a name="_toc76372689"></a>**Images**
This section starts from a new page.

**Ellipse text**

![](data:image/png;base64,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 "KYO31302R21B")
![](data:image/jpeg;base64,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##  (the rest omitted for brevity) 

Підсумок

GroupDocs.Markdown for .NET допомагає конвертувати широкий спектр форматів документів у семантичний Markdown, готовий для систем LLM + RAG. Він зберігає структуру та зміст документу, працює безпосередньо у вашій інфраструктурі та підтримує популярні корпоративні формати — що робить його практичним вибором для організацій, які потребують підготувати великі колекції документів для споживання штучним інтелектом.


Дізнатись більше


Підтримка та зворотний зв’язок

З питаннями чи технічною допомогою, будь ласка, скористайтеся нашим Форумом безкоштовної підтримки — будемо раді допомогти.