
    љi                     j    S SK Jr  S SKJr  S SKrS SKJr  \" \5      r " S S5      r	 " S S\5      r
g)	    )	getLogger)CallableN)Toolc                       \ rS rSrSSSSSSSSSS	.	S
\S\S\S\S\S\\/\4   S\S\S\S\4S jjr	SS\S\
4S jjrSrg)
GrokSearch	    grok-4-fast-non-reasoning-latestN        d      g      N@F)	modelsystem_prompttemperaturelanguage
make_querymax_connectionsmax_keepalive_connectionstimeoutdebugxai_api_keyr   r   r   r   r   r   r   r   r   c       
   	          [         R                  " S[         R                  " U	5      [         R                  " UUS9S9U l        Xl        X l        U=(       d    SU l        X@l        XPl	        X`l
        Xl        g )NF)r   r   )follow_redirectsr   limitszSearch the web to answer the user's query. Base your response strictly on the search results, and do not include your own opinions.)httpxAsyncClientTimeoutLimitshttp_clientr   r   r   r   r   r   r   )selfr   r   r   r   r   r   r   r   r   r   s              \/home/james-whalen/.local/lib/python3.13/site-packages/aiavatar/sts/llm/tools/grok_search.py__init__GrokSearch.__init__
   sn     !,,"MM'*<< /*C
 '
*  t  /t& $
    querysourcesc                   #    SSU R                    3S.nU R                  (       a  U R                  U5      nU R                  (       a  [        R	                  SU 35        SU R
                  (       a  U R                  SU R
                   3-   OSS.S	S
U 3S./SU=(       d    SS0/S.U R                  S.nU R                  R                  SUUS9I S h  vN nUR                  S:w  a*  [        R                  SUR                  5        35        SS0$ UR                  5       S   S   S   S   nU R                  (       a  [        R	                  SU 35        SU0$  N7f)Nzapplication/jsonzBearer )zContent-TypeAuthorizationzGrok Search Query: systemz
Output language code:  )rolecontentuserzSearch: autotypeweb)moder%   )messagessearch_parametersr   z$https://api.x.ai/v1/chat/completions)urlheadersjson   zError at Grok web search tool: errorzError at Grok web search toolchoicesr   messager+   zGrok Search Result: search_result)r   r   r   loggerinfor   r   r   r   poststatus_coder7   readr5   )r   r$   r%   r4   payloadrespr:   s          r    searchGrokSearch.search'   sr    .&t'7'7&89

 ??OOE*E::KK-eW56 "ptp}p}d.@.@D\]a]j]j\kBl.l  DF  Ghug,>?
 "7&7" ZZ

 %%**6 + 
 
 s"LL:499;-HI<>>		I.q1)<YG::KK.}o>?//
s   CEEBE)r   r   r   r   r   r   r   r   )N)__name__
__module____qualname____firstlineno__strfloatr   intboolr!   listrB   __static_attributes__ r#   r    r   r   	   s     8! +/")+  	
   cUCZ(  $'  :&0# &0 &0 &0r#   r   c                   h   ^  \ rS rSrSSSSSSSSSSSS	.S
\S\S\S\S\S\S\S\4U 4S jjjrSr	U =r
$ )GrokSearchToolP   r	   Nr
   r   r   i0u  F)r   r   r   r   r   r   namespecinstruction
is_dynamicr   r   r   r   r   r   r   r   r   c                   > [        UUUUUUUUS9U l        [        TU ]  U=(       d    SU	=(       d    SU=(       d    SSSSSS00S/S	.S
.S.U R                  R                  U
U5        g )N)r   r   r   r   r   r   r   r   grok_web_searchfunctionz#Search the web using Grok WebSearchobjectr$   r.   string)r.   
propertiesrequired)rR   description
parameters)r.   rX   )r   rW   superr!   rB   )r   r   r   r   r   r   r   r   rR   rS   rT   rU   r   	__class__s                r    r!   GrokSearchTool.__init__Q   s       *#'#+&?	 
 	%% " 5$5#H (#fh%7' &-I#
   ''%	
r#   )rW   )rD   rE   rF   rG   rH   rI   rJ   rK   r!   rM   __classcell__)r`   s   @r    rP   rP   P   s    
 8! ")+-
 -
 	-

 -
 -
 -
 $'-
 -
 -
 -
r#   rP   )loggingr   typingr   r   aiavatar.sts.llmr   rD   r;   r   rP   rN   r#   r    <module>rf      s4       !	8	D0 D0N.
T .
r#   