import streamlit as st import logging import os import requests import zipfile from dotenv import load_dotenv from data_processing import hf_load_dataset, create_documents from embedding_model import load_embedding_model from vector_store import create_vector_store, get_vector_store, check_vector_store_exists from rag_pipeline import rag_query from gemini_integration import setup_gemini load_dotenv() logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) st.set_page_config( page_title="Tıbbi Tarayıcı", page_icon="🏥", layout="wide", initial_sidebar_state="expanded" ) def download_chroma_from_drive(): """Google Drive'dan ChromaDB indir ve aç""" if not os.path.exists('./chroma_db'): file_id = os.getenv('GOOGLE_DRIVE_FILE_ID') if not file_id: st.error("GOOGLE_DRIVE_FILE_ID bulunamadı!") return False try: import gdown url = f"https://drive.google.com/uc?id={file_id}" output = "temp_chroma.zip" progress_bar = st.progress(0) status_text = st.empty() status_text.text("ChromaDB indiriliyor...") progress_bar.progress(25) gdown.download(url, output, quiet=False) status_text.text("Zip açılıyor...") progress_bar.progress(50) os.makedirs('./chroma_db', exist_ok=True) with zipfile.ZipFile(output, 'r') as zip_ref: zip_ref.extractall('./chroma_db/') os.remove(output) status_text.text("ChromaDB hazır!") progress_bar.progress(100) st.empty() return True except Exception as e: st.error(f"ChromaDB indirilemedi: {e}") return False return True @st.cache_resource def load_everything(): """Tüm sistemi bir kez yükle - cache'li""" embedding_model = load_embedding_model() if check_vector_store_exists(): vector_store = get_vector_store(embedding_model) else: st.error("Vector store bulunamadı!") return None, None if not setup_gemini(): st.error("Gemini API kurulamadı!") return None, None return embedding_model, vector_store def main(): """Ana uygulama""" st.markdown("""
Türk hastanelerinin tıbbi makalelerinden yararlanarak sorularınızı yanıtlar
Türkiyede hastanelerinin tıbbi makaleleri
Google Gemini ile güçlendirilmiş