Fetching metadata from the HF Docker repository...
Update add_case.html
6a7398a
verified
-
1.52 kB
initial commit
-
277 Bytes
initial commit
-
417 Bytes
Update add_case.html
-
0 Bytes
Create admin.html
-
912 Bytes
from transformers import pipeline from sentence_transformers import SentenceTransformer, util # Hugging Face models summarizer = pipeline("summarization", model="facebook/bart-large-cnn") embed_model = SentenceTransformer('all-MiniLM-L6-v2') def summarize_text(text): if len(text.split()) > 500: text = " ".join(text.split()[:500]) summary = summarizer(text, max_length=100, min_length=30, do_sample=False) return summary[0]['summary_text'] def find_similar_cases(new_text, past_cases, threshold=0.7): new_embedding = embed_model.encode(new_text, convert_to_tensor=True) similar = [] for case in past_cases: past_embedding = embed_model.encode(case.description, convert_to_tensor=True) score = util.pytorch_cos_sim(new_embedding, past_embedding).item() if score >= threshold: similar.append((case.title, round(score, 2))) return similar
-
1.98 kB
from flask import Flask, render_template, request, redirect, session, url_for from models import db, User, Case from ai_module import summarize_text, find_similar_cases from utils import extract_text_from_pdf import os app = Flask(__name__) app.secret_key = "supersecretkey" # PostgreSQL DB app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://user:password@localhost/national_ai_judicial' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db.init_app(app) UPLOAD_FOLDER = 'uploads' os.makedirs(UPLOAD_FOLDER, exist_ok=True) app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER # ---------------- Routes ---------------- # @app.route('/', methods=['GET','POST']) def login(): # Login logic same as before ... @app.route('/dashboard') def dashboard(): cases = Case.query.all() return render_template('dashboard.html', cases=cases, user=session['username'], role=session['role']) @app.route('/add_case', methods=['GET','POST']) def add_case(): if request.method == 'POST': title = request.form['title'] description = request.form['description'] court = request.form['court'] # PDF upload optional pdf_file = request.files.get('pdf_file') filename = None if pdf_file: filename = pdf_file.filename pdf_path = os.path.join(app.config['UPLOAD_FOLDER'], filename) pdf_file.save(pdf_path) pdf_text = extract_text_from_pdf(pdf_path) description += "\n" + pdf_text summary = summarize_text(description) new_case = Case(title=title, description=description, summary=summary, pdf_filename=filename, court=court) db.session.add(new_case) db.session.commit() similar = find_similar_cases(description, Case.query.all()) return render_template('dashboard.html', cases=Case.query.all(), similar_cases=similar, user=session['username'], role=session['role']) return render_template('add_case.html')
-
413 Bytes
Update dashboard.html
-
244 Bytes
Update login.html
-
554 Bytes
from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(50), unique=True) password = db.Column(db.String(50)) role = db.Column(db.String(20)) # judge, lawyer, clerk, admin class Case(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(200)) description = db.Column(db.Text) summary = db.Column(db.Text) pdf_filename = db.Column(db.String(200)) court = db.Column(db.String(100))
-
71 Bytes
Update requirements.txt
-
195 Bytes
import PyPDF2 def extract_text_from_pdf(pdf_file): reader = PyPDF2.PdfReader(pdf_file) text = "" for page in reader.pages: text += page.extract_text() + "\n" return text