Slack 工具組
這將幫助您開始使用 Slack 工具組。如需所有 SlackToolkit 功能和組態的詳細文件,請前往 API 參考。
設定
若要使用此工具組,您需要取得權杖,如 Slack API 文件中所述。收到 SLACK_USER_TOKEN 後,您可以將其作為環境變數輸入在下方。
import getpass
import os
if not os.getenv("SLACK_USER_TOKEN"):
os.environ["SLACK_USER_TOKEN"] = getpass.getpass("Enter your Slack user token: ")
如果您想從個別工具的執行中取得自動追蹤,您也可以設定您的 LangSmith API 金鑰,方法是取消註解下方內容
# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
# os.environ["LANGSMITH_TRACING"] = "true"
安裝
此工具組位於 langchain-community
套件中。我們還需要 Slack SDK
%pip install -qU langchain-community slack_sdk
或者,我們可以安裝 beautifulsoup4 以協助剖析 HTML 訊息
%pip install -qU beautifulsoup4 # This is optional but is useful for parsing HTML messages
實例化
現在我們可以實例化我們的工具組
from langchain_community.agent_toolkits import SlackToolkit
toolkit = SlackToolkit()
API 參考:SlackToolkit
工具
檢視可用工具
tools = toolkit.get_tools()
tools
[SlackGetChannel(client=<slack_sdk.web.client.WebClient object at 0x113caa8c0>),
SlackGetMessage(client=<slack_sdk.web.client.WebClient object at 0x113caa4d0>),
SlackScheduleMessage(client=<slack_sdk.web.client.WebClient object at 0x113caa440>),
SlackSendMessage(client=<slack_sdk.web.client.WebClient object at 0x113caa410>)]
此工具組載入
在代理程式中使用
讓我們為代理程式配備 Slack 工具組,並查詢有關頻道的資訊。
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
llm = ChatOpenAI(model="gpt-4o-mini")
agent_executor = create_react_agent(llm, tools)
API 參考:ChatOpenAI | create_react_agent
example_query = "When was the #general channel created?"
events = agent_executor.stream(
{"messages": [("user", example_query)]},
stream_mode="values",
)
for event in events:
message = event["messages"][-1]
if message.type != "tool": # mask sensitive information
event["messages"][-1].pretty_print()
================================[1m Human Message [0m=================================
When was the #general channel created?
==================================[1m Ai Message [0m==================================
Tool Calls:
get_channelid_name_dict (call_NXDkALjoOx97uF1v0CoZTqtJ)
Call ID: call_NXDkALjoOx97uF1v0CoZTqtJ
Args:
==================================[1m Ai Message [0m==================================
The #general channel was created on timestamp 1671043305.
example_query = "Send a friendly greeting to channel C072Q1LP4QM."
events = agent_executor.stream(
{"messages": [("user", example_query)]},
stream_mode="values",
)
for event in events:
message = event["messages"][-1]
if message.type != "tool": # mask sensitive information
event["messages"][-1].pretty_print()
================================[1m Human Message [0m=================================
Send a friendly greeting to channel C072Q1LP4QM.
==================================[1m Ai Message [0m==================================
Tool Calls:
send_message (call_xQxpv4wFeAZNZgSBJRIuaizi)
Call ID: call_xQxpv4wFeAZNZgSBJRIuaizi
Args:
message: Hello! Have a great day!
channel: C072Q1LP4QM
==================================[1m Ai Message [0m==================================
I have sent a friendly greeting to the channel C072Q1LP4QM.
API 參考
如需所有 SlackToolkit
功能和組態的詳細文件,請前往 API 參考。