Spaces:
Build error
Build error
| # src/langgraphagenticai/nodes/basic_chatbot_node.py | |
| from src.langgraphagenticai.state.state import State | |
| from langchain_core.messages import AIMessage, HumanMessage, SystemMessage | |
| from src.langgraphagenticai.logging.logging_utils import logger, log_entry_exit | |
| class BasicChatbotNode: | |
| def __init__(self, model): | |
| self.llm = model | |
| def process(self, state: State) -> dict: | |
| messages = state["messages"] | |
| response = self.llm.invoke(messages) | |
| state["messages"].append(response if isinstance(response, AIMessage) else AIMessage(content=str(response))) | |
| return state | |
| def create_chatbot(self): | |
| """ | |
| Creates and returns a basic chatbot function that processes messages using the LLM. | |
| """ | |
| def chatbot(state: State) -> dict: | |
| try: | |
| if not state.get("messages"): | |
| logger.warning("No messages found in state") | |
| return {"messages": [AIMessage(content="No input received. How can I help you?")]} | |
| # Get the last message | |
| last_message = state["messages"][-1] | |
| # Process with LLM | |
| response = self.llm.invoke([ | |
| SystemMessage(content="You are a helpful AI assistant."), | |
| *state["messages"] | |
| ]) | |
| # Update state with response | |
| return {"messages": [*state["messages"], AIMessage(content=response.content)]} | |
| except Exception as e: | |
| logger.error(f"Error in chatbot processing: {e}") | |
| return {"messages": [AIMessage(content=f"I encountered an error: {str(e)}")]} | |
| return chatbot | |