
    C<jB                       d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dlZd dl	m
Z
 d dlmZ  ee                                          j        Zedz  Zedz  d	z  Z eed
z             ddZ	 dddZddZddZddZd ZdS )    )annotationsN)datetime)Path)Document)load_dotenvoutputconfigzprompts.yamlz.envtranscription_datalist[dict[str, object]]returnstrc                "   g }| D ]v}t          |                    dd                    }t          |                    dd                                                    }|r|                    | d|            wd                    |          S )Nspeaker	UNBEKANNTtext z: 
)r   getstripappendjoin)r
   linessegr   r   s        llm_processor.py_transcript_to_textr      s    E! / /cggi556637762&&''--// 	/LLG--t--...99U    r   session_typeparticipants_textcontext_textc                @   t                               dd          5 }t          j        |          }d d d            n# 1 swxY w Y   |d         }|d                             |d          }t          |           }d| d| d	| d
| d| d                                S )Nrzutf-8)encodingsystem_promptsitzungsartenzErstelle ein Protokoll.z
SYSTEMROLLE:
z

AUFGABE:
u@   

TEILNEHMER & FUNKTIONEN (Nutze dies für das Namens-Mapping):
u:   

ZUSÄTZLICHER KONTEXT (Traktanden, Vorprotokolle etc.):
z

TRANSKRIPT DER SITZUNG:
u   

AUSGABE:
Erstelle ein sauber strukturiertes deutschsprachiges Sitzungsprotokoll. Schreibe nur das fertige Protokoll, keine Vorbemerkungen über das Modell oder den Prozess.
)PROMPTS_FILEopenyaml	safe_loadr   r   r   )	r
   r   r   r   filer	   
sys_prompttask_prompttranscript_texts	            r   build_protocol_promptr-      s    
		3		1	1 &T%%& & & & & & & & & & & & & & & (J)--l<UVVK)*<==O 
         $ 
EGG%s   >AAc                    t          j        d          } | r| gng }|                    dt          t	          j                    dz  dz  dz            dg           |D ]e}|st	          |                                          r%t	          |                                          r|c S t          j	        |          }|r|c S ft          d          )z@Resolve CodexCLI also when systemd/Streamlit has a minimal PATH.	CODEX_BINcodex.localbinz/usr/local/bin/codexzgCodexCLI nicht gefunden. Setze CODEX_BIN=/home/agent/.local/bin/codex oder installiere `codex` im PATH.)osgetenvextendr   r   homeis_absoluteexistsshutilwhichRuntimeError)
configured
candidates	candidateresolveds       r   _resolve_codex_binr@   @   s    ;''J!+3*JDIKK("U*W455       	 		??&&(( 	T)__-C-C-E-E 	<	** 	OOO	 	,  r   promptc                   t                      }t          j        dd          }t          t          j        dd                    }|dd|dt	          t
                    dd	d
dg
}t          j        || dt          j        t          j        |di t          j	        dt          j                    dz  dz   dt          j	                            dd           i          }|j        dk    r;|j                                        dd          }t!          d|j         d|           |j                                        }|st!          d          |S )NCODEX_MODELgpt-5.5CODEX_TIMEOUT_SECONDS1800execz--modelz--cdz	--sandboxz	read-onlyz--ephemeral-TFPATHr1   r2   z:/usr/local/bin:r   )inputr   stdoutstderrtimeoutcheckenvr   i0zCodexCLI fehlgeschlagen (Exit z): z CodexCLI lieferte keine Ausgabe.)r@   r3   r4   intr   BASE_DIR
subprocessrunPIPEenvironr   r6   r   
returncoderL   r   r;   rK   )rA   	codex_binmodelrM   commandresultrL   r   s           r   _generate_with_codexr[   Y   s`   "$$IImY//E")3V<<==GHG ^
j
ty{{X-5ccrz~~V\^`GaGacc
 
  F A$$&&uvv.ZF<MZZRXZZ[[[]  ""F ?=>>>Mr   c                    t          d           t          | |||          }t          j        d          dk    rdS t          dt          j        dd           d           t	          |          S )	Nu*   
[*] Lade Prompts für ChatGPT/CodexCLI...AUTOPROTOCOL_LLM_MOCK1zKSitzungsprotokoll

Dies ist ein lokaler Mock-Test ohne externen LLM-Aufruf.z0[*] Sende Protokollauftrag an CodexCLI (Modell: rC   rD   z)...)printr-   r3   r4   r[   )r
   r   r   r   rA   s        r   generate_protocol_with_llmr`      sx    	
7888"#5|EVXdeeF	y())S00^^	
fRY}V_=`=`
f
f
fggg'''r   c                H   t          d           t                              dd           t                      }|                    dd           t          j                    }|                    d|                    d                      |                    d|            |                    d	           |                    |            d
|                    d           d}t          |z  }|	                    t          |                     t          |          S )z5Speichert den Codex/ChatGPT-Output als Word-Dokument.z%[*] Erstelle finales Word-Dokument...T)parentsexist_okSitzungsprotokollr   zDatum der Erstellung: z%d.%m.%Y %H:%MzQuelle: z2--------------------------------------------------
Protokoll_z%Y%m%d_%H%Mz.docx)r_   
OUTPUT_DIRmkdirr   add_headingr   nowadd_paragraphstrftimesaver   )llm_textoriginal_filenamedocri   output_filenameoutput_paths         r   save_llm_to_wordrr      s   	
1222TD111
**COO'+++
,..COs||<L/M/MOOPPP4!244555hhE3<<#>#>EEEO.KHHS{r   )r
   r   r   r   )r   )
r
   r   r   r   r   r   r   r   r   r   )r   r   )rA   r   r   r   )
__future__r   r3   r9   rR   r   pathlibr   r'   docxr   dotenvr   __file__resolveparentrQ   rf   r%   r   r-   r@   r[   r`   rr    r   r   <module>r{      sY   " " " " " " 				                              4>>!!##* 
("^3 Hv       	    D   2$ $ $ $N( ( ( (    r   