**PR Description** This update bumps the integration’s version to `0.2.0` and brings several important changes to how `langchain-arcade` interfaces with Arcade tools: 1. **Updated Tool Definition Imports** • Replaces `arcadepy.types.shared.ToolDefinition` with `arcadepy.types.ToolGetResponse as ToolDefinition`. • The parameter extraction is now done via `tool_def.input.parameters` instead of the previous `tool_def.inputs.parameters`. 2. **Authorization Flow Adjustments** • Uses `auth_response.url` instead of `auth_response.authorization_url`. • The `authorize` and `is_authorized` methods now rely on the Arcade client’s updated arguments (`client.auth.status(id=authorization_id)`). 3. **Tool Execution Parameter Renaming** • The `execute` method now expects `input=kwargs` instead of `inputs=kwargs`, aligning with Arcade’s new API spec. 4. **Tool Retrieval Enhancements** • `_retrieve_tool_definitions` is revised to better handle pagination and tool listing (including when no tools/toolkits are explicitly provided). 5. **Version & Dependency Updates** • Increases `langchain-arcade` to `0.2.0`. • Switches `arcadepy` dependency to `~1.0.0rc1`. • Updates example requirements to consume `langchain-arcade[langgraph]>=0.2.0`. These changes may affect existing code that relies on older parameter names (`inputs.parameters` → `input.parameters`) and the renamed execute argument. Please ensure any integrations or custom usage of Arcade tools is updated accordingly.
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
import os
|
|
|
|
# Import necessary modules and classes
|
|
from langchain_arcade import ArcadeToolManager
|
|
from langchain_core.messages import HumanMessage
|
|
from langchain_openai import ChatOpenAI
|
|
from langgraph.prebuilt import create_react_agent
|
|
|
|
arcade_api_key = os.environ["ARCADE_API_KEY"]
|
|
openai_api_key = os.environ["OPENAI_API_KEY"]
|
|
|
|
# Initialize the tool manager that fetches
|
|
# tools from arcade and wraps them as langgraph tools
|
|
tool_manager = ArcadeToolManager(api_key=arcade_api_key)
|
|
tools = tool_manager.get_tools(langgraph=True)
|
|
|
|
# Create an instance of the AI language model
|
|
model = ChatOpenAI(model="gpt-4o", api_key=openai_api_key)
|
|
|
|
# Init a prebuilt agent that can use tools
|
|
# in a REACT style langgraph
|
|
graph = create_react_agent(model, tools=tools)
|
|
|
|
# Define the initial input message from the user
|
|
inputs = {
|
|
"messages": [HumanMessage(content="Star arcadeai/arcade-ai on GitHub!")],
|
|
}
|
|
|
|
# Configuration parameters for the agent and tools
|
|
config = {
|
|
"configurable": {
|
|
"thread_id": "2",
|
|
"user_id": "user@example.com",
|
|
}
|
|
}
|
|
|
|
# Stream the assistant's responses by executing the graph
|
|
for chunk in graph.stream(inputs, stream_mode="values", config=config):
|
|
# Access the latest message from the conversation
|
|
last_message = chunk["messages"][-1]
|
|
# Print the assistant's message content
|
|
if last_message.content:
|
|
print(last_message.content)
|