import streamlit as st import requests import json # Sayfa Konfigürasyonu st.set_page_config( page_title="LawAgent AI - Hukuk Asistanı", page_icon="⚖️", layout="centered" ) # Stil Ayarları (Daha güvenli ve temiz yapı) st.markdown(""" """, unsafe_allow_html=True) st.title("⚖️ LawAgent AI") st.subheader("TÜBİTAK 2209/A Akıllı Hukuk Asistanı") # Yan Panel (Ayarlar) with st.sidebar: st.header("⚙️ Ayarlar") k_value = st.slider("Getirilecek Madde Sayısı (k)", min_value=1, max_value=15, value=7) st.divider() st.info("Bu sistem Türk Borçlar (TBK), Ticaret (TTK) ve Tüketici (TKHK) Hukuku üzerine uzmanlaşmıştır.") # Ana Ekran - Sorgu Girişi query = st.text_area("Hukuki sorunuzu yazınız:", placeholder="Örn: Cayma hakkı süresi kaç gündür?", height=120) if st.button("Hukuki Analiz Yap"): if not query.strip(): st.warning("⚠️ Lütfen hukuki bir soru giriniz.") else: with st.spinner("🔍 Hukuki maddeler taranıyor ve yanıt üretiliyor..."): try: # Backend API'ye istek (127.0.0.1 bazen localhost'tan daha stabil çalışır) response = requests.post( "http://127.0.0.1:8000/ask", json={"query": query, "k": k_value}, timeout=45 ) if response.status_code == 200: data = response.json() # 1. Hukuki Değerlendirme st.markdown("### 📝 Hukuki Değerlendirme") st.info(data["answer"]) # İşlem Detayları st.caption(f"⏱️ İşlem Süresi: {data.get('sure_ms', 0)} ms | 🤖 Model: Llama-3.3-70b") # 2. Dayanak Maddeler if data.get("sources"): st.markdown("### 📚 Dayanak Maddeler") for src in data["sources"]: # HTML formatında şık kutucuklar st.markdown(f"""
{src['kanun']} Madde {src['madde']}
{src['ozet']}
""", unsafe_allow_html=True) else: st.error(f"❌ API Hatası: {response.status_code}") except requests.exceptions.ConnectionError: st.error("❌ Backend API'ye bağlanılamadı! Lütfen generator.py dosyasının --api moduyla çalıştığından emin olun.") except Exception as e: st.error(f"⚠️ Bir hata oluştu: {str(e)}") st.divider() st.caption("© 2026 LawAgent AI - Akademik Proje Kapsamında Geliştirilmiştir.")