ki_rag_classify / kbob_file_handler.py
elia-waefler's picture
Upload 17 files
c2b923e verified
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)