Update app.py
Browse files
app.py
CHANGED
@@ -29,8 +29,10 @@ from beschreibungen import *
|
|
29 |
|
30 |
|
31 |
#Konstanten
|
32 |
-
|
33 |
-
|
|
|
|
|
34 |
PATH_WORK = "."
|
35 |
CHROMA_DIR = "/chroma/kkg"
|
36 |
CHROMA_PDF = './chroma/kkg/pdf'
|
@@ -125,13 +127,9 @@ def add_text(chatbot, history, prompt, file, file_history):
|
|
125 |
if (prompt == ""):
|
126 |
chatbot=chatbot + [((file.name,), "Prompt fehlt!")]
|
127 |
else:
|
128 |
-
|
129 |
-
if (ext == "png" or ext == "PNG" or ext == "jpg" or ext == "jpeg" or ext == "JPG" or ext == "JPEG"):
|
130 |
-
chatbot = chatbot +[((file.name,), None), (prompt, None)]
|
131 |
-
else:
|
132 |
-
chatbot = chatbot +[("Hochgeladenes Dokument: "+ get_filename(file) +"\n" + prompt, None)]
|
133 |
|
134 |
-
return chatbot, history, prompt, file, file_history, gr.Image(visible = False), ""
|
135 |
|
136 |
def add_text2(chatbot, prompt):
|
137 |
if (prompt == ""):
|
@@ -187,7 +185,7 @@ def generate_text (prompt, chatbot, history, vektordatenbank, top_p=0.6, temper
|
|
187 |
#oder an Hugging Face --------------------------
|
188 |
print("HF Anfrage.......................")
|
189 |
model_kwargs={"temperature": 0.5, "max_length": 512, "num_return_sequences": 1, "top_k": top_k, "top_p": top_p, "repetition_penalty": repetition_penalty}
|
190 |
-
llm = HuggingFaceHub(repo_id=repo_id, model_kwargs=model_kwargs)
|
191 |
llm = HuggingFaceChain(model=MODEL_NAME_HF, model_kwargs={"temperature": 0.5, "max_length": 128})
|
192 |
|
193 |
#Prompt an history anhängen und einen Text daraus machen
|
@@ -195,14 +193,14 @@ def generate_text (prompt, chatbot, history, vektordatenbank, top_p=0.6, temper
|
|
195 |
|
196 |
#zusätzliche Dokumenten Splits aus DB zum Prompt hinzufügen (aus VektorDB - Chroma oder Mongo DB)
|
197 |
print("LLM aufrufen mit RAG: ...........")
|
198 |
-
result = rag_chain(history_text_und_prompt, db,
|
199 |
print("result regchain.....................")
|
200 |
print(result)
|
201 |
|
202 |
except Exception as e:
|
203 |
raise gr.Error(e)
|
204 |
|
205 |
-
return result,
|
206 |
|
207 |
|
208 |
########################################
|
@@ -274,6 +272,7 @@ def generate_auswahl(prompt_in, file, file_history, chatbot, history, anzahl_doc
|
|
274 |
prompt = normalise_prompt(prompt_in)
|
275 |
|
276 |
#muss nur einmal ausgeführt werden...
|
|
|
277 |
if vektordatenbank == None:
|
278 |
print("db neu aufbauen!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1")
|
279 |
splits = document_loading_splitting()
|
@@ -283,7 +282,6 @@ def generate_auswahl(prompt_in, file, file_history, chatbot, history, anzahl_doc
|
|
283 |
status = "Antwort der KI ..."
|
284 |
if (file == None and file_history == None):
|
285 |
result, status = generate_text(prompt, chatbot, history,vektordatenbank, top_p=0.6, temperature=0.5, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3, top_k=3)
|
286 |
-
history = history + [[prompt, result]]
|
287 |
else:
|
288 |
#Es wurde ein File neu angehängt -> das hochladen und dann Prompt bearbeiten
|
289 |
#das history_fiel muss neu gesetzt werden
|
@@ -293,15 +291,30 @@ def generate_auswahl(prompt_in, file, file_history, chatbot, history, anzahl_doc
|
|
293 |
|
294 |
#File hochladen in Chroma und dann Antwort generieren
|
295 |
result = generate_text_zu_doc(neu_file, prompt, k, rag_option, chatbot, history, vektordatenbank)
|
296 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
297 |
#die history erweitern - abhängig davon, ob gerade ein file hochgeladen wurde oder nicht
|
298 |
if (file != None):
|
299 |
-
history = history + [[(file,), None],[prompt,
|
300 |
else:
|
301 |
-
history = history + [[prompt,
|
302 |
-
|
|
|
|
|
303 |
chatbot[-1][1] = ""
|
304 |
-
for character in
|
305 |
chatbot[-1][1] += character
|
306 |
time.sleep(0.03)
|
307 |
yield chatbot, history, None, neu_file, status
|
@@ -391,17 +404,17 @@ with gr.Blocks(css=customCSS, theme=themeAlex) as demo:
|
|
391 |
|
392 |
with gr.Column():
|
393 |
with gr.Column(min_width=50, scale=1):
|
394 |
-
with gr.Tab(label="Chats ..."):
|
395 |
#Geht nicht, da für alle gleichzeitig sichtbar
|
396 |
#chat_selector = gr.CheckboxGroup(label="", choices=update_chat_options())
|
397 |
#download_button = gr.Button("Download ausgewählte Chats")
|
398 |
-
file_download = gr.File(label="Noch keine Chatsverläufe", visible=True, interactive = False, file_count="multiple",)
|
399 |
|
400 |
with gr.Tab(label="Parameter"):
|
401 |
#gr.Markdown("# Parameters")
|
402 |
-
rag_option = gr.Radio(["Aus", "An"], label="KKG Erweiterungen (RAG)", value = "Aus")
|
403 |
-
model_option = gr.Radio(["
|
404 |
-
websuche = gr.Radio(["Aus", "An"], label="Web-Suche", value = "Aus")
|
405 |
|
406 |
|
407 |
top_p = gr.Slider(
|
|
|
29 |
|
30 |
|
31 |
#Konstanten
|
32 |
+
#Validieren des PW
|
33 |
+
ANTI_BOT_PW = os.getenv("VALIDATE_PW")
|
34 |
+
#max Anzahl der zurückgelieferten Dokumente
|
35 |
+
ANZAHL_DOCS = 5
|
36 |
PATH_WORK = "."
|
37 |
CHROMA_DIR = "/chroma/kkg"
|
38 |
CHROMA_PDF = './chroma/kkg/pdf'
|
|
|
127 |
if (prompt == ""):
|
128 |
chatbot=chatbot + [((file.name,), "Prompt fehlt!")]
|
129 |
else:
|
130 |
+
chatbot = chatbot +[("Hochgeladenes Dokument: "+ get_filename(file) +"\n" + prompt, None)]
|
|
|
|
|
|
|
|
|
131 |
|
132 |
+
return chatbot, history, prompt, file, file_history, gr.Image(visible = False), ""
|
133 |
|
134 |
def add_text2(chatbot, prompt):
|
135 |
if (prompt == ""):
|
|
|
185 |
#oder an Hugging Face --------------------------
|
186 |
print("HF Anfrage.......................")
|
187 |
model_kwargs={"temperature": 0.5, "max_length": 512, "num_return_sequences": 1, "top_k": top_k, "top_p": top_p, "repetition_penalty": repetition_penalty}
|
188 |
+
#llm = HuggingFaceHub(repo_id=repo_id, model_kwargs=model_kwargs)
|
189 |
llm = HuggingFaceChain(model=MODEL_NAME_HF, model_kwargs={"temperature": 0.5, "max_length": 128})
|
190 |
|
191 |
#Prompt an history anhängen und einen Text daraus machen
|
|
|
193 |
|
194 |
#zusätzliche Dokumenten Splits aus DB zum Prompt hinzufügen (aus VektorDB - Chroma oder Mongo DB)
|
195 |
print("LLM aufrufen mit RAG: ...........")
|
196 |
+
result = rag_chain(history_text_und_prompt, db, ANZAHL_DOCS)
|
197 |
print("result regchain.....................")
|
198 |
print(result)
|
199 |
|
200 |
except Exception as e:
|
201 |
raise gr.Error(e)
|
202 |
|
203 |
+
return result, False
|
204 |
|
205 |
|
206 |
########################################
|
|
|
272 |
prompt = normalise_prompt(prompt_in)
|
273 |
|
274 |
#muss nur einmal ausgeführt werden...
|
275 |
+
#?????????????????????????????????????????????? Nicht passend zum Promt???????????????????????????
|
276 |
if vektordatenbank == None:
|
277 |
print("db neu aufbauen!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1")
|
278 |
splits = document_loading_splitting()
|
|
|
282 |
status = "Antwort der KI ..."
|
283 |
if (file == None and file_history == None):
|
284 |
result, status = generate_text(prompt, chatbot, history,vektordatenbank, top_p=0.6, temperature=0.5, max_new_tokens=4048, max_context_length_tokens=2048, repetition_penalty=1.3, top_k=3)
|
|
|
285 |
else:
|
286 |
#Es wurde ein File neu angehängt -> das hochladen und dann Prompt bearbeiten
|
287 |
#das history_fiel muss neu gesetzt werden
|
|
|
291 |
|
292 |
#File hochladen in Chroma und dann Antwort generieren
|
293 |
result = generate_text_zu_doc(neu_file, prompt, k, rag_option, chatbot, history, vektordatenbank)
|
294 |
+
#########################################
|
295 |
+
#result verarbeiten
|
296 |
+
#aus result die Ergebnisse aufteilen und der History anhängen
|
297 |
+
#passages = [doc['text'] for doc in docs]
|
298 |
+
#links = [doc.get('url', 'No URL available') for doc in docs]
|
299 |
+
|
300 |
+
|
301 |
+
# Zusammenstellen der Ausgabe
|
302 |
+
response = {
|
303 |
+
"answer": result,
|
304 |
+
#"documents": [{"link": link, "passage": passage} for link, passage in zip(links, passages)]
|
305 |
+
}
|
306 |
+
|
307 |
+
|
308 |
#die history erweitern - abhängig davon, ob gerade ein file hochgeladen wurde oder nicht
|
309 |
if (file != None):
|
310 |
+
history = history + [[(file,), None],[prompt, response]]
|
311 |
else:
|
312 |
+
history = history + [[prompt, response]]
|
313 |
+
|
314 |
+
|
315 |
+
|
316 |
chatbot[-1][1] = ""
|
317 |
+
for character in response:
|
318 |
chatbot[-1][1] += character
|
319 |
time.sleep(0.03)
|
320 |
yield chatbot, history, None, neu_file, status
|
|
|
404 |
|
405 |
with gr.Column():
|
406 |
with gr.Column(min_width=50, scale=1):
|
407 |
+
#with gr.Tab(label="Chats ..."):
|
408 |
#Geht nicht, da für alle gleichzeitig sichtbar
|
409 |
#chat_selector = gr.CheckboxGroup(label="", choices=update_chat_options())
|
410 |
#download_button = gr.Button("Download ausgewählte Chats")
|
411 |
+
#file_download = gr.File(label="Noch keine Chatsverläufe", visible=True, interactive = False, file_count="multiple",)
|
412 |
|
413 |
with gr.Tab(label="Parameter"):
|
414 |
#gr.Markdown("# Parameters")
|
415 |
+
#rag_option = gr.Radio(["Aus", "An"], label="KKG Erweiterungen (RAG)", value = "Aus")
|
416 |
+
model_option = gr.Radio(["HuggingFace"], label="Modellauswahl", value = "HuggingFace")
|
417 |
+
#websuche = gr.Radio(["Aus", "An"], label="Web-Suche", value = "Aus")
|
418 |
|
419 |
|
420 |
top_p = gr.Slider(
|