Projekti
Iesaisties
Blogs
Par mums
Kontakti
← ATPAKAĻ

Failu pārveide Markdown formātā

2025-01-02

Autors: Aivis Brutāns, datu zinātnieks, Datu skolas aktīvists

2024.gada decembrī Microsoft izlaida jaunu Python pakotni — markitdown. Pakotne dod iespēju pārveidot dažādus faila formātus (.pdf, .pptx, .docx, .xlsx, .html, .csv, .json, .xml) markdown faila formātā (.md). Tā apkopo metadatus no audio failiem (.mp3, .wav) un attēliem (.jpg, .jpeg, .png), kā arī apraksta attēlu, izmantojot kādu no valodu modeļiem.

Markdown formāts ir sen pazīstams, taču pēdējā laikā tas ir guvis lielāku atsaucību lielo valodu modeļu (LLM) vidū — tādēļ, ka markdown sintakse ir vienkārša, padara tekstu lasāmāku (salīdzinot, piemēram, ar .txt formātu) un šis formāts dod iespēju LLM ģenerēt tekstu, izmantojot mazāk tokenu, salīdzinot ar HTML, tātad arī izmaksu ziņā izdevīgāks. Arī atsevišķi LLM rīki atbildes ģenerē, izmantojot markdown sintaksi:

ChatGPT izmanto markdown sintaksi ģenerējot čata atbildes. Piemērā ChatGPT saites atveidošana WhatsApp lietotnē ir pēc markdown sintakses.

Un nesen ieviestais llm.txt standarta piedāvājums, kas palīdz valodu modeļiem labāk “nolasīt” mājaslapas informāciju, ir balstīts markdown formātā.

Dažkārt, LLM spēj labāk apstrādāt .md formātu nekā, piemēram, Excel. Lūk piemērs:

Ekrānuzņēmums no atvērto datu kopas: https://data.gov.lv/dati/lv/dataset/publisko-iepirkumu-likuma-publikaciju-raditaji

Atsevišķos gadījumos Excel faila struktūra ir neparocīga LLM rīkiem. Augstāk esošajā piemērā LLM rīkiem problēmu sagādā apvienotas šūnas (merged cells) un to, ka dati nesākas no pirmās rindas. Tādos gadījumos LLM rīki nespēj paveikt uzdevumu (uzdevu no datiem izveidot grēdotu stabiņu diagrammu):

Claude 3.5 Sonnet modelis nespēj izveidot grafiku no atvērto datu portāla datiem — .xlsx faila

Vai uzdevuma veikšanai bija nepieciešami vairāki soļi:

ChatGPT 4o modelis veiksmīgi nolasa .xlsx failu pēc vairākiem mēģinājumiem

Savukārt, pārveidojot šos pašus datus markdown formātā, tukšās rindas vēl joprojām paliek:

.xlsx datu pārveide .md formātā

Taču Claude.ai un ChatGPT spēj labāk interpetēt doto informāciju un grēdoto stabiņu diagrammu no .md formāta izveido bez problēmām:

Claude.ai izveidotā vizualizācija no .md faila

Un ChatGPT diagrammu izveido uzreiz bez papildu soļiem:

ChatGPT 4o izveidotā vizualizācija no .md faila

Lai strādātu ar MarkItDown pakotni, to vispirms uzinstalē:

pip install markitdown

Python rīkā ieimportē nepieciešamo klasi un pārveido failu .md formātā. Šajā kodu piemērā izmantoju tos pašus atvērto datu portāla datus (kods ir pieejams arī šeit):

from markitdown import MarkItDown

# .xlsx pārveido Markdown sintaksē
md = MarkItDown()
result = md.convert("publikaciju-top-5-iestdes-pil-2021-4-cet.xlsx")
print(result.text_content)

# Datu ierakstīšana .md formātā
with open('publikaciju-top-5-iestades-pil-2021Q4.md', "w", encoding="utf-8") as file:
    file.write(result.text_content)

Tālāk šo failu vari izmantot LLM rīkā — ChatGPTClaude.aiGoogle Gemini, taču ņem vērā, ka atsevišķos rīkos, piemēram Mistral, .md formātu vēl nevar pievienot.

Internetā ir arī pieejami jau gatavi rīki šo failu pārveidei .md formātā — izmēģini getmarkdown.commsftmd.replit.app vai kādu no HuggingFace lietotāju izveidotajiem rīkiem: huggingface.co/spaces?search=markitdown. Bet, ja izmanto Google Docs, tad satura lejupielāde .md formātā ir pieejama jau kopš 2024.gada jūlija.

DATU
SKOLA
Datu skola ir daļa no
SCHOOL OF DATA
Pierādījumā ir spēks!

Datu skola ir te, lai žurnālisti, nevalstisko organizāciju aktīvisti, un citi sabiedrības locekļi iegūst spējas efektīvi strādāt ar datiem.