Spaces:
Runtime error
Runtime error
| import chainlit as cl | |
| from langchain_core.messages import HumanMessage, SystemMessage | |
| from graph import graph | |
| # System message focused on design analysis | |
| SYSTEM_MESSAGE = """You are a helpful design assistant that finds and explains design examples. | |
| For every user message, analyze their design preferences and requirements, considering: | |
| 1. Visual style and aesthetics | |
| 2. Color preferences and mood | |
| 3. Layout and structural needs | |
| 4. Key visual elements | |
| 5. Intended audience and user experience | |
| """ | |
| async def init(): | |
| # Store the graph in the user session | |
| cl.user_session.set("graph", graph) | |
| # Initialize conversation state with system message | |
| initial_state = { | |
| "messages": [SystemMessage(content=SYSTEM_MESSAGE)] | |
| } | |
| cl.user_session.set("state", initial_state) | |
| # Send welcome message | |
| await cl.Message(content="Welcome to ImagineUI! I'm here to help you design beautiful and functional user interfaces. What kind of design are you looking for?").send() | |
| async def main(message: cl.Message): | |
| # Get the graph from the user session | |
| graph = cl.user_session.get("graph") | |
| # Get current state | |
| state = cl.user_session.get("state") | |
| # Add the new user message to the state | |
| state["messages"].append(HumanMessage(content=message.content)) | |
| # Process message through the graph | |
| result = await graph.ainvoke(state) | |
| print("Here's the result: ", result) | |
| # Update state with the result | |
| state["messages"].extend(result["messages"]) | |
| # Extract the last assistant message for display | |
| last_message = result["messages"][-1].content | |
| # Send response to user | |
| await cl.Message(content=last_message).send() | |
| if __name__ == "__main__": | |
| cl.run() |