
    =Mj                    x    S SK Jr  S SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
Jr  SrS rSS	 jrSSS
.SS jjrg)    )annotationsN)Any)connect)utc_now)load_secretzgpt-5.6-solc                 B    SSK Jn   [	        S5      n[        UR                  S5      =(       d    S5      R                  5       nU(       d  [        S5      eU " US9[        UR                  S	5      =(       d    [        5      4$ ! [         a  n[        S5      UeS nAff = f)
Nr   )OpenAIu,   Не установлен пакет openai.openaiapi_key u%   API key OpenAI не настроен.)r   model)	r
   r	   ImportErrorRuntimeErrorr   strgetstripDEFAULT_MODEL)r	   excsecretkeys       ;/mnt/data/_core_build/package/core/connectors/openai_api.py_clientr      s    T! x FFJJy!'R(..0CBCC#FJJw$7$H= III  TIJPSSTs   B 
BBBc            
     >   [        5       u  pU R                  R                  U5      n[        5       n[	        5        nUR                  SU[        R                  " SU0SS945        UR                  5         S S S 5        S[        USU5      S.$ ! , (       d  f       N= f)NzUPDATE connectors SET status='ok',last_test_at=?,last_error=NULL,meta_json=?
                       WHERE connector_key='openai'r   Fensure_asciiTid)okr   )
r   modelsretriever   r   executejsondumpscommitgetattr)clientr   objnowcons        r   test_connectionr)      s    LFu%C	C	c 7WUOGH	J 	

	 

 gc$u566 
s   :B
B)instructionsr   c           	     ^   UR                  5       (       d  [        S5      e[        5       u  pEU=(       d    UnU=(       d    Sn[        R                  " UR                  S5      5      R                  5       nS n	[        5        n
U
R                  SX[        5       SU45      nUR                  n	U
R                  5         S S S 5         UR                  R                  UUUS9nUR                  n[        USS 5      [        USU5      S	.n[        US
S 5      nUb   S H  n[        UUS 5      nUc  M  UUU'   M     [        5        n
U
R                  S[         R"                  " USS9U	45        U
R                  5         S S S 5        SXS.$ ! , (       d  f       N= f! , (       d  f       N$= f! [$         ay  n[        5        n
U
R                  S['        U5      S S U	45        U
R                  S['        U5      S S 45        U
R                  5         S S S 5        e ! , (       d  f       e = fS nAff = f)Nu.   Пустой текст для анализа.u   Проанализируй материал строго по предоставленному тексту. Не восстанавливай отсутствующие нормы и явно отмечай пробелы источника.zutf-8zlINSERT INTO ai_runs(purpose,model,created_at,status,input_hash)
                           VALUES(?,?,?,?,?)running)r   r*   inputr   r   )response_idr   usage)input_tokensoutput_tokenstotal_tokenszGUPDATE ai_runs SET status='ok',result_meta_json=?,error=NULL WHERE id=?Fr   T)r   textmetaz4UPDATE ai_runs SET status='error',error=? WHERE id=?i  zNUPDATE connectors SET status='error',last_error=? WHERE connector_key='openai'i  )r   r   r   hashlibsha256encode	hexdigestr   r    r   	lastrowidr#   	responsescreateoutput_textr$   r!   r"   	Exceptionr   )purposer3   r*   r   r%   configured_modelchosenpromptdigestrun_idr(   curresponseoutputr4   r/   r   valuer   s                      r   analyze_textrH   $   s   ::<<KLL#IF$$F P	P  >>$++g./99;FF	cKK 018	)TZ0[]}}

	 

!!(( ) 

 ##!(45HWV4
 hwt,FeC-$d3i G Y#KKaDe<VDFJJL  443 
* Y
  Y#KKNPSTWPXY^Z^P_`fOghKKhS%4*,JJL	 
 	 Y
 	s\   ;FA%F) /F) 8F:F) 
F
F&"F) )
H,3
H'=AH	H'
H$	 H''H,)returndict[str, Any])
r>   r   r3   r   r*   
str | Noner   rK   rI   rJ   )
__future__r   r5   r!   typingr   core_dbr   core_schemar   secret_storer   r   r   r)   rH        r   <module>rS      s=    "      $	J
7 ?CRV * *rR   