Update utils.py
Browse files
utils.py
CHANGED
|
@@ -53,6 +53,7 @@ from langchain_core.output_parsers import StrOutputParser
|
|
| 53 |
from langchain_core.pydantic_v1 import BaseModel, Field
|
| 54 |
from langchain_core.runnables import RunnablePassthrough
|
| 55 |
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
|
|
|
| 56 |
from chromadb.errors import InvalidDimensionException
|
| 57 |
import fitz # PyMuPDF
|
| 58 |
import docx
|
|
@@ -353,9 +354,12 @@ def document_retrieval_chroma(llm, prompt):
|
|
| 353 |
#Langchain anlegen für RAG Chaining
|
| 354 |
###############################################
|
| 355 |
#langchain nutzen, um prompt an LLM zu leiten - llm und prompt sind austauschbar
|
| 356 |
-
def llm_chain(llm, prompt):
|
| 357 |
-
|
| 358 |
-
|
|
|
|
|
|
|
|
|
|
| 359 |
return result
|
| 360 |
|
| 361 |
|
|
@@ -367,7 +371,7 @@ def rag_chain(llm, prompt, retriever):
|
|
| 367 |
most_relevant_docs=[]
|
| 368 |
|
| 369 |
#passend zum Prompt relevante Dokuemnte raussuchen
|
| 370 |
-
relevant_docs = retriever.
|
| 371 |
#zu jedem relevanten Dokument die wichtigen Informationen zusammenstellen (im Dict)
|
| 372 |
extracted_docs = extract_document_info(relevant_docs)
|
| 373 |
|
|
@@ -402,8 +406,7 @@ def rag_chain(llm, prompt, retriever):
|
|
| 402 |
#für die Zusammenfassung
|
| 403 |
#############################################
|
| 404 |
#1. Alternative, wenn llm direkt übergeben....................................
|
| 405 |
-
|
| 406 |
-
answer = llm_chain.run({"context": combined_content, "question": prompt})
|
| 407 |
|
| 408 |
|
| 409 |
#2. Alternative, wenn mit API_URL ...........................................
|
|
|
|
| 53 |
from langchain_core.pydantic_v1 import BaseModel, Field
|
| 54 |
from langchain_core.runnables import RunnablePassthrough
|
| 55 |
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
| 56 |
+
from langchain_core import LLM, PromptTemplate, RunnableSequence
|
| 57 |
from chromadb.errors import InvalidDimensionException
|
| 58 |
import fitz # PyMuPDF
|
| 59 |
import docx
|
|
|
|
| 354 |
#Langchain anlegen für RAG Chaining
|
| 355 |
###############################################
|
| 356 |
#langchain nutzen, um prompt an LLM zu leiten - llm und prompt sind austauschbar
|
| 357 |
+
def llm_chain(llm, prompt, context):
|
| 358 |
+
# Generiere den vollständigen Prompt mit der Eingabe
|
| 359 |
+
# Generiere den vollständigen Prompt mit den Eingabevariablen
|
| 360 |
+
full_prompt = RAG_CHAIN_PROMPT.format(context=context, question=prompt)
|
| 361 |
+
sequence = RunnableSequence([full_prompt, llm])
|
| 362 |
+
result = sequence.invoke()
|
| 363 |
return result
|
| 364 |
|
| 365 |
|
|
|
|
| 371 |
most_relevant_docs=[]
|
| 372 |
|
| 373 |
#passend zum Prompt relevante Dokuemnte raussuchen
|
| 374 |
+
relevant_docs = retriever.invoke(prompt)
|
| 375 |
#zu jedem relevanten Dokument die wichtigen Informationen zusammenstellen (im Dict)
|
| 376 |
extracted_docs = extract_document_info(relevant_docs)
|
| 377 |
|
|
|
|
| 406 |
#für die Zusammenfassung
|
| 407 |
#############################################
|
| 408 |
#1. Alternative, wenn llm direkt übergeben....................................
|
| 409 |
+
answer = llm_chain(llm = llm, prompt, combined_content)
|
|
|
|
| 410 |
|
| 411 |
|
| 412 |
#2. Alternative, wenn mit API_URL ...........................................
|