Spaces:
Sleeping
Sleeping
| from langgraph.graph import StateGraph, START, END | |
| from langgraph.graph.state import CompiledStateGraph | |
| from langchain_core.messages import ToolMessage | |
| from langgraph.checkpoint.memory import InMemorySaver | |
| from .func import collection_info_agent, create_prompt, save_prompt, State | |
| checkpointer = InMemorySaver() | |
| class CustomChatBot: | |
| def __init__(self): | |
| self.builder = StateGraph(State) | |
| def is_enough_information(state: State): | |
| messages = state["messages"] | |
| for message in messages: | |
| if isinstance(message, ToolMessage): | |
| return "create_prompt" | |
| return "END" | |
| def node(self): | |
| self.builder.add_node("collection_info_agent", collection_info_agent) | |
| self.builder.add_node("create_prompt", create_prompt) | |
| self.builder.add_node("save_prompt", save_prompt) | |
| def edge(self): | |
| self.builder.add_edge(START, "collection_info_agent") | |
| self.builder.add_conditional_edges( | |
| "collection_info_agent", | |
| self.is_enough_information, | |
| {"create_prompt": "create_prompt", "END": END}, | |
| ) | |
| self.builder.add_edge("create_prompt", "save_prompt") | |
| self.builder.add_edge("save_prompt", END) | |
| def __call__(self) -> CompiledStateGraph: | |
| self.node() | |
| self.edge() | |
| return self.builder.compile(checkpointer) | |
| custom_chatbot = CustomChatBot()() | |