alexkueck commited on
Commit
fc94519
1 Parent(s): db5dd3e

Update utils.py

Browse files
Files changed (1) hide show
  1. utils.py +28 -0
utils.py CHANGED
@@ -45,12 +45,21 @@ import io
45
  from PIL import Image, ImageDraw, ImageOps, ImageFont
46
  import base64
47
 
 
 
 
 
48
 
49
  logging.basicConfig(
50
  level=logging.INFO,
51
  format="%(asctime)s [%(levelname)s] [%(filename)s:%(lineno)d] %(message)s",
52
  )
53
 
 
 
 
 
 
54
 
55
  #################################################
56
  #Gesetzte Werte für Pfade, Prompts und Keys..
@@ -86,6 +95,25 @@ YOUTUBE_URL_2 = "https://www.youtube.com/watch?v=hdhZwyf24mE"
86
  #YOUTUBE_URL_3 = "https://www.youtube.com/watch?v=vw-KWfKwvTQ"
87
 
88
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  ##################################################
90
  #RAG Hilfsfunktionen - Dokumenten bearbeiten für Vektorstore
91
  ##################################################
 
45
  from PIL import Image, ImageDraw, ImageOps, ImageFont
46
  import base64
47
 
48
+ from sklearn.feature_extraction.text import TfidfVectorizer
49
+ from sklearn.metrics.pairwise import cosine_similarity
50
+ import numpy as np
51
+
52
 
53
  logging.basicConfig(
54
  level=logging.INFO,
55
  format="%(asctime)s [%(levelname)s] [%(filename)s:%(lineno)d] %(message)s",
56
  )
57
 
58
+ ################################################
59
+ #Beispiel-Antworten, wenn die KI etwas nicht beantworten kann - dann im Netz suchen
60
+ ################################################
61
+ # Your predefined sentences
62
+ standard_responses = ["ich weiß nicht.", "ich weiß das nicht", "Ich habe dazu keine Antwort", "Ich bin nicht sicher", "Ich kann das nicht beantworten"]
63
 
64
  #################################################
65
  #Gesetzte Werte für Pfade, Prompts und Keys..
 
95
  #YOUTUBE_URL_3 = "https://www.youtube.com/watch?v=vw-KWfKwvTQ"
96
 
97
 
98
+ #################################################
99
+ # Retrieval Funktion, um KI-Antwort mit vorgegebenen zu vergleichen
100
+ # Function to determine if the response is similar to predefined responses
101
+ def is_response_similar(user_response, threshold=0.7):
102
+ # Combine the standard responses with the user's response
103
+ combined_responses = standard_responses + [user_response]
104
+
105
+ # Convert text to TF-IDF feature vectors
106
+ vectorizer = TfidfVectorizer()
107
+ tfidf_matrix = vectorizer.fit_transform(combined_responses)
108
+
109
+ # Compute cosine similarity between user's response and standard responses
110
+ cosine_similarities = cosine_similarity(tfidf_matrix[-1], tfidf_matrix[:-1])
111
+
112
+ # Check if any of the standard responses are similar to the user's response
113
+ if np.max(cosine_similarities) > threshold:
114
+ return True
115
+ return False
116
+
117
  ##################################################
118
  #RAG Hilfsfunktionen - Dokumenten bearbeiten für Vektorstore
119
  ##################################################