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()
|