import pandas as pd from typing import Any from typing import List import my_new_openai import my_1_writer def get_row_names(file_path: str, sheet_name="Block5", header=4, index_col=7) -> List[str]: """ Diese Funktion liest alle Zeilennamen aus der angegebenen Excel-Datei und gibt sie als Liste von Zeichenketten zurück. Argumente: file_path (str): Der Dateipfad zur Excel-Datei. Rückgabewert: List[str]: Eine Liste von Zeilennamen als Zeichenketten. """ try: df = pd.read_excel(file_path, sheet_name=sheet_name, header=header, index_col=index_col) return df.index.astype(str).tolist() except Exception as e: return [str(e)] def get_col_names(file_path: str, sheet_name="Block5", header=4, index_col=7) -> List[str]: """ Diese Funktion liest alle Spaltennamen aus der angegebenen Excel-Datei und gibt sie als Liste von Zeichenketten zurück. Argumente: file_path (str): Der Dateipfad zur Excel-Datei. Rückgabewert: List[str]: Eine Liste von Spaltennamen als Zeichenketten. """ try: df = pd.read_excel(file_path, sheet_name=sheet_name, header=header, index_col=index_col) return df.columns.astype(str).tolist() except Exception as e: return [str(e)] def get_cell_value(file_path: str, row_name: str, col_name: str, sheet_name="Block5") -> str: """ Diese Funktion gibt den Wert der Zelle als Zeichenkette zurück, in der der angegebene Zeilenname und Spaltenname zuerst gefunden wurden. Falls der Zeilenname oder Spaltenname nicht existiert, wird eine entsprechende Fehlermeldung zurückgegeben. Argumente: file_path (str): Der Dateipfad zur Excel-Datei. row_name (str): Der Name der Zeile. col_name (str): Der Name der Spalte. Rückgabewert: str: Der Wert der Zelle als Zeichenkette, falls vorhanden. Andernfalls eine Fehlermeldung. """ try: df = pd.read_excel(file_path, sheet_name=sheet_name, header=4, index_col=8) if row_name not in df.index: return f"Zeilenname '{row_name}' nicht im DataFrame gefunden." if col_name not in df.columns: return f"Spaltenname '{col_name}' nicht im DataFrame gefunden." return str(df.at[row_name, col_name]) except Exception as e: return str(e) def get_header_dict(): file_path = 'data/kbob.xlsx' # print(get_cell_value(file_path, 'sdlöfjasko', 'Kältetechnik (D06)')) rows = get_row_names(file_path) cols = get_col_names(file_path) colheads = get_col_names(file_path, header=3) head = "" my_cols = {} for e in colheads: if "Unnamed" not in e: head = e else: colheads[colheads.index(e)] = head print(colheads) print(cols) print(len(colheads), len(cols)) for i in range(len(colheads)): if "Unnamed" not in cols[i]: if colheads[i] not in list(my_cols.keys()): my_cols[colheads[i]] = [cols[i]] else: my_cols[colheads[i]].append(cols[i]) print(my_cols) print((len(list(my_cols.keys())))) return my_cols def create_kbob_vectors(headers: dict): for e in list(headers.keys()): header_list = [e + ": " + headers[e][_] for _ in range(len(headers[e]))] print(f"{e}: {header_list}") print() vecs = my_new_openai.vectorize_data(header_list) my_1_writer.safe_my_dict_as_json(f"vecs/{e}_vecs.json", vecs) if __name__ == '__main__': h = get_header_dict() print(h.keys()) #create_kbob_vectors(h)