alexkueck commited on
Commit
ce120c3
1 Parent(s): fc3ff31

Update utils.py

Browse files
Files changed (1) hide show
  1. utils.py +22 -5
utils.py CHANGED
@@ -2,6 +2,7 @@ from typing import TYPE_CHECKING, Any, Callable, Dict, List, Tuple, Type
2
  import logging
3
  import json
4
  import os
 
5
  from datetime import datetime
6
  import hashlib
7
  import csv
@@ -304,7 +305,12 @@ def load_word_with_metadata(file_path):
304
 
305
 
306
 
307
-
 
 
 
 
 
308
  ################################################
309
  #die Inhalte splitten, um in Vektordatenbank entsprechend zu laden als Splits
310
  # Funktion zum Splitten und Zuweisen der doc_id
@@ -318,10 +324,9 @@ def split_documents_with_id(docs, text_splitter):
318
  splits.append(split_doc)
319
  return splits
320
 
 
321
  #finally die Splits erzeugen und laden.....
322
  def document_loading_splitting():
323
- ##############################
324
- # Document loading
325
  docs = []
326
 
327
  # kreiere einen DirectoryLoader für jeden file type
@@ -378,8 +383,8 @@ def document_loading_splitting():
378
  return preprocessed_splits, split_to_original_mapping
379
 
380
  ###########################################
381
- #Chroma DB die splits ablegen - vektorisiert...
382
-
383
  def document_storage_chroma(splits):
384
  # Embedding-Funktion definieren
385
  embedding_fn = HuggingFaceEmbeddings(model_name=EMBEDDING_MODELL, model_kwargs={"device": "cpu"}, encode_kwargs={'normalize_embeddings': False})
@@ -389,6 +394,18 @@ def document_storage_chroma(splits):
389
 
390
  return vectorstore
391
 
 
 
 
 
 
 
 
 
 
 
 
 
392
 
393
 
394
  ###############################################
 
2
  import logging
3
  import json
4
  import os
5
+ import pickle
6
  from datetime import datetime
7
  import hashlib
8
  import csv
 
305
 
306
 
307
 
308
+ ################################################
309
+ #Vektorstore
310
+ ################################################
311
+
312
+ ################################################
313
+ # Document Splitting
314
  ################################################
315
  #die Inhalte splitten, um in Vektordatenbank entsprechend zu laden als Splits
316
  # Funktion zum Splitten und Zuweisen der doc_id
 
324
  splits.append(split_doc)
325
  return splits
326
 
327
+ ########################################
328
  #finally die Splits erzeugen und laden.....
329
  def document_loading_splitting():
 
 
330
  docs = []
331
 
332
  # kreiere einen DirectoryLoader für jeden file type
 
383
  return preprocessed_splits, split_to_original_mapping
384
 
385
  ###########################################
386
+ #Vektorstore über Chroma DB die splits ablegen - vektorisiert...
387
+ ###########################################
388
  def document_storage_chroma(splits):
389
  # Embedding-Funktion definieren
390
  embedding_fn = HuggingFaceEmbeddings(model_name=EMBEDDING_MODELL, model_kwargs={"device": "cpu"}, encode_kwargs={'normalize_embeddings': False})
 
394
 
395
  return vectorstore
396
 
397
+ ########################################################
398
+ #Vektorstore speichern - bzw. laden
399
+ def save_vectorstore(vectorstore, filename="vectorstore.pkl"):
400
+ with open(filename, "wb") as f:
401
+ pickle.dump(vectorstore, f)
402
+
403
+ def load_vectorstore(filename="vectorstore.pkl"):
404
+ if os.path.exists(filename):
405
+ with open(filename, "rb") as f:
406
+ return pickle.load(f)
407
+ return None
408
+
409
 
410
 
411
  ###############################################