Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
This commit is contained in:
@@ -444,10 +444,13 @@ class ChatManager:
|
|||||||
return stream
|
return stream
|
||||||
|
|
||||||
# 使用优化后的API查询(带缓存)
|
# 使用优化后的API查询(带缓存)
|
||||||
|
current_time = time.time()
|
||||||
model_instance, _ = await get_or_create_chat_stream(
|
model_instance, _ = await get_or_create_chat_stream(
|
||||||
stream_id=stream_id,
|
stream_id=stream_id,
|
||||||
platform=platform,
|
platform=platform,
|
||||||
defaults={
|
defaults={
|
||||||
|
"create_time": current_time,
|
||||||
|
"last_active_time": current_time,
|
||||||
"user_platform": user_info.platform if user_info else platform,
|
"user_platform": user_info.platform if user_info else platform,
|
||||||
"user_id": user_info.user_id if user_info else "",
|
"user_id": user_info.user_id if user_info else "",
|
||||||
"user_nickname": user_info.user_nickname if user_info else "",
|
"user_nickname": user_info.user_nickname if user_info else "",
|
||||||
|
|||||||
@@ -1468,18 +1468,15 @@ class DefaultReplyer:
|
|||||||
if now < start_time:
|
if now < start_time:
|
||||||
now += timedelta(days=1)
|
now += timedelta(days=1)
|
||||||
|
|
||||||
if start_time <= now < end_time:
|
duration_minutes = (now - start_time).total_seconds() / 60
|
||||||
duration_minutes = (now - start_time).total_seconds() / 60
|
remaining_minutes = (end_time - now).total_seconds() / 60
|
||||||
remaining_minutes = (end_time - now).total_seconds() / 60
|
schedule_block = (
|
||||||
schedule_block = (
|
|
||||||
f"你当前正在进行“{activity}”,"
|
f"你当前正在进行“{activity}”,"
|
||||||
f"计划时间从{start_time.strftime('%H:%M')}到{end_time.strftime('%H:%M')}。"
|
f"计划时间从{start_time.strftime('%H:%M')}到{end_time.strftime('%H:%M')}。"
|
||||||
f"这项活动已经开始了{duration_minutes:.0f}分钟,"
|
f"这项活动已经开始了{duration_minutes:.0f}分钟,"
|
||||||
f"预计还有{remaining_minutes:.0f}分钟结束。"
|
f"预计还有{remaining_minutes:.0f}分钟结束。"
|
||||||
"(此为你的当前状态,仅供参考。除非被直接询问,否则不要在对话中主动提及。)"
|
"(此为你的当前状态,仅供参考。除非被直接询问,否则不要在对话中主动提及。)"
|
||||||
)
|
)
|
||||||
else:
|
|
||||||
schedule_block = f"你当前正在进行“{activity}”。(此为你的当前状态,仅供参考。除非被直接询问,否则不要在对话中主动提及。)"
|
|
||||||
|
|
||||||
except (ValueError, AttributeError):
|
except (ValueError, AttributeError):
|
||||||
schedule_block = f"你当前正在进行“{activity}”。(此为你的当前状态,仅供参考。除非被直接询问,否则不要在对话中主动提及。)"
|
schedule_block = f"你当前正在进行“{activity}”。(此为你的当前状态,仅供参考。除非被直接询问,否则不要在对话中主动提及。)"
|
||||||
|
|||||||
@@ -350,10 +350,10 @@ def _default_normal_response_parser(
|
|||||||
api_response.tool_calls = []
|
api_response.tool_calls = []
|
||||||
for call in message_part.tool_calls:
|
for call in message_part.tool_calls:
|
||||||
try:
|
try:
|
||||||
arguments = orjson.loads(repair_json(call.function.arguments))
|
arguments = orjson.loads(repair_json(call.function.arguments)) # type: ignore
|
||||||
if not isinstance(arguments, dict):
|
if not isinstance(arguments, dict):
|
||||||
raise RespParseException(resp, "响应解析失败,工具调用参数无法解析为字典类型")
|
raise RespParseException(resp, "响应解析失败,工具调用参数无法解析为字典类型")
|
||||||
api_response.tool_calls.append(ToolCall(call.id, call.function.name, arguments))
|
api_response.tool_calls.append(ToolCall(call.id, call.function.name, arguments)) # type: ignore
|
||||||
except orjson.JSONDecodeError as e:
|
except orjson.JSONDecodeError as e:
|
||||||
raise RespParseException(resp, "响应解析失败,无法解析工具调用参数") from e
|
raise RespParseException(resp, "响应解析失败,无法解析工具调用参数") from e
|
||||||
|
|
||||||
|
|||||||
@@ -257,14 +257,20 @@ class RelationshipFetcher:
|
|||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
from src.common.database.api.specialized import get_or_create_chat_stream
|
from src.common.database.api.specialized import get_or_create_chat_stream
|
||||||
|
import time
|
||||||
|
|
||||||
# 使用优化后的API(带缓存)
|
# 使用优化后的API(带缓存)
|
||||||
# 从stream_id解析platform,或使用默认值
|
# 从stream_id解析platform,或使用默认值
|
||||||
platform = stream_id.split("_")[0] if "_" in stream_id else "unknown"
|
platform = stream_id.split("_")[0] if "_" in stream_id else "unknown"
|
||||||
|
current_time = time.time()
|
||||||
|
|
||||||
stream, _ = await get_or_create_chat_stream(
|
stream, _ = await get_or_create_chat_stream(
|
||||||
stream_id=stream_id,
|
stream_id=stream_id,
|
||||||
platform=platform,
|
platform=platform,
|
||||||
|
defaults={
|
||||||
|
"create_time": current_time,
|
||||||
|
"last_active_time": current_time,
|
||||||
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
if not stream:
|
if not stream:
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ class BaseTool(ABC):
|
|||||||
if not cls.is_two_step_tool:
|
if not cls.is_two_step_tool:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
definitions: ClassVar = []
|
definitions = []
|
||||||
for sub_name, sub_desc, sub_params in cls.sub_tools:
|
for sub_name, sub_desc, sub_params in cls.sub_tools:
|
||||||
definitions.append({"name": f"{cls.name}_{sub_name}", "description": sub_desc, "parameters": sub_params})
|
definitions.append({"name": f"{cls.name}_{sub_name}", "description": sub_desc, "parameters": sub_params})
|
||||||
return definitions
|
return definitions
|
||||||
|
|||||||
Reference in New Issue
Block a user