File size: 1,149 Bytes
b40ab72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from src.langgraph_agenticai.state.state import State

class ChatbotWithToolsNode:
    """
    Chatbot logic enhanced with tool integration.
    """
    
    def __init__(self, model):
        self.llm = model
        
    # def process(self, state: State) -> dict:
    #     """
    #     Processes the input state and generates a response with tool integration.
    #     """
        
    #     user_input = state["messages"][-1] if state["messages"] else ""
    #     llm_response = self.llm.invoke([{"role": "user", "content": user_input}])
        
    #     # Simulate tool-specific logic
    #     tools_response = f"Tool integration for: '{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 a response.
            """
            return {"messages": [llm_with_tools.invoke(state["messages"])]}

        return chatbot_node