Discord
本筆記本提供在 langchain_discord 中開始使用 Discord 工具的快速概觀。如需每個工具和組態的更多詳細資訊,請參閱您儲存庫中的文件字串或相關文件頁面。
概觀
整合詳細資訊
類別 | 套件 | 可序列化 | JS 支援 | 最新套件 |
---|---|---|---|---|
DiscordReadMessages 、DiscordSendMessage | langchain-discord-shikenso | 不適用 | 待定 |
工具功能
DiscordReadMessages
:從指定的頻道讀取訊息。DiscordSendMessage
:將訊息傳送到指定的頻道。
設定
此整合由 langchain-discord-shikenso
套件提供。請按如下方式安裝:
%pip install --quiet -U langchain-discord-shikenso
憑證
此整合需要您將 DISCORD_BOT_TOKEN
設定為環境變數,以使用 Discord API 進行驗證。
export DISCORD_BOT_TOKEN="your-bot-token"
import getpass
import os
# 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_react_agent
),可以設定 LangChain 風格的代理程式,使其能夠在適當時呼叫工具。
# Example: Using Discord Tools in an Agent
from langgraph.prebuilt import create_react_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))
llm = ...
# 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_react_agent(llm, [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)
events = agent_executor.stream(
{"messages": [("user", example_query)]},
stream_mode="values",
)
# 6. Print out the model's responses (and any tool outputs) as they arrive
for event in events:
event["messages"][-1].pretty_print()
API 參考:create_react_agent
API 參考
請參閱以下位置的文件字串:
以取得使用詳細資訊、參數和進階組態。