[docs]classSlackGetMessageSchema(BaseModel):"""Input schema for SlackGetMessages."""channel_id:str=Field(...,description="The channel id, private group, or IM channel to send message to.",)
[docs]classSlackGetMessage(SlackBaseTool):# type: ignore[override, override]"""Tool that gets Slack messages."""name:str="get_messages"description:str="Use this tool to get messages from a channel."args_schema:Type[SlackGetMessageSchema]=SlackGetMessageSchemadef_run(self,channel_id:str,run_manager:Optional[CallbackManagerForToolRun]=None,)->str:logging.getLogger(__name__)try:result=self.client.conversations_history(channel=channel_id)messages=result["messages"]filtered_messages=[{key:message[key]forkeyin("user","text","ts")}formessageinmessagesif"user"inmessageand"text"inmessageand"ts"inmessage]returnjson.dumps(filtered_messages,ensure_ascii=False)exceptExceptionase:return"Error creating conversation: {}".format(e)