Ë
    I»jŽ  ã                  ó<   — d Z ddlmZ ddlmZmZ ddlmZmZ dd„Z	y)zFShared helper: try live LLM JSON, else local deterministic generation.é    )Úannotations)ÚAnyÚCallable)ÚLLMErrorÚ	chat_jsonc              ƒ  ó´   K  — 	 t        | |¬«      ƒ d{  –—† \  }}}t        |t        «      sd|i}|| |fS 7 Œ"# t        t        f$ r  |«       ddfcY S w xY w­w)z-Returns (data, used_stub, provider_or_local).)ÚsystemÚuserNÚresultTÚlocal)r   Ú
isinstanceÚdictr   Ú	Exception)r	   r
   Úlocal_factoryÚdataÚproviderÚlives         ú2/var/www/html/TJ-AI/tj/app/services/ai_generate.pyÚgenerate_jsonr      sn   è ø€ ð.Ü%.°fÀ4Ô%H×HÑˆˆh˜Ü˜$¤Ô%Ø˜dÐ#ˆDØ˜$�h Ð)Ð)ð  Iùô ”iÐ ò .Ù‹  gÐ-Ò-ð.üs1   ‚A„9 ”7•!9 ¶A·9 ¹AÁAÁAÁAN)r	   Ústrr
   r   r   zCallable[[], dict[str, Any]]Úreturnz tuple[dict[str, Any], bool, str])
Ú__doc__Ú
__future__r   Útypingr   r   Úapp.llmr   r   r   © ó    r   Ú<module>r      s   ðÙ Lå "ß  ß 'ô.r   