Agentic-AI / src /langgraphagenticai /nodes /chatbot_with_tools_node.py
Gorantla Krishna
Added tool chatbot
6846bc6
from src.langgraphagenticai.state.state import State
from src.langgraphagenticai.tools.search_tool import get_tavily_search_tool
class ChatbotWithToolNode:
"""
Chatbot logic enhanced with tool integration
"""
def __init__(self,model):
self.llm = model
def process(self,state:State):
"""
Processes the input state and generates response with the tool integration.
"""
user_input = state["messages"][-1] if state["messages"] else ""
llm_response = self.llm.invoke([{"role":"user","content":user_input}])
# Tool invocation
tool = get_tavily_search_tool()
tools_response = tool.invoke({"query":user_input})
return {"messages": [llm_response,tools_response]}
def create_chatbot(self,tools):
"""
Returns a chatbot node function.
"""
llm_with_tools = self.llm.bind_tools(tools)
def chatbot_node(state:State):
"""
Chatbot logic for processing the input state and returning the response.
"""
return {"messages": [llm_with_tools.invoke(state["messages"])]}
return chatbot_node