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 ...........................................
|