SlackToolkit
这将帮助您开始使用 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 # 这是可选的,但对于解析 HTML 消息非常有用
实例化
现在我们可以实例化我们的工具包:
from langchain_community.agent_toolkits import SlackToolkit
toolkit = 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-3.5-turbo-0125")
agent_executor = create_react_agent(llm, tools)
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 人类消息 [0m=================================
When was the #general channel created?
==================================[1m AI 消息 [0m==================================
工具调用:
get_channelid_name_dict (call_NXDkALjoOx97uF1v0CoZTqtJ)
调用 ID: call_NXDkALjoOx97uF1v0CoZTqtJ
参数:
==================================[1m AI 消息 [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 人类消息 [0m=================================
Send a friendly greeting to channel C072Q1LP4QM.
==================================[1m AI 消息 [0m==================================
工具调用:
send_message (call_xQxpv4wFeAZNZgSBJRIuaizi)
调用 ID: call_xQxpv4wFeAZNZgSBJRIuaizi
参数:
message: Hello! Have a great day!
channel: C072Q1LP4QM
==================================[1m AI 消息 [0m==================================
I have sent a friendly greeting to the channel C072Q1LP4QM.
API 参考
有关所有 SlackToolkit
功能和配置的详细文档,请访问 API 参考。