alexkueck commited on
Commit
f0fac31
1 Parent(s): 8c8b629

Update utils.py

Browse files
Files changed (1) hide show
  1. utils.py +16 -3
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
- standard_responses = ["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,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 = standard_responses + [user_response]
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 = llm_chain(llm, input)
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