from typing import Iterator from langchain_core.messages import HumanMessage from langchain_core.runnables import RunnableConfig from lc.chef_agent import chef_agent class ChefService: @staticmethod def chat( thread_id: str, message: str, ): config: RunnableConfig = {"configurable": {"thread_id": thread_id}} result = chef_agent.agent.invoke({"messages": [HumanMessage(content=message)]}, config) return result @staticmethod def chat_stream(thread_id: str, message: str) -> Iterator[str]: config: RunnableConfig = {"configurable": {"thread_id": thread_id}} result = chef_agent.agent.stream({"messages": [("user", message)]}, config=config, stream_mode="messages") for message_chunk, metadata in result: content = message_chunk.content if content: yield content