
    h              	           d dl Z d dlZdZd dlmZ d dlmZmZ dZdZ	 ej                  dej                        Zded	efd
Zddededed	efdZy)    NT)OpenAI)query_rag_context_from_dbbuild_rag_augmented_promptzgpt-4o-miniu  Du bist ein präziser, faktenorientierter Assistent.
Nutze den bereitgestellten Kontext aus den Realcube RAG Dokumenten.
Halte die Antwort fachlich, klar und kompakt (deutsch).

Antworte IMMER in diesem Format:
1) Stelle die Kernpunkte in <3–5 Bulletpoints> dar.
   - Jeder Bulletpoint muss grammatisch direkt an den folgenden Stamm anschließen:
     „Mit der REALCUBE Plattform steuern und überwachen Sie dazu z.B. Folgendes“
   - Wichtig: Der Stamm-Satz selbst darf nicht erneut ausgegeben oder paraphrasiert werden.
   - Ausgabeformat (streng):
     - Jeder Bulletpoint beginnt mit "- "
     - Nur Nominal- oder Infinitivphrasen (z. B. "- die Optimierung von Cashflows …", "- Risiken frühzeitig erkennen …")
     - Kein Fettdruck, keine Einleitung, keine Überschrift
     - Kein Punkt am Zeilenende (außer bei Abkürzungen)
   - Beispiele (korrekt):
     - die Optimierung von Cashflows zur Sicherung der Zahlungsfähigkeit
     - die Überwachung zinsbedingter Kosteneffekte auf das Portfolio
     - transparente Rendite- und Liquiditätsprognosen für Investoren
   - Beispiele (falsch – vermeiden):
     - Mit der REALCUBE Plattform …  (Stamm wiederholt)
     - Die Optimierung von Cashflows.  (abschließender Punkt)
     - **die Optimierung …**  (fett formatiert)

2) REALCUBE-Mehrwert: Beginne mit „Mit der Realcube-Plattform …“ und erläutere in 1–2 Sätzen, was dadurch möglich wird, was sonst nicht möglich wäre (auch wenn kein Kontext genutzt wurde).

3) KI-Bezug: Erwähne, dass die Realcube Plattform KI verwendet, wenn der Use-Case passt, und erkläre fallabhängig, wie die Ergebnisse dadurch verbessert werden können.
z>\$\$[\s\S]*?\$\$|\\\[[\s\S]*?\\\]|\\\([\s\S]*?\\\)|\$[^$\n]*\$sreturnc                 j    t         j                  d|       j                  dd      j                         S )N z   )LATEX_REsubreplacestrip)r   s    '/var/www/html/dynbot5004/rag_service.pystrip_latexr   )   s)    <<A&&tS17799    
user_query	tenant_idtop_kc           
      T   t        | ||      }|j                  d      xs d}|j                  dg       }t        r`t        dt	        |       d| d| d	       |d d
 D ]"  }t        d|d    d|d    d|d   dd	       $ t        d|d d xs dz   d	       |j                         st        | d      }nt        | |      }t        rYt        dd	       t        |d	       t        dd	       t        dd	       t        t        j                         d   dz   d	       t               }|j                  j                  j                  t        ddt        dd|dg      }	|	j                  d   j                  j                   xs dj                         }
d|
vr|
d z  }
|||
d!S )"N)r   r   contextr	   matchesu   🧩 RAG: matches=z top_k=z tenant=T)flush   u      · [rankz] titlez  sim=
similarityz.3fu   🧩 RAG context preview:
i  z(empty)u   🧩 RAG prompt >>>z<<< END RAG promptu   🧩 RAG system >>>r   u    …g?system)rolecontentuser)modeltemperaturemessageszREALCUBE-Mehrwertu"  

REALCUBE-Mehrwert: Mit der Realcube-Plattform werden Quell- und Zieldaten aus heterogenen Systemen konsolidiert, laufend aktualisiert und KI-auswertbar gemacht – Analysen und Prognosen lassen sich damit in Qualität und Taktung erreichen, die sonst in dieser Form nicht möglich wären.)r   r   addendum)r   getLOG_RAGprintlenr   r   
RAG_SYSTEM
splitlinesr   chatcompletionscreateOPENAI_MODELchoicesmessager   )r   r   r   resr   r   mpromptclientr+   r$   s              r   generate_rag_addendumr5   -   s   
#J)5
QCggi &BGggi$G"3w<.whykRZ^_! 	^AGAfI;b7F1\?3:OPX\]	^+wu~/JKSWX==? ,J;+J@#40fD!"$/#40j##%a(61>XF;;""))*5/
 * D Q''//52<<>H (*b	
 7IIr   )   )osrer&   openair   rag_dbr   r   r.   r)   compileSr   strr   intdictr5    r   r   <module>rA      sw    	 	
  H
8 2::WY[Y]Y]^:3 :3 :-Jc -Jc -J# -Jd -Jr   