mirror of
https://github.com/hwchase17/langchain
synced 2024-11-04 06:00:26 +00:00
35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
|
import json
|
||
|
import logging
|
||
|
from typing import Optional
|
||
|
|
||
|
from langchain_core.callbacks import CallbackManagerForToolRun
|
||
|
|
||
|
from langchain_community.tools.slack.base import SlackBaseTool
|
||
|
|
||
|
|
||
|
class SlackGetChannel(SlackBaseTool):
|
||
|
name: str = "get_channelid_name_dict"
|
||
|
description: str = "Use this tool to get channelid-name dict."
|
||
|
|
||
|
def _run(
|
||
|
self,
|
||
|
run_manager: Optional[CallbackManagerForToolRun] = None,
|
||
|
) -> str:
|
||
|
try:
|
||
|
logging.getLogger(__name__)
|
||
|
|
||
|
result = self.client.conversations_list()
|
||
|
channels = result["channels"]
|
||
|
filtered_result = [
|
||
|
{key: channel[key] for key in ("id", "name", "created", "num_members")}
|
||
|
for channel in channels
|
||
|
if "id" in channel
|
||
|
and "name" in channel
|
||
|
and "created" in channel
|
||
|
and "num_members" in channel
|
||
|
]
|
||
|
return json.dumps(filtered_result)
|
||
|
|
||
|
except Exception as e:
|
||
|
return "Error creating conversation: {}".format(e)
|