a
    bg                     @   sl   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 deZG dd	 d	eZdS )
    N)OptionalType)CallbackManagerForToolRun)	BaseModelField)SlackBaseToolc                   @   s&   e Zd ZU dZedddZeed< dS )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__ r   r   y/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/tools/slack/get_message.pyr      s
   
r   c                   @   sR   e Zd ZU dZdZeed< dZeed< eZ	e
e ed< deee edd	d
ZdS )SlackGetMessagezTool that gets Slack messages.Zget_messagesnamez-Use this tool to get messages from a channel.r	   args_schemaN)r
   run_managerreturnc              
   C   sr   t t z4| jj|d}|d }dd |D }tj|ddW S  tyl } zd|W  Y d }~S d }~0 0 d S )N)Zchannelmessagesc                    s6   g | ]. d  v rd v rd v r fdddD qS )usertexttsc                    s   i | ]}| | qS r   r   ).0keymessager   r   
<dictcomp>&       z3SlackGetMessage._run.<locals>.<listcomp>.<dictcomp>)r   r   r   r   )r   r   r   r   
<listcomp>%   s   z(SlackGetMessage._run.<locals>.<listcomp>F)ensure_asciizError creating conversation: {})	logging	getLoggerr   clientZconversations_historyjsondumps	Exceptionformat)selfr
   r   resultr   Zfiltered_messageser   r   r   _run   s    
zSlackGetMessage._run)N)r   r   r   r   r   r   r   r	   r   r   r   r   r   r.   r   r   r   r   r      s   
 r   )r'   r$   typingr   r   Zlangchain_core.callbacksr   Zpydanticr   r   Z$langchain_community.tools.slack.baser   r   r   r   r   r   r   <module>   s   	