30 lines
894 B
Python
30 lines
894 B
Python
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
|