import os import fitz # PyMuPDF zum Extrahieren von PDF-Text import marqo # Verbindung zur Marqo-Instanz herstellen client = marqo.Client(url="http://192.168.11.16:8882") # Marqo-URL # Marqo-Indexname index_name = "pdf-index" # Ordner mit PDFs pdf_folder = "C:\Firma\KI\Local_RAG\dateien" # Index-Einstellungen index_settings = { "treatUrlsAndPointersAsImages": False, "model": "hf/e5-base-v2", # Du kannst das Model nach Bedarf anpassen } # Funktion zum Extrahieren von Text aus einem PDF def extract_text_from_pdf(pdf_path): text = "" try: doc = fitz.open(pdf_path) for page_num in range(doc.page_count): page = doc.load_page(page_num) text += page.get_text("text") doc.close() except Exception as e: print(f"Fehler beim Lesen der Datei {pdf_path}: {e}") return text # Alle PDFs aus einem Ordner laden und in Marqo importieren def import_pdfs_to_marqo(folder_path, index_name): for filename in os.listdir(folder_path): if filename.endswith(".pdf"): pdf_path = os.path.join(folder_path, filename) print(f"Verarbeite {filename}...") # Text aus PDF extrahieren pdf_text = extract_text_from_pdf(pdf_path) if pdf_text: # Dokument in Marqo importieren document = { "pdf_filename": filename, "pdf_text": pdf_text } client.index(index_name).add_documents( [document], tensor_fields=["pdf_text"] # Hier wird das Textfeld für die Vektorisierung angegeben ) print(f"{filename} erfolgreich in Marqo importiert.") # Funktion zur Überprüfung, ob ein Index existiert def index_exists(client, index_name): try: client.index(index_name).get_settings() # Abfrage, ob der Index existiert return True except marqo.errors.IndexNotFoundError: return False # Hauptprogramm if __name__ == "__main__": # Prüfen, ob der Index existiert if not index_exists(client, index_name): print(f"Index {index_name} existiert nicht. Erstelle den Index...") client.create_index(index_name, settings_dict=index_settings) print(f"Index {index_name} wurde neu erstellt.") else: print(f"Index {index_name} existiert bereits. Importiere neue Dokumente...") # PDFs importieren import_pdfs_to_marqo(pdf_folder, index_name) print("Fertig!")