from langchain_core.messages import BaseMessage from langchain_core.runnables import RunnableConfig from langgraph.func import entrypoint from core import get_model, settings @entrypoint() async def chatbot( inputs: dict[str, list[BaseMessage]], *, previous: dict[str, list[BaseMessage]], config: RunnableConfig, ): messages = inputs["messages"] if previous: messages = previous["messages"] + messages model = get_model(config["configurable"].get("model", settings.DEFAULT_MODEL)) response = await model.ainvoke(messages) return entrypoint.final( value={"messages": [response]}, save={"messages": messages + [response]} )