import os import fitz import google.generativeai as genai from functools import lru_cache from typing import Optional, List API_KEY = "YOUR GEMINI API KEY" genai.configure(api_key=API_KEY) try: model = genai.GenerativeModel('gemini-2.0-flash') except Exception as e: print(f"Model başlatılamadı: {e}") exit() @lru_cache(maxsize=10) def extract_text_from_pdf(pdf_path: str) -> Optional[str]: if not os.path.exists(pdf_path): return None try: doc = fitz.open(pdf_path) text = "\n".join(page.get_text("text") for page in doc) return text.strip() if text else None except Exception as e: print(f"PDF işlenirken hata oluştu: {e}") return None def extract_text_from_multiple_pdfs(pdf_paths: List[str]) -> Optional[str]: texts = [] for path in pdf_paths: text = extract_text_from_pdf(path) if text: texts.append(text) return "\n".join(texts) if texts else None def build_prompt(context: str, request: str) -> str: req_lower = request.lower() if "özetle" in req_lower: return f"Metni kısaca özetle:\n\n{context}" elif "çevir" in req_lower: return f"Metni İngilizce'ye çevir:\n\n{context}" else: return f"Bağlam: {context}\n\nKullanıcı: {request}\n\nLütfen uygun yanıtı oluştur." def process_request(context: str, request: str) -> str: prompt = build_prompt(context, request) try: response = model.generate_content(prompt) return response.text.strip() except Exception as e: return f"Model hata: {e}" def main(): print("NotebookLM-ZaynAI") while True: pdf_input = input("PDF dosyasının yolunu girin: ").strip() if not pdf_input: print("Lütfen geçerli dosya yolu girin.") continue pdf_paths = [path.strip() for path in pdf_input.split(",")] context = extract_text_from_multiple_pdfs(pdf_paths) if context: break print("PDF dosyalarından metin çıkarılamadı, lütfen dosya yollarını kontrol edin.") print("Çık yazarak ZaynAI'dan çıkabilirsiniz.") while True: user_request = input("Soru/Talimat: ").strip() if user_request.lower() == "çık": print("Çıkılıyor...") break if not user_request: continue answer = process_request(context, user_request) print("\nYanıt:") print(answer) print() if __name__ == "__main__": main()