fix:彻底修复表情包打字时间炸裂
This commit is contained in:
@@ -64,8 +64,14 @@ class Message_Sender:
|
|||||||
logger.warning(f"消息“{message.processed_plain_text}”已被撤回,不发送")
|
logger.warning(f"消息“{message.processed_plain_text}”已被撤回,不发送")
|
||||||
break
|
break
|
||||||
if not is_recalled:
|
if not is_recalled:
|
||||||
typing_time = calculate_typing_time(message.processed_plain_text,message.is_emoji)
|
# print(message.processed_plain_text + str(message.is_emoji))
|
||||||
|
typing_time = calculate_typing_time(
|
||||||
|
input_string=message.processed_plain_text,
|
||||||
|
thinking_start_time=message.thinking_start_time,
|
||||||
|
is_emoji=message.is_emoji)
|
||||||
|
logger.debug(f"{message.processed_plain_text},{typing_time},计算输入时间结束")
|
||||||
await asyncio.sleep(typing_time)
|
await asyncio.sleep(typing_time)
|
||||||
|
logger.debug(f"{message.processed_plain_text},{typing_time},等待输入时间结束")
|
||||||
|
|
||||||
message_json = message.to_dict()
|
message_json = message.to_dict()
|
||||||
|
|
||||||
@@ -220,6 +226,8 @@ class MessageManager:
|
|||||||
|
|
||||||
await message_earliest.process()
|
await message_earliest.process()
|
||||||
|
|
||||||
|
# print(f"message_earliest.thinking_start_tim22222e:{message_earliest.thinking_start_time}")
|
||||||
|
|
||||||
await message_sender.send_message(message_earliest)
|
await message_sender.send_message(message_earliest)
|
||||||
|
|
||||||
await self.storage.store_message(message_earliest, message_earliest.chat_stream)
|
await self.storage.store_message(message_earliest, message_earliest.chat_stream)
|
||||||
|
|||||||
@@ -334,7 +334,7 @@ def process_llm_response(text: str) -> List[str]:
|
|||||||
return sentences
|
return sentences
|
||||||
|
|
||||||
|
|
||||||
def calculate_typing_time(input_string: str, chinese_time: float = 0.2, english_time: float = 0.1, is_emoji: bool = False) -> float:
|
def calculate_typing_time(input_string: str, thinking_start_time: float, chinese_time: float = 0.2, english_time: float = 0.1, is_emoji: bool = False) -> float:
|
||||||
"""
|
"""
|
||||||
计算输入字符串所需的时间,中文和英文字符有不同的输入时间
|
计算输入字符串所需的时间,中文和英文字符有不同的输入时间
|
||||||
input_string (str): 输入的字符串
|
input_string (str): 输入的字符串
|
||||||
@@ -347,15 +347,6 @@ def calculate_typing_time(input_string: str, chinese_time: float = 0.2, english_
|
|||||||
- 在所有输入结束后,额外加上回车时间0.3秒
|
- 在所有输入结束后,额外加上回车时间0.3秒
|
||||||
- 如果is_emoji为True,将使用固定1秒的输入时间
|
- 如果is_emoji为True,将使用固定1秒的输入时间
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# 如果输入是列表,将其连接成字符串
|
|
||||||
if isinstance(input_string, list):
|
|
||||||
input_string = ''.join(input_string)
|
|
||||||
|
|
||||||
# 确保现在是字符串类型
|
|
||||||
if not isinstance(input_string, str):
|
|
||||||
input_string = str(input_string)
|
|
||||||
|
|
||||||
mood_manager = MoodManager.get_instance()
|
mood_manager = MoodManager.get_instance()
|
||||||
# 将0-1的唤醒度映射到-1到1
|
# 将0-1的唤醒度映射到-1到1
|
||||||
mood_arousal = mood_manager.current_mood.arousal
|
mood_arousal = mood_manager.current_mood.arousal
|
||||||
@@ -378,10 +369,19 @@ def calculate_typing_time(input_string: str, chinese_time: float = 0.2, english_
|
|||||||
else: # 其他字符(如英文)
|
else: # 其他字符(如英文)
|
||||||
total_time += english_time
|
total_time += english_time
|
||||||
|
|
||||||
if is_emoji:
|
|
||||||
total_time = 0.7
|
|
||||||
|
|
||||||
return total_time + 0.3 # 加上回车时间
|
if is_emoji:
|
||||||
|
total_time = 1
|
||||||
|
|
||||||
|
if time.time() - thinking_start_time > 10:
|
||||||
|
total_time = 1
|
||||||
|
|
||||||
|
# print(f"thinking_start_time:{thinking_start_time}")
|
||||||
|
# print(f"nowtime:{time.time()}")
|
||||||
|
# print(f"nowtime - thinking_start_time:{time.time() - thinking_start_time}")
|
||||||
|
# print(f"{total_time}")
|
||||||
|
|
||||||
|
return total_time # 加上回车时间
|
||||||
|
|
||||||
|
|
||||||
def cosine_similarity(v1, v2):
|
def cosine_similarity(v1, v2):
|
||||||
|
|||||||
@@ -95,6 +95,8 @@ class ThinkFlowChat:
|
|||||||
)
|
)
|
||||||
if not mark_head:
|
if not mark_head:
|
||||||
mark_head = True
|
mark_head = True
|
||||||
|
|
||||||
|
# print(f"thinking_start_time:{bot_message.thinking_start_time}")
|
||||||
message_set.add_message(bot_message)
|
message_set.add_message(bot_message)
|
||||||
message_manager.add_message(message_set)
|
message_manager.add_message(message_set)
|
||||||
|
|
||||||
@@ -272,11 +274,11 @@ class ThinkFlowChat:
|
|||||||
timer2 = time.time()
|
timer2 = time.time()
|
||||||
timing_results["发送消息"] = timer2 - timer1
|
timing_results["发送消息"] = timer2 - timer1
|
||||||
|
|
||||||
# 处理表情包
|
# 发送表情包
|
||||||
timer1 = time.time()
|
timer1 = time.time()
|
||||||
await self._handle_emoji(message, chat, response_set)
|
await self._handle_emoji(message, chat, response_set)
|
||||||
timer2 = time.time()
|
timer2 = time.time()
|
||||||
timing_results["处理表情包"] = timer2 - timer1
|
timing_results["发送表情包"] = timer2 - timer1
|
||||||
|
|
||||||
# 更新心流
|
# 更新心流
|
||||||
timer1 = time.time()
|
timer1 = time.time()
|
||||||
|
|||||||
Reference in New Issue
Block a user