Update utils.py
Browse files
utils.py
CHANGED
|
@@ -84,7 +84,7 @@ ANTWORT_WEISS_NICHT = ["ich weiß nicht.", "ich weiß das nicht", "Ich habe dazu
|
|
| 84 |
#################################################
|
| 85 |
#Prompt Zusätze
|
| 86 |
template = """\Antworte in deutsch, wenn es nicht explizit anders gefordert wird. Wenn du die Antwort nicht kennst, antworte direkt, dass du es nicht weißt.
|
| 87 |
-
Versuche nicht es zu umschreiben.
|
| 88 |
|
| 89 |
llm_template = "Beantworte die Frage am Ende. " + template + "Frage: {question} "
|
| 90 |
#nur für HF für Stichwotre bei chatverlauf
|
|
@@ -234,11 +234,8 @@ def document_loading_splitting():
|
|
| 234 |
###########################################
|
| 235 |
#Chroma DB die splits ablegen - vektorisiert...
|
| 236 |
def document_storage_chroma(splits):
|
| 237 |
-
#OpenAi embeddings----------------------------------
|
| 238 |
-
Chroma.from_documents(documents = splits, embedding = OpenAIEmbeddings(disallowed_special = ()), persist_directory = PATH_WORK + CHROMA_DIR)
|
| 239 |
-
|
| 240 |
#HF embeddings--------------------------------------
|
| 241 |
-
|
| 242 |
|
| 243 |
#Mongo DB die splits ablegen - vektorisiert...
|
| 244 |
def document_storage_mongodb(splits):
|
|
@@ -249,12 +246,9 @@ def document_storage_mongodb(splits):
|
|
| 249 |
############################################
|
| 250 |
#dokumente in chroma db vektorisiert ablegen können - die Db vorbereiten daüfur
|
| 251 |
def document_retrieval_chroma(llm, prompt):
|
| 252 |
-
#OpenAI embeddings -------------------------------
|
| 253 |
-
embeddings = OpenAIEmbeddings()
|
| 254 |
-
|
| 255 |
#HF embeddings -----------------------------------
|
| 256 |
#Alternative Embedding - für Vektorstore, um Ähnlichkeitsvektoren zu erzeugen - die ...InstructEmbedding ist sehr rechenaufwendig
|
| 257 |
-
|
| 258 |
#etwas weniger rechenaufwendig:
|
| 259 |
#embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-mpnet-base-v2", model_kwargs={"device": "cpu"}, encode_kwargs={'normalize_embeddings': False})
|
| 260 |
|
|
@@ -266,12 +260,9 @@ def document_retrieval_chroma(llm, prompt):
|
|
| 266 |
#dokumente in chroma db vektorisiert ablegen können - die Db vorbereiten daüfur
|
| 267 |
#zweite Variante, passend zu rag_chain2 für generate_text_mit_bild- ohne llm vorher festlegen zu müssen
|
| 268 |
def document_retrieval_chroma2():
|
| 269 |
-
#OpenAI embeddings -------------------------------
|
| 270 |
-
embeddings = OpenAIEmbeddings()
|
| 271 |
-
|
| 272 |
#HF embeddings -----------------------------------
|
| 273 |
#Alternative Embedding - für Vektorstore, um Ähnlichkeitsvektoren zu erzeugen - die ...InstructEmbedding ist sehr rechenaufwendig
|
| 274 |
-
|
| 275 |
#etwas weniger rechenaufwendig:
|
| 276 |
#embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-mpnet-base-v2", model_kwargs={"device": "cpu"}, encode_kwargs={'normalize_embeddings': False})
|
| 277 |
#oder einfach ohne Langchain:
|
|
@@ -283,14 +274,6 @@ def document_retrieval_chroma2():
|
|
| 283 |
|
| 284 |
return db
|
| 285 |
|
| 286 |
-
###########################################
|
| 287 |
-
#dokumente in mongo db vektorisiert ablegen können - die Db vorbereiten daüfür
|
| 288 |
-
def document_retrieval_mongodb(llm, prompt):
|
| 289 |
-
db = MongoDBAtlasVectorSearch.from_connection_string(MONGODB_URI,
|
| 290 |
-
MONGODB_DB_NAME + "." + MONGODB_COLLECTION_NAME,
|
| 291 |
-
OpenAIEmbeddings(disallowed_special = ()),
|
| 292 |
-
index_name = MONGODB_INDEX_NAME)
|
| 293 |
-
return db
|
| 294 |
|
| 295 |
###############################################
|
| 296 |
#Langchain anlegen
|
|
|
|
| 84 |
#################################################
|
| 85 |
#Prompt Zusätze
|
| 86 |
template = """\Antworte in deutsch, wenn es nicht explizit anders gefordert wird. Wenn du die Antwort nicht kennst, antworte direkt, dass du es nicht weißt.
|
| 87 |
+
Versuche nicht es zu umschreiben. Beziehe dich in deinen Antworten ausschließlich auf die hinterkegten Dokumente. Halte die Antwort kurz aber ausführlich genug und exakt."""
|
| 88 |
|
| 89 |
llm_template = "Beantworte die Frage am Ende. " + template + "Frage: {question} "
|
| 90 |
#nur für HF für Stichwotre bei chatverlauf
|
|
|
|
| 234 |
###########################################
|
| 235 |
#Chroma DB die splits ablegen - vektorisiert...
|
| 236 |
def document_storage_chroma(splits):
|
|
|
|
|
|
|
|
|
|
| 237 |
#HF embeddings--------------------------------------
|
| 238 |
+
Chroma.from_documents(documents = splits, embedding = HuggingFaceEmbeddings(model_name="sentence-transformers/all-mpnet-base-v2", model_kwargs={"device": "cpu"}, encode_kwargs={'normalize_embeddings': False}), persist_directory = PATH_WORK + CHROMA_DIR)
|
| 239 |
|
| 240 |
#Mongo DB die splits ablegen - vektorisiert...
|
| 241 |
def document_storage_mongodb(splits):
|
|
|
|
| 246 |
############################################
|
| 247 |
#dokumente in chroma db vektorisiert ablegen können - die Db vorbereiten daüfur
|
| 248 |
def document_retrieval_chroma(llm, prompt):
|
|
|
|
|
|
|
|
|
|
| 249 |
#HF embeddings -----------------------------------
|
| 250 |
#Alternative Embedding - für Vektorstore, um Ähnlichkeitsvektoren zu erzeugen - die ...InstructEmbedding ist sehr rechenaufwendig
|
| 251 |
+
embeddings = HuggingFaceInstructEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2", model_kwargs={"device": "cpu"})
|
| 252 |
#etwas weniger rechenaufwendig:
|
| 253 |
#embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-mpnet-base-v2", model_kwargs={"device": "cpu"}, encode_kwargs={'normalize_embeddings': False})
|
| 254 |
|
|
|
|
| 260 |
#dokumente in chroma db vektorisiert ablegen können - die Db vorbereiten daüfur
|
| 261 |
#zweite Variante, passend zu rag_chain2 für generate_text_mit_bild- ohne llm vorher festlegen zu müssen
|
| 262 |
def document_retrieval_chroma2():
|
|
|
|
|
|
|
|
|
|
| 263 |
#HF embeddings -----------------------------------
|
| 264 |
#Alternative Embedding - für Vektorstore, um Ähnlichkeitsvektoren zu erzeugen - die ...InstructEmbedding ist sehr rechenaufwendig
|
| 265 |
+
embeddings = HuggingFaceInstructEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2", model_kwargs={"device": "cpu"})
|
| 266 |
#etwas weniger rechenaufwendig:
|
| 267 |
#embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-mpnet-base-v2", model_kwargs={"device": "cpu"}, encode_kwargs={'normalize_embeddings': False})
|
| 268 |
#oder einfach ohne Langchain:
|
|
|
|
| 274 |
|
| 275 |
return db
|
| 276 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 277 |
|
| 278 |
###############################################
|
| 279 |
#Langchain anlegen
|