Update app.py
Browse files
app.py
CHANGED
@@ -357,6 +357,20 @@ def rag_chain(llm, prompt, db):
|
|
357 |
result = rag_chain({"query": prompt})
|
358 |
return result["result"]
|
359 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
360 |
###################################################
|
361 |
#Prompts mit History erzeugen für verschiednee Modelle
|
362 |
###################################################
|
@@ -429,7 +443,7 @@ def generate_auswahl(prompt, file, chatbot, history, rag_option, model_option, o
|
|
429 |
else:
|
430 |
#Es wurde ein Bild angehängt -> wenn prompt dazu, das Bild analysieren
|
431 |
#geht nur über spezielle OpenAI-Schnittstelle...
|
432 |
-
result= generate_text_zu_bild(file, prompt)
|
433 |
history = history + [((file,), None),(prompt, result)]
|
434 |
|
435 |
print("result..................")
|
@@ -466,10 +480,24 @@ def generate_bild(prompt, chatbot, temperature=0.5, max_new_tokens=4048,top_p=0
|
|
466 |
|
467 |
##################################################
|
468 |
#zu einem Bild und Text-Prompt eine Analyse generieren
|
469 |
-
def generate_text_zu_bild(file, prompt):
|
470 |
global splittet
|
471 |
-
|
472 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
473 |
response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)
|
474 |
#als json ausgeben
|
475 |
data = response.json()
|
|
|
357 |
result = rag_chain({"query": prompt})
|
358 |
return result["result"]
|
359 |
|
360 |
+
############################################
|
361 |
+
# rag_chain Alternative für RAg mit Bild-Upload, da hier das llm so nicht genutzt werden kann und der prompt mit den RAG Erweiterungen anders übergeben wird
|
362 |
+
#langchain nutzen, um prompt an llm zu leiten, aber vorher in der VektorDB suchen, um passende splits zum Prompt hinzuzufügen
|
363 |
+
#prompt mit RAG!!!
|
364 |
+
def rag_chain2(prompt, db, k=3):
|
365 |
+
rag_template = "Nutze die folgenden Kontext Teile am Ende, um die Frage zu beantworten . " + template + "Frage: " + prompt + "Kontext Teile: "
|
366 |
+
retrieved_chunks = db.similarity_search(prompt, k)
|
367 |
+
|
368 |
+
neu_prompt = rag_template
|
369 |
+
for i, chunk in enumerate(retrieved_chunks):
|
370 |
+
neu_prompt += f"{i+1}. {chunk}\n"
|
371 |
+
|
372 |
+
return neu_prompt
|
373 |
+
|
374 |
###################################################
|
375 |
#Prompts mit History erzeugen für verschiednee Modelle
|
376 |
###################################################
|
|
|
443 |
else:
|
444 |
#Es wurde ein Bild angehängt -> wenn prompt dazu, das Bild analysieren
|
445 |
#geht nur über spezielle OpenAI-Schnittstelle...
|
446 |
+
result= generate_text_zu_bild(file, prompt, k)
|
447 |
history = history + [((file,), None),(prompt, result)]
|
448 |
|
449 |
print("result..................")
|
|
|
480 |
|
481 |
##################################################
|
482 |
#zu einem Bild und Text-Prompt eine Analyse generieren
|
483 |
+
def generate_text_zu_bild(file, prompt, k):
|
484 |
global splittet
|
485 |
+
|
486 |
+
prompt_neu = prompt
|
487 |
+
if (rag_option == "An"):
|
488 |
+
#muss nur einmal ausgeführt werden...
|
489 |
+
if not splittet:
|
490 |
+
splits = document_loading_splitting()
|
491 |
+
document_storage_chroma(splits)
|
492 |
+
db = document_retrieval_chroma()
|
493 |
+
#mit RAG:
|
494 |
+
neu_text_mit_chunks = rag_chain(prompt, db, k)
|
495 |
+
#für Chat LLM:
|
496 |
+
#prompt = generate_prompt_with_history_openai(neu_text_mit_chunks, history)
|
497 |
+
#als reiner prompt:
|
498 |
+
prompt_neu = generate_prompt_with_history(neu_text_mit_chunks, history)
|
499 |
+
|
500 |
+
headers, payload = process_image(file, prompt_neu)
|
501 |
response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)
|
502 |
#als json ausgeben
|
503 |
data = response.json()
|