本指南提供了快速概览,帮助您开始在 langchain_discord中使用 Discord 工具。如需了解更多关于每个工具和配置的详细信息,请参阅仓库中的文档字符串或相关文档页面。
概述
集成详情
| 类 | 包 | 可序列化 | JS 支持 | 版本 |
|---|---|---|---|---|
DiscordReadMessages, DiscordSendMessage | langchain-discord-shikenso | N/A | TBD | !PyPI - 版本 |
工具特性
- - **
DiscordReadMessages**:从指定频道读取消息。 - - **
DiscordSendMessage**:向指定频道发送消息。
设置
该集成由 langchain-discord-shikenso 包提供。请按如下方式安装:
pip install --quiet -U langchain-discord-shikenso
凭证
该集成需要您将 DISCORD_BOT_TOKEN 设置为环境变量以向 Discord API 进行身份验证。
# Example prompt to set your token if not already set:
# if not os.environ.get("DISCORD_BOT_TOKEN"):
# os.environ["DISCORD_BOT_TOKEN"] = getpass.getpass("DISCORD Bot Token:\n")
您可以选择设置 LangSmith 用于追踪或可观测性:
os.environ["LANGSMITH_TRACING"] = "true"
# os.environ["LANGSMITH_API_KEY"] = getpass.getpass()
实例化
下面是展示如何在 langchain_discord中实例化 Discord 工具的示例。根据您的具体使用情况进行调整。
from langchain_discord.tools.discord_read_messages import DiscordReadMessages
from langchain_discord.tools.discord_send_messages import DiscordSendMessage
read_tool = DiscordReadMessages()
send_tool = DiscordSendMessage()
# Example usage:
# response = read_tool({"channel_id": "1234567890", "limit": 5})
# print(response)
#
# send_result = send_tool({"message": "Hello from notebook!", "channel_id": "1234567890"})
# print(send_result)
调用
使用参数直接调用
下面是使用字典中的关键字参数调用工具的简单示例。
invocation_args = {"channel_id": "1234567890", "limit": 3}
response = read_tool(invocation_args)
response
使用 ToolCall 调用
如果您有模型生成的 ToolCall,请将其传递给 tool.invoke() ,格式如下所示。
tool_call = {
"args": {"channel_id": "1234567890", "limit": 2},
"id": "1",
"name": read_tool.name,
"type": "tool_call",
}
tool.invoke(tool_call)
链接
下面是展示如何将 DiscordReadMessages 和 DiscordSendMessage 工具与 LLM 结合使用于链或代理中的完整示例。本示例假设您有一个函数(如create_agent),用于设置 LangChain 风格的代理,该代理能够在适当的时候调用工具。
# Example: Using Discord Tools in an Agent
from langchain.agents import create_agent
from langchain_discord.tools.discord_read_messages import DiscordReadMessages
from langchain_discord.tools.discord_send_messages import DiscordSendMessage
# 1. Instantiate or configure your language model
# (Replace with your actual LLM, e.g., ChatOpenAI(temperature=0))
model = ...
# 2. Create instances of the Discord tools
read_tool = DiscordReadMessages()
send_tool = DiscordSendMessage()
# 3. Build an agent that has access to these tools
agent_executor = create_agent(model, [read_tool, send_tool])
# 4. Formulate a user query that may invoke one or both tools
example_query = "Please read the last 5 messages in channel 1234567890"
# 5. Execute the agent in streaming mode (or however your code is structured)
stream = agent_executor.stream_events(
{"messages": [("user", example_query)]},
version="v3",
)
# 6. Print out the model's responses (and any tool outputs) as they arrive
for snapshot in stream.values:
snapshot["messages"][-1].pretty_print()
API 参考
请参阅以下位置中的文档字符串:
以获取用法详情、参数和高级配置。