Spaces:
Runtime error
Runtime error
Update utils.py
Browse files
utils.py
CHANGED
|
@@ -466,14 +466,38 @@ def llm_chain2(llm, prompt):
|
|
| 466 |
result = llm_chain.run({"question": prompt})
|
| 467 |
return result
|
| 468 |
#############################################
|
| 469 |
-
#
|
| 470 |
-
|
| 471 |
-
|
| 472 |
-
|
| 473 |
-
|
| 474 |
-
|
| 475 |
-
|
| 476 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 477 |
|
| 478 |
############################################
|
| 479 |
# rag_chain Alternative für RAg mit Bild-Upload, da hier das llm so nicht genutzt werden kann und der prompt mit den RAG Erweiterungen anders übergeben wird
|
|
|
|
| 466 |
result = llm_chain.run({"question": prompt})
|
| 467 |
return result
|
| 468 |
#############################################
|
| 469 |
+
#von der Vektordatenbank relevante Dokumente, die zum Prrompt passen raussuchen und mit anhängen
|
| 470 |
+
#vor dem Anhängen werden die Dokumente auf Relevnz gecheckt - sind nicht genüend relevante Docs dabei, wird der prompt von einer anderen KI neu formuliert und
|
| 471 |
+
#es wird versucht aus der Vektordatenbak dadurch weitere Dokumente, die relevant sind, herauszuholen.
|
| 472 |
+
def rag_chain(llm, prompt, retriever):
|
| 473 |
+
#Langgraph nutzen für ein wenig mehr Intelligenz beim Dokumente suchen
|
| 474 |
+
relevant_docs=[]
|
| 475 |
+
filtered_docs=[]
|
| 476 |
+
relevant_docs = retriever.get_relevant_documents(prompt)
|
| 477 |
+
print("releant docs1......................")
|
| 478 |
+
print(relevant_docs)
|
| 479 |
+
if (len(relevant_docs)>0):
|
| 480 |
+
filtered_docs = grade_documents_direct(prompt, relevant_docs)
|
| 481 |
+
|
| 482 |
+
neu_prompt=prompt
|
| 483 |
+
if (len(filtered_docs)<2): #frage neu formulieren
|
| 484 |
+
relevant_docs=[]
|
| 485 |
+
neu_prompt = transform_query_direct(prompt)
|
| 486 |
+
relevant_docs = retriever.get_relevant_documents(neu_prompt)
|
| 487 |
+
if (len(relevant_docs)>0):
|
| 488 |
+
print("releant docs2......................")
|
| 489 |
+
print(relevant_docs)
|
| 490 |
+
filtered_docs = grade_documents_direct(neu_prompt, relevant_docs)
|
| 491 |
+
|
| 492 |
+
if (len(filtered_docs)>0):
|
| 493 |
+
llm_chain = LLMChain(llm = llm, prompt = RAG_CHAIN_PROMPT)
|
| 494 |
+
result = llm_chain.run({"context": filtered_docs, "question": neu_prompt})
|
| 495 |
+
else:
|
| 496 |
+
#Normale Abfrage, da keine relevanten Dokumente gefunden
|
| 497 |
+
llm_chain = LLMChain(llm = llm, prompt = LLM_CHAIN_PROMPT)
|
| 498 |
+
result = llm_chain.run({"question": neu_prompt})
|
| 499 |
+
return result
|
| 500 |
+
|
| 501 |
|
| 502 |
############################################
|
| 503 |
# rag_chain Alternative für RAg mit Bild-Upload, da hier das llm so nicht genutzt werden kann und der prompt mit den RAG Erweiterungen anders übergeben wird
|