Update utils.py
Browse files
utils.py
CHANGED
@@ -61,7 +61,7 @@ logging.basicConfig(
|
|
61 |
#Beispiel-Antworten, wenn die KI etwas nicht beantworten kann - dann im Netz suchen
|
62 |
################################################
|
63 |
# Your predefined sentences
|
64 |
-
|
65 |
|
66 |
#################################################
|
67 |
#Gesetzte Werte für Pfade, Prompts und Keys..
|
@@ -71,12 +71,19 @@ standard_responses = ["ich weiß nicht.", "ich weiß das nicht", "Ich habe dazu
|
|
71 |
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. Versuche nicht es zu umschreiben. Versuche nicht, die Antwort zu erfinden oder aufzumocken. Halte die Antwort kurz aber ausführlich genug und exakt."""
|
72 |
|
73 |
llm_template = "Beantworte die Frage am Ende. " + template + "Frage: {question} Hilfreiche Antwort: "
|
|
|
|
|
|
|
74 |
rag_template = "Nutze die folgenden Kontext Teile, um die Frage zu beantworten am Ende. " + template + "{context} Frage: {question} Hilfreiche Antwort: "
|
75 |
|
76 |
#################################################
|
77 |
#Konstanten
|
78 |
LLM_CHAIN_PROMPT = PromptTemplate(input_variables = ["question"],
|
79 |
template = llm_template)
|
|
|
|
|
|
|
|
|
80 |
RAG_CHAIN_PROMPT = PromptTemplate(input_variables = ["context", "question"],
|
81 |
template = rag_template)
|
82 |
|
@@ -102,7 +109,7 @@ YOUTUBE_URL_2 = "https://www.youtube.com/watch?v=hdhZwyf24mE"
|
|
102 |
# Function to determine if the response is similar to predefined responses
|
103 |
def is_response_similar(user_response, threshold=0.7):
|
104 |
# Combine the standard responses with the user's response
|
105 |
-
combined_responses =
|
106 |
|
107 |
# Convert text to TF-IDF feature vectors
|
108 |
vectorizer = TfidfVectorizer()
|
@@ -239,6 +246,12 @@ def llm_chain(llm, prompt):
|
|
239 |
result = llm_chain.run({"question": prompt})
|
240 |
return result
|
241 |
|
|
|
|
|
|
|
|
|
|
|
|
|
242 |
#############################################
|
243 |
#langchain nutzen, um prompt an llm zu leiten, aber vorher in der VektorDB suchen, um passende splits zum Prompt hinzuzufügen
|
244 |
def rag_chain(llm, prompt, db):
|
@@ -381,7 +394,7 @@ def process_chatverlauf(prompt, model, oai_key):
|
|
381 |
|
382 |
def process_chatverlauf_hf(history, llm):
|
383 |
input = generate_prompt_with_history("Gib folgendem Text eine Überschrift mit maximal 3 Worten", history)
|
384 |
-
result =
|
385 |
return result
|
386 |
|
387 |
|
|
|
61 |
#Beispiel-Antworten, wenn die KI etwas nicht beantworten kann - dann im Netz suchen
|
62 |
################################################
|
63 |
# Your predefined sentences
|
64 |
+
ANTWORT_WEISS_NICHT = ["ich weiß nicht.", "ich weiß das nicht", "Ich habe dazu keine Antwort", "Ich bin nicht sicher", "Ich kann das nicht beantworten", "Es tut mir leid, aber ich kenne keinen", "Es tut mir leid, aber ich kann die Frage nicht beantworten.", "Es tut mir leid, aber ich kann die Frage nicht beantworten, da ich zu der Frage keine spezifischen Informatioen habe"]
|
65 |
|
66 |
#################################################
|
67 |
#Gesetzte Werte für Pfade, Prompts und Keys..
|
|
|
71 |
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. Versuche nicht es zu umschreiben. Versuche nicht, die Antwort zu erfinden oder aufzumocken. Halte die Antwort kurz aber ausführlich genug und exakt."""
|
72 |
|
73 |
llm_template = "Beantworte die Frage am Ende. " + template + "Frage: {question} Hilfreiche Antwort: "
|
74 |
+
#nur für HF für Stichwotre bei chatverlauf
|
75 |
+
llm_template2 = "Fasse folgenden Text als Überschrift mit maximal 3 Worten zusammen. Text: {question} "
|
76 |
+
|
77 |
rag_template = "Nutze die folgenden Kontext Teile, um die Frage zu beantworten am Ende. " + template + "{context} Frage: {question} Hilfreiche Antwort: "
|
78 |
|
79 |
#################################################
|
80 |
#Konstanten
|
81 |
LLM_CHAIN_PROMPT = PromptTemplate(input_variables = ["question"],
|
82 |
template = llm_template)
|
83 |
+
#nur für HF bei chatverlauf
|
84 |
+
LLM_CHAIN_PROMPT = PromptTemplate(input_variables = ["question"],
|
85 |
+
template = llm_template2)
|
86 |
+
|
87 |
RAG_CHAIN_PROMPT = PromptTemplate(input_variables = ["context", "question"],
|
88 |
template = rag_template)
|
89 |
|
|
|
109 |
# Function to determine if the response is similar to predefined responses
|
110 |
def is_response_similar(user_response, threshold=0.7):
|
111 |
# Combine the standard responses with the user's response
|
112 |
+
combined_responses = ANTWORT_WEISS_NICHT + [user_response]
|
113 |
|
114 |
# Convert text to TF-IDF feature vectors
|
115 |
vectorizer = TfidfVectorizer()
|
|
|
246 |
result = llm_chain.run({"question": prompt})
|
247 |
return result
|
248 |
|
249 |
+
#nur für HF-um bei chatverlauf kurzbeschreibung zu erzeugen
|
250 |
+
def llm_chain2(llm, prompt):
|
251 |
+
llm_chain = LLMChain(llm = llm, prompt = LLM_CHAIN_PROMPT2)
|
252 |
+
result = llm_chain.run({"question": prompt})
|
253 |
+
return result
|
254 |
+
|
255 |
#############################################
|
256 |
#langchain nutzen, um prompt an llm zu leiten, aber vorher in der VektorDB suchen, um passende splits zum Prompt hinzuzufügen
|
257 |
def rag_chain(llm, prompt, db):
|
|
|
394 |
|
395 |
def process_chatverlauf_hf(history, llm):
|
396 |
input = generate_prompt_with_history("Gib folgendem Text eine Überschrift mit maximal 3 Worten", history)
|
397 |
+
result = llm_chain2(llm, input)
|
398 |
return result
|
399 |
|
400 |
|