Skip to content

i014n/LexFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LexFlow

LexFlow este un serviciu pentru descărcarea, parsarea și vizualizarea legislației române de pe portalul legislatie.just.ro.

Proiectul permite:

  • descărcarea automată a documentelor legislative
  • extragerea structurii ierarhice a legilor (părți, titluri, capitole, secțiuni, articole)
  • construirea unui graf de modificări care arată cum o lege a fost afectată de alte acte normative
  • generarea textului complet al legii (curat, fără adnotări HTML)
  • rezumarea automată a documentelor cu ajutorul Gemini AI
  • căutarea legislației direct din interfața web

Demo LexFlow


Funcționalități principale

Funcționalitate Descriere
Descărcare Descarcă automat documentul de pe Portal Legislativ
Parsare structurală Extrage ierarhia completă: părți → titluri → capitole → secțiuni → articole
Graf de modificări Construiește un graf interactiv care vizualizează cum legea a fost modificată/abrogată/completată de alte acte
Text complet Generează un fișier .txt curat cu tot textul legii
Rezumat AI Generează un rezumat structurat al legii folosind Gemini AI (streaming)
Căutare Caută legi după titlu, tip de document (LEGE, OUG, HG etc.) și an
Interfață web Server Flask cu UI pentru toate operațiunile de mai sus

Cerințe

  • Python 3.10+
  • Conexiune la internet (pentru descărcarea documentelor)
  • Cheie API Gemini (opțional, doar pentru funcția de rezumare)

Instalare

1. Clonează repository-ul

git clone https://github.com/your-username/LawIndex.git
cd LawIndex

2. Creează și activează un mediu virtual

python3 -m venv venv
source venv/bin/activate       # macOS / Linux
# venv\Scripts\activate        # Windows

3. Instalează dependențele

pip install flask requests beautifulsoup4

Pentru funcția de rezumare AI (opțional):

pip install google-genai

4. Setează cheia API Gemini (opțional)

Necesară doar dacă vrei să folosești funcția de rezumare automată:

export GEMINI_API_KEY="API_KEY"

Utilizare

Interfața web (recomandat)

Pornește serverul Flask:

python server.py

Deschide browserul la http://localhost:5001.

Din interfață poți:

  • căuta un act normativ după titlu / număr / an
  • introduce un ID sau URL de document de pe Portal Legislativ
  • genera graful de modificări
  • vizualiza textul complet și rezumatul AI al legii

Pagina principală

Graful interactiv de modificări, cu filtre pe tip de acțiune (Abrogat, Introdus, Modificat, Amendat) și panou de detalii la selectarea unei muchii:

Graf de modificări

Detalii modificare la selectarea unei muchii

Linie de comandă

Descarcă și procesează un document:

python main.py --ids 103284

Generează textul complet al legii:

python main.py --ids 103284 --complete-law

Construiește graful de modificări (1 nivel adâncime):

python main.py --ids 103284 --link-graph

Graf cu adâncime mai mare + descărcare automată a documentelor referite:

python main.py --ids 103284 --link-graph --depth 2 --download

Procesare simultană a mai multor documente:

python main.py --ids 103284,109648,120609 --complete-law --link-graph

Opțiuni disponibile

Parametru Descriere
--ids ID-urile documentelor, separate prin virgulă (obligatoriu)
--complete-law Generează output/<id>/complete_law.txt
--keep-annotations Păstrează adnotările de modificare (la DD-MM-YYYY, ...) în textul complet
--link-graph Construiește graful de modificări (output/<id>/link_graph.*)
--depth N Numărul de niveluri de referințe de urmărit (implicit: 1)
--download Descarcă automat documentele referite necachate
--all-refs Include și referințe HG/DECIZIE, nu doar LEGE/OUG/OU
--max-nodes N Limita maximă de noduri în graf (implicit: 300)
--citations Include și muchiile de citare (nu doar modificările) în graf

Structura fișierelor generate

input/
  <doc_id>/
    index.html          # HTML descărcat de pe Portal Legislativ
    database.json       # Structura completă a documentului (JSON)
    tree.txt            # Arbore structurat al legii
    full_tree.txt       # Arbore complet cu text
    filtered_tree.txt   # Arbore filtrat (doar LEGE/OUG/OU)
    filtered_database.json

output/
  <doc_id>/
    complete_law.txt    # Textul complet al legii
    link_graph.json     # Graful de modificări (JSON)
    link_graph.html     # Vizualizare interactivă a grafului
    link_graph.dot      # Graf în format Graphviz
    modifications.txt   # Lista modificărilor în format text
    summary.txt         # Rezumatul generat de AI (dacă a fost solicitat)

Cum se obține ID-ul unui document

ID-ul numeric se găsește în URL-ul paginii de pe Portal Legislativ:

https://legislatie.just.ro/Public/DetaliiDocument/103284
                                                   ^^^^^^
                                                   acesta este ID-ul

Poți introduce direct URL-ul complet sau doar ID-ul numeric în interfața web sau la parametrul --ids.


Licență

Distribuit sub licența MIT. Vezi fișierul LICENSE pentru detalii.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors