Failu pārveide Markdown formātā
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:
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:
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):
Vai uzdevuma veikšanai bija nepieciešami vairāki soļi:
Savukārt, pārveidojot šos pašus datus markdown formātā, tukšās rindas vēl joprojām paliek:
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:
Un ChatGPT diagrammu izveido uzreiz bez papildu soļiem:
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ā — ChatGPT, Claude.ai, Google 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.com, msftmd.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.