From a674e313b99162f9732ab57f21f087f9dc114d49 Mon Sep 17 00:00:00 2001 From: goulustis Date: Sat, 22 Nov 2025 20:00:56 +0800 Subject: [PATCH] add timer to sleep --- lang_agent/graphs/tool_nodes.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lang_agent/graphs/tool_nodes.py b/lang_agent/graphs/tool_nodes.py index 4ce047b..c011cda 100644 --- a/lang_agent/graphs/tool_nodes.py +++ b/lang_agent/graphs/tool_nodes.py @@ -2,13 +2,13 @@ from dataclasses import dataclass, field, is_dataclass from typing import Type, TypedDict, Literal, Dict, List, Tuple import tyro import os.path as osp - +import time from lang_agent.config import InstantiateConfig, KeyConfig from lang_agent.tool_manager import ToolManager from lang_agent.base import ToolNodeBase from lang_agent.graphs.graph_states import State, ChattyToolState -from lang_agent.utils import make_llm +from lang_agent.utils import make_llm, words_only from langchain_core.messages import SystemMessage, HumanMessage, AIMessage from langchain.agents import create_agent @@ -139,7 +139,7 @@ class ChattyToolNode(ToolNodeBase): def _chat_node_call(self, state:ChattyToolState): - outs = [] + outs:List[BaseMessage] = [] while not self.tool_done: inp = {"messages":[ @@ -149,6 +149,11 @@ class ChattyToolNode(ToolNodeBase): *state["inp"][0]["messages"][1:] ]}, state["inp"][1] outs.extend(self.chatty_agent.invoke(*inp)["messages"]) + + # NOTE: words generate faster than speech + content = words_only(outs[-1].content) + time.sleep(len(content) * 0.22) # 0.22 = sec/words + return {"chatty_messages": {"messages":outs}}