
    h|                     x    d dl Z d dlZd dlmZmZ d dlmZ d dlmZm	Z	 d dl
mZ  G d de      Z G d d	e      Zy)
    N)OptionalType)CallbackManagerForToolRun)	BaseModelField)SlackBaseToolc                   0    e Zd ZU dZ edd      Zeed<   y)SlackGetMessageSchemaz"Input schema for SlackGetMessages..z@The channel id, private group, or IM channel to send message to.)description
channel_idN)__name__
__module____qualname____doc__r   r   str__annotations__     i/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/tools/slack/get_message.pyr
   r
      s    ,VJ r   r
   c                   `    e Zd ZU dZdZeed<   dZeed<   eZ	e
e   ed<   	 dded	ee   d
efdZy)SlackGetMessagezTool that gets Slack messages.get_messagesnamez-Use this tool to get messages from a channel.r   args_schemaNr   run_managerreturnc           
      h   t        j                  t               	 | j                  j	                  |      }|d   }|D cg c]"  }d|v rd|v rd|v rdD ci c]  }|||   
 c}$ }}}t        j                  |d      S c c}w c c}}w # t        $ r}d	j                  |      cY d }~S d }~ww xY w)
N)channelmessagesusertextts)r    r!   r"   F)ensure_asciizError creating conversation: {})	logging	getLoggerr   clientconversations_historyjsondumps	Exceptionformat)	selfr   r   resultr   messagekeyfiltered_messageses	            r   _runzSlackGetMessage._run   s    
 	(#
	?[[66z6JFj)H  (!W$7):tw /EEsgcl"E! !
 ::/eDD	 F!  	?4;;A>>	?sA   &B BB#B(B BB 	B1B,&B1,B1)N)r   r   r   r   r   r   r   r   r
   r   r   r   r   r2   r   r   r   r   r      sV    (D#FKF/DK+,D
 <@?? 78? 
	?r   r   )r(   r$   typingr   r   langchain_core.callbacksr   pydanticr   r   $langchain_community.tools.slack.baser   r
   r   r   r   r   <module>r7      s/      ! > % >I ?m ?r   