alexkueck commited on
Commit
e34d975
·
verified ·
1 Parent(s): 0675c95

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -35
app.py CHANGED
@@ -61,12 +61,12 @@ DOCS_DIR = "chroma/kkg/pdf"
61
  ###########################################
62
  #######################################
63
  #1. Alternative: HuggingFace Model name--------------------------------
64
- MODEL_NAME_HF = "HuggingFaceH4/zephyr-7b-alpha" #"t5-small" #"meta-llama/Meta-Llama-3-8B-Instruct" #"mistralai/Mistral-7B-Instruct-v0.3" #"microsoft/Phi-3-mini-4k-instruct" #"HuggingFaceH4/zephyr-7b-alpha"
65
 
66
  ############################################
67
  #2. Alternative_ HuggingFace Reop ID--------------------------------
68
  #repo_id = "meta-llama/Llama-2-13b-chat-hf"
69
- repo_id = "HuggingFaceH4/zephyr-7b-alpha" #das Modell ist echt gut!!! Vom MIT
70
  #repo_id = "TheBloke/Yi-34B-Chat-GGUF"
71
  #repo_id = "meta-llama/Llama-2-70b-chat-hf"
72
  #repo_id = "tiiuae/falcon-40b"
@@ -84,7 +84,7 @@ repo_id = "HuggingFaceH4/zephyr-7b-alpha" #das Modell ist echt gut!!! Vom MIT
84
 
85
  ###########################################
86
  #3. Alternative: HF API - URL
87
- API_URL = "https://api-inference.huggingface.co/models/Falconsai/text_summarization"
88
 
89
 
90
 
@@ -163,6 +163,7 @@ def clear_all3(history):
163
  #History - die Frage oder das File eintragen...
164
  #in history_file ist ein file gespeichert, falls voher im Verlauf schon ein File hochgeladen wurde.
165
  #wird ein neuer File hochgeladen, so wird history_fiel dadurch ersetzt
 
166
  def add_text(chatbot, history, prompt, file, file_history):
167
  if (file == None):
168
  chatbot = chatbot +[(prompt, None)]
@@ -181,10 +182,11 @@ def add_text2(chatbot, prompt):
181
  else:
182
  chatbot = chatbot + [(prompt, None)]
183
  return chatbot, prompt, ""
184
-
185
 
186
  ############################################
187
  #nach dem Upload soll das zusätzliche Fenster mit dem image drinnen angezeigt werden
 
188
  def file_anzeigen(file):
189
  ext = analyze_file(file)
190
  if (ext == "png" or ext == "PNG" or ext == "jpg" or ext == "jpeg" or ext == "JPG" or ext == "JPEG"):
@@ -194,6 +196,7 @@ def file_anzeigen(file):
194
 
195
  def file_loeschen():
196
  return None, gr.Image(visible = False)
 
197
 
198
  ############################################
199
  #wenn 'Stop' Button geklickt, dann Message dazu und das Eingabe-Fenster leeren
@@ -209,7 +212,6 @@ def reset_textbox():
209
  ####################################################
210
  #aus einem Text-Prompt die Antwort von KI bekommen
211
  def generate_text (prompt, chatbot, history, vektordatenbank, retriever, top_p=0.6, temperature=0.2, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3, top_k=35):
212
- print("Text pur..............................")
213
  if (prompt == ""):
214
  raise gr.Error("Prompt ist erforderlich.")
215
 
@@ -218,7 +220,7 @@ def generate_text (prompt, chatbot, history, vektordatenbank, retriever, top_p=0
218
  #########################################
219
  #Prompt mit History Daten zusammenstellen:
220
  #Prompt an history anhängen und einen Text daraus machen
221
- history_text_und_prompt = generate_prompt_with_history(prompt, history)
222
 
223
  #oder an Hugging Face --------------------------
224
  print("HF Anfrage.......................")
@@ -236,6 +238,7 @@ def generate_text (prompt, chatbot, history, vektordatenbank, retriever, top_p=0
236
  ##############################################
237
  #1.Alternative mit Inference API ung HF EndPoint
238
  # Erstelle eine HuggingFaceEndPoints-Instanz mit den entsprechenden Endpunkt-Parametern
 
239
  llm = HuggingFaceEndpoint(
240
  endpoint_url=f"https://api-inference.huggingface.co/models/{MODEL_NAME_HF}",
241
  api_key=hf_token,
@@ -258,10 +261,12 @@ def generate_text (prompt, chatbot, history, vektordatenbank, retriever, top_p=0
258
  #llm = pipeline("text-generation", model=MODEL_NAME_HF, config={"temperature": 0.5, "max_length": 1024, "num_return_sequences": 1, "top_k": top_k, "top_p": top_p, "repetition_penalty": repetition_penalty}, trust_remote_code=True)
259
  #llm = pipeline("summarization", model=MODEL_NAME_HF, trust_remote_code=True)
260
  #result = rag_chain(llm, history_text_und_prompt, retriever)
261
-
 
 
 
262
  except Exception as e:
263
  raise gr.Error(e)
264
-
265
  return result, False
266
 
267
 
@@ -289,18 +294,9 @@ def generate_auswahl(prompt_in, file, file_history, chatbot, history, anzahl_doc
289
  vektordatenbank, retriever = document_storage_chroma(splits)
290
 
291
  #kein Bild hochgeladen -> auf Text antworten...
292
- status = "Antwort der KI ..."
293
- if (file == None and file_history == None):
294
- results, status = generate_text(prompt, chatbot, history,vektordatenbank, retriever, top_p=0.6, temperature=0.5, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3, top_k=3)
295
- else:
296
- #Es wurde ein File neu angehängt -> das hochladen und dann Prompt bearbeiten
297
- #das history_fiel muss neu gesetzt werden
298
- if (file != None):
299
- # file_history wird neu gesetzt in der Rückgabe dieser Funktion...
300
- neu_file = file
301
-
302
- #File hochladen in Chroma und dann Antwort generieren
303
- results = generate_text_zu_doc(neu_file, prompt, k, rag_option, chatbot, history, vektordatenbank)
304
 
305
  #Ergebnisse für history und chatbot zusammenstellen
306
  summary = str(results['answer']) + "\n\n<b>Auszüge dazu: </b>"
@@ -316,20 +312,6 @@ def generate_auswahl(prompt_in, file, file_history, chatbot, history, anzahl_doc
316
  chatbot[-1][1] = summary
317
  return chatbot, history, None, file_history, ""
318
 
319
- """
320
- chatbot[-1][1] = ""
321
- for character in summary:
322
- chatbot[-1][1] += character
323
- time.sleep(0.01)
324
- yield chatbot, history, None, neu_file, status
325
- if shared_state.interrupted:
326
- shared_state.recover()
327
- try:
328
- yield chatbot, history, None, neu_file, "Stop: Success"
329
- except:
330
- pass
331
- """
332
-
333
 
334
  else: #noch nicht validiert, oder kein Prompt
335
  return chatbot, history, None, file_history, "Erst validieren oder einen Prompt eingeben!"
@@ -346,8 +328,17 @@ def upload_pdf(file):
346
  # Extrahieren des Dateinamens aus dem vollen Pfad
347
  filename = os.path.basename(file.name)
348
 
 
 
 
 
 
 
 
 
 
 
349
  # Datei zum Hugging Face Space hochladen
350
- upload_path = f"chroma/kkg/pdf/{filename}"
351
  api.upload_file(
352
  path_or_fileobj=file.name,
353
  path_in_repo=upload_path,
 
61
  ###########################################
62
  #######################################
63
  #1. Alternative: HuggingFace Model name--------------------------------
64
+ #MODEL_NAME_HF = "HuggingFaceH4/zephyr-7b-alpha" #"t5-small" #"meta-llama/Meta-Llama-3-8B-Instruct" #"mistralai/Mistral-7B-Instruct-v0.3" #"microsoft/Phi-3-mini-4k-instruct" #"HuggingFaceH4/zephyr-7b-alpha"
65
 
66
  ############################################
67
  #2. Alternative_ HuggingFace Reop ID--------------------------------
68
  #repo_id = "meta-llama/Llama-2-13b-chat-hf"
69
+ #repo_id = "HuggingFaceH4/zephyr-7b-alpha" #das Modell ist echt gut!!! Vom MIT
70
  #repo_id = "TheBloke/Yi-34B-Chat-GGUF"
71
  #repo_id = "meta-llama/Llama-2-70b-chat-hf"
72
  #repo_id = "tiiuae/falcon-40b"
 
84
 
85
  ###########################################
86
  #3. Alternative: HF API - URL
87
+ #API_URL = "https://api-inference.huggingface.co/models/Falconsai/text_summarization"
88
 
89
 
90
 
 
163
  #History - die Frage oder das File eintragen...
164
  #in history_file ist ein file gespeichert, falls voher im Verlauf schon ein File hochgeladen wurde.
165
  #wird ein neuer File hochgeladen, so wird history_fiel dadurch ersetzt
166
+ """
167
  def add_text(chatbot, history, prompt, file, file_history):
168
  if (file == None):
169
  chatbot = chatbot +[(prompt, None)]
 
182
  else:
183
  chatbot = chatbot + [(prompt, None)]
184
  return chatbot, prompt, ""
185
+ """
186
 
187
  ############################################
188
  #nach dem Upload soll das zusätzliche Fenster mit dem image drinnen angezeigt werden
189
+ """
190
  def file_anzeigen(file):
191
  ext = analyze_file(file)
192
  if (ext == "png" or ext == "PNG" or ext == "jpg" or ext == "jpeg" or ext == "JPG" or ext == "JPEG"):
 
196
 
197
  def file_loeschen():
198
  return None, gr.Image(visible = False)
199
+ """
200
 
201
  ############################################
202
  #wenn 'Stop' Button geklickt, dann Message dazu und das Eingabe-Fenster leeren
 
212
  ####################################################
213
  #aus einem Text-Prompt die Antwort von KI bekommen
214
  def generate_text (prompt, chatbot, history, vektordatenbank, retriever, top_p=0.6, temperature=0.2, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3, top_k=35):
 
215
  if (prompt == ""):
216
  raise gr.Error("Prompt ist erforderlich.")
217
 
 
220
  #########################################
221
  #Prompt mit History Daten zusammenstellen:
222
  #Prompt an history anhängen und einen Text daraus machen
223
+ #history_text_und_prompt = generate_prompt_with_history(prompt, history)
224
 
225
  #oder an Hugging Face --------------------------
226
  print("HF Anfrage.......................")
 
238
  ##############################################
239
  #1.Alternative mit Inference API ung HF EndPoint
240
  # Erstelle eine HuggingFaceEndPoints-Instanz mit den entsprechenden Endpunkt-Parametern
241
+ """
242
  llm = HuggingFaceEndpoint(
243
  endpoint_url=f"https://api-inference.huggingface.co/models/{MODEL_NAME_HF}",
244
  api_key=hf_token,
 
261
  #llm = pipeline("text-generation", model=MODEL_NAME_HF, config={"temperature": 0.5, "max_length": 1024, "num_return_sequences": 1, "top_k": top_k, "top_p": top_p, "repetition_penalty": repetition_penalty}, trust_remote_code=True)
262
  #llm = pipeline("summarization", model=MODEL_NAME_HF, trust_remote_code=True)
263
  #result = rag_chain(llm, history_text_und_prompt, retriever)
264
+ """
265
+
266
+ result = reg_chain_simpel(prompt, retriever)
267
+
268
  except Exception as e:
269
  raise gr.Error(e)
 
270
  return result, False
271
 
272
 
 
294
  vektordatenbank, retriever = document_storage_chroma(splits)
295
 
296
  #kein Bild hochgeladen -> auf Text antworten...
297
+ status = "Antwort der Vektordatenbank"
298
+ results, status = generate_text(prompt, chatbot, history,vektordatenbank, retriever, top_p=0.6, temperature=0.5, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3, top_k=3)
299
+
 
 
 
 
 
 
 
 
 
300
 
301
  #Ergebnisse für history und chatbot zusammenstellen
302
  summary = str(results['answer']) + "\n\n<b>Auszüge dazu: </b>"
 
312
  chatbot[-1][1] = summary
313
  return chatbot, history, None, file_history, ""
314
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
315
 
316
  else: #noch nicht validiert, oder kein Prompt
317
  return chatbot, history, None, file_history, "Erst validieren oder einen Prompt eingeben!"
 
328
  # Extrahieren des Dateinamens aus dem vollen Pfad
329
  filename = os.path.basename(file.name)
330
 
331
+ # Extrahieren der Dateiendung
332
+ file_extension = os.path.splitext(filename)[1]
333
+ # Bestimmen des Upload-Pfads basierend auf der Dateiendung
334
+ if file_extension == ".pdf":
335
+ upload_path = f"chroma/kkg/pdf/{filename}"
336
+ elif file_extension == ".docx":
337
+ upload_path = f"chroma/kkg/word/{filename}"
338
+ else:
339
+ upload_path = f"chroma/kkg/{filename}"
340
+
341
  # Datei zum Hugging Face Space hochladen
 
342
  api.upload_file(
343
  path_or_fileobj=file.name,
344
  path_in_repo=upload_path,