alexkueck commited on
Commit
953a275
1 Parent(s): f24d926

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -15
app.py CHANGED
@@ -51,7 +51,7 @@ _ = load_dotenv(find_dotenv())
51
  #nur bei ersten Anfrage splitten der Dokumente - um die Vektordatenbank entsprechend zu füllen
52
  #splittet = False
53
  #DB für Vektorstore
54
- vektorstore = None
55
  retriever = None
56
 
57
  #############################################
@@ -325,7 +325,7 @@ def create_assistant_suche_hf(chatbot, prompt):
325
  #Funktion wird direkt aufgerufen aus der GUI - von hier muss auch die Rückmeldung kommen....
326
  #man kann einen Text-Prompt eingeben (mit oder ohne RAG), dazu ein Image hochladen, ein Bild zu einem reinen textprompt erzeugen lassen
327
  def generate_auswahl(prompt_in, file, file_history, chatbot, history, rag_option, model_option, openai_api_key, k=3, top_p=0.6, temperature=0.5, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3,top_k=35, websuche="Aus", validate=False):
328
- global vektorstore, retriever
329
 
330
  #nur wenn man sich validiert hat, kann die Anwendung los legen
331
  if (validate and not prompt_in == "" and not prompt_in == None):
@@ -339,15 +339,15 @@ def generate_auswahl(prompt_in, file, file_history, chatbot, history, rag_option
339
 
340
  if (rag_option == "An"):
341
  #muss nur einmal ausgeführt werden...
342
- if vectorstore == None:
343
  print("db neu aufbauen!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1")
344
  splits = document_loading_splitting()
345
- vectorstore, retriever = document_storage_chroma(splits)
346
 
347
  #kein Bild hochgeladen -> auf Text antworten...
348
  status = "Antwort der KI ..."
349
  if (file == None and file_history == None):
350
- result, status = generate_text(prompt, chatbot, history, rag_option, model_option, openai_api_key, vectorstore, websuche, k=3, top_p=0.6, temperature=0.5, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3, top_k=3)
351
  history = history + [[prompt, result]]
352
  else:
353
  #Es wurde ein File neu angehängt -> wenn prompt dazu, das Bild analysieren
@@ -359,9 +359,9 @@ def generate_auswahl(prompt_in, file, file_history, chatbot, history, rag_option
359
  #herausfinden, ob Bild oder Dokument...
360
  ext = analyze_file(neu_file)
361
  if (ext == "png" or ext == "PNG" or ext == "jpg" or ext == "jpeg" or ext == "JPG" or ext == "JPEG"):
362
- result= generate_text_zu_bild(neu_file, prompt, k, rag_option, chatbot, history, db)
363
  else:
364
- result = generate_text_zu_doc(neu_file, prompt, k, rag_option, chatbot, history, db)
365
 
366
  #die history erweitern - abhängig davon, ob gerade ein file hochgeladen wurde oder nicht
367
  if (file != None):
@@ -413,13 +413,13 @@ def generate_bild(prompt, chatbot, model_option_zeichnen='HuggingFace', temperat
413
 
414
  ##################################################
415
  #zu einem Bild und Text-Prompt eine Analyse generieren
416
- def generate_text_zu_bild(file, prompt, k, rag_option, chatbot, history, vectorstore):
417
  global splittet
418
  print("Text mit Bild ..............................")
419
  prompt_neu = generate_prompt_with_history(prompt, history)
420
  if (rag_option == "An"):
421
  print("Bild mit RAG..............................")
422
- neu_text_mit_chunks = rag_chain2(prompt, vectorstore, k)
423
  #für Chat LLM:
424
  #prompt = generate_prompt_with_history_openai(neu_text_mit_chunks, history)
425
  #als reiner prompt:
@@ -436,14 +436,14 @@ def generate_text_zu_bild(file, prompt, k, rag_option, chatbot, history, vectors
436
 
437
  ##################################################
438
  #zu einem Bild und Text-Prompt eine Analyse generieren
439
- def generate_text_zu_doc(file, prompt, k, rag_option, chatbot, history, vectorstore):
440
  global splittet
441
  print("text mit doc ..............................")
442
 
443
  prompt_neu = generate_prompt_with_history(prompt, history)
444
  if (rag_option == "An"):
445
  print("Doc mit RAG..............................")
446
- neu_text_mit_chunks = rag_chain2(prompt, vectorstore, k)
447
  #für Chat LLM:
448
  #prompt_neu = generate_prompt_with_history_openai(neu_text_mit_chunks, history)
449
  #als reiner prompt:
@@ -456,7 +456,7 @@ def generate_text_zu_doc(file, prompt, k, rag_option, chatbot, history, vectorst
456
  ####################################################
457
  #aus einem Text-Prompt die Antwort von KI bekommen
458
  #mit oder ohne RAG möglich
459
- def generate_text (prompt, chatbot, history, rag_option, model_option, openai_api_key, vectorstore, websuche, k=3, top_p=0.6, temperature=0.5, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3, top_k=35):
460
  #global splittet
461
  #hugchat=False
462
  suche_im_Netz="Antwort der KI ..."
@@ -569,7 +569,7 @@ def generate_text (prompt, chatbot, history, rag_option, model_option, openai_ap
569
  #Funktion wird direkt aufgerufen aus der GUI - von hier muss auch die Rückmeldung kommen....
570
  #man kann einen Text-Prompt eingeben , dazu ein Image hochladen, und dann dazu code erzeugen lassen
571
  def generate_code(prompt_in, file, file_history, chatbot, history, model_option, openai_api_key, k=3, top_p=0.6, temperature=0.5, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3,top_k=35):
572
- global vectorstore
573
  #prompt normalisieren bevor er an die KIs geht
574
  prompt = normalise_prompt(prompt_in)
575
  #falls schon ein File hochgeladen wurde, ist es in history_file gespeichert - falls ein neues File hochgeladen wurde, wird es anschließend neu gesetzt
@@ -590,9 +590,9 @@ def generate_code(prompt_in, file, file_history, chatbot, history, model_option
590
  #herausfinden, ob Bild oder Dokument...
591
  ext = analyze_file(neu_file)
592
  if (ext == "png" or ext == "PNG" or ext == "jpg" or ext == "jpeg" or ext == "JPG" or ext == "JPEG"):
593
- result= generate_text_zu_bild(neu_file, prompt, k, rag_option, chatbot, history, vectorstore)
594
  else:
595
- result = generate_text_zu_doc(neu_file, prompt, k, rag_option, chatbot, history, vectorstore)
596
 
597
  #die history erweitern - abhängig davon, ob gerade ein file hochgeladen wurde oder nicht
598
  if (file != None):
 
51
  #nur bei ersten Anfrage splitten der Dokumente - um die Vektordatenbank entsprechend zu füllen
52
  #splittet = False
53
  #DB für Vektorstore
54
+ vektordatenbank = None
55
  retriever = None
56
 
57
  #############################################
 
325
  #Funktion wird direkt aufgerufen aus der GUI - von hier muss auch die Rückmeldung kommen....
326
  #man kann einen Text-Prompt eingeben (mit oder ohne RAG), dazu ein Image hochladen, ein Bild zu einem reinen textprompt erzeugen lassen
327
  def generate_auswahl(prompt_in, file, file_history, chatbot, history, rag_option, model_option, openai_api_key, k=3, top_p=0.6, temperature=0.5, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3,top_k=35, websuche="Aus", validate=False):
328
+ global vektordatenbank, retriever
329
 
330
  #nur wenn man sich validiert hat, kann die Anwendung los legen
331
  if (validate and not prompt_in == "" and not prompt_in == None):
 
339
 
340
  if (rag_option == "An"):
341
  #muss nur einmal ausgeführt werden...
342
+ if vektordatenbank == None:
343
  print("db neu aufbauen!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1")
344
  splits = document_loading_splitting()
345
+ vektordatenbank, retriever = document_storage_chroma(splits)
346
 
347
  #kein Bild hochgeladen -> auf Text antworten...
348
  status = "Antwort der KI ..."
349
  if (file == None and file_history == None):
350
+ result, status = generate_text(prompt, chatbot, history, rag_option, model_option, openai_api_key, vektordatenbank, websuche, k=3, top_p=0.6, temperature=0.5, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3, top_k=3)
351
  history = history + [[prompt, result]]
352
  else:
353
  #Es wurde ein File neu angehängt -> wenn prompt dazu, das Bild analysieren
 
359
  #herausfinden, ob Bild oder Dokument...
360
  ext = analyze_file(neu_file)
361
  if (ext == "png" or ext == "PNG" or ext == "jpg" or ext == "jpeg" or ext == "JPG" or ext == "JPEG"):
362
+ result= generate_text_zu_bild(neu_file, prompt, k, rag_option, chatbot, history, vektordatenbank)
363
  else:
364
+ result = generate_text_zu_doc(neu_file, prompt, k, rag_option, chatbot, history, vektordatenbank)
365
 
366
  #die history erweitern - abhängig davon, ob gerade ein file hochgeladen wurde oder nicht
367
  if (file != None):
 
413
 
414
  ##################################################
415
  #zu einem Bild und Text-Prompt eine Analyse generieren
416
+ def generate_text_zu_bild(file, prompt, k, rag_option, chatbot, history, vektordatenbank):
417
  global splittet
418
  print("Text mit Bild ..............................")
419
  prompt_neu = generate_prompt_with_history(prompt, history)
420
  if (rag_option == "An"):
421
  print("Bild mit RAG..............................")
422
+ neu_text_mit_chunks = rag_chain2(prompt, vektordatenbank, k)
423
  #für Chat LLM:
424
  #prompt = generate_prompt_with_history_openai(neu_text_mit_chunks, history)
425
  #als reiner prompt:
 
436
 
437
  ##################################################
438
  #zu einem Bild und Text-Prompt eine Analyse generieren
439
+ def generate_text_zu_doc(file, prompt, k, rag_option, chatbot, history, vektordatenbank):
440
  global splittet
441
  print("text mit doc ..............................")
442
 
443
  prompt_neu = generate_prompt_with_history(prompt, history)
444
  if (rag_option == "An"):
445
  print("Doc mit RAG..............................")
446
+ neu_text_mit_chunks = rag_chain2(prompt, vektordatenbank, k)
447
  #für Chat LLM:
448
  #prompt_neu = generate_prompt_with_history_openai(neu_text_mit_chunks, history)
449
  #als reiner prompt:
 
456
  ####################################################
457
  #aus einem Text-Prompt die Antwort von KI bekommen
458
  #mit oder ohne RAG möglich
459
+ def generate_text (prompt, chatbot, history, rag_option, model_option, openai_api_key, vektordatenbank, websuche, k=3, top_p=0.6, temperature=0.5, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3, top_k=35):
460
  #global splittet
461
  #hugchat=False
462
  suche_im_Netz="Antwort der KI ..."
 
569
  #Funktion wird direkt aufgerufen aus der GUI - von hier muss auch die Rückmeldung kommen....
570
  #man kann einen Text-Prompt eingeben , dazu ein Image hochladen, und dann dazu code erzeugen lassen
571
  def generate_code(prompt_in, file, file_history, chatbot, history, model_option, openai_api_key, k=3, top_p=0.6, temperature=0.5, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3,top_k=35):
572
+ global vektordatenbank
573
  #prompt normalisieren bevor er an die KIs geht
574
  prompt = normalise_prompt(prompt_in)
575
  #falls schon ein File hochgeladen wurde, ist es in history_file gespeichert - falls ein neues File hochgeladen wurde, wird es anschließend neu gesetzt
 
590
  #herausfinden, ob Bild oder Dokument...
591
  ext = analyze_file(neu_file)
592
  if (ext == "png" or ext == "PNG" or ext == "jpg" or ext == "jpeg" or ext == "JPG" or ext == "JPEG"):
593
+ result= generate_text_zu_bild(neu_file, prompt, k, rag_option, chatbot, history, vektordatenbank)
594
  else:
595
+ result = generate_text_zu_doc(neu_file, prompt, k, rag_option, chatbot, history, vektordatenbank)
596
 
597
  #die history erweitern - abhängig davon, ob gerade ein file hochgeladen wurde oder nicht
598
  if (file != None):