remove:移除tool_use模型,修复Jargon提取问题,修改统计为tool统计

This commit is contained in:
SengokuCola
2026-03-29 16:26:34 +08:00
parent 868438e3c1
commit 82bbf0fd52
25 changed files with 906 additions and 311 deletions

View File

@@ -3,12 +3,12 @@ from typing import TYPE_CHECKING, List
from src.common.utils.math_utils import translate_timestamp_to_human_readable, TimestampMode
if TYPE_CHECKING:
from src.common.data_models.action_record_data_model import MaiActionRecord
from src.common.data_models.tool_record_data_model import MaiToolRecord
class ActionUtils:
@staticmethod
def build_readable_action_records(action_records: List["MaiActionRecord"], timestamp_mode: str | TimestampMode):
def build_readable_action_records(action_records: List["MaiToolRecord"], timestamp_mode: str | TimestampMode):
"""
将动作列表转换为可读的文本格式。
@@ -27,6 +27,6 @@ class ActionUtils:
output_lines = []
for record in action_records:
timestamp_str = translate_timestamp_to_human_readable(record.timestamp.timestamp(), mode=timestamp_mode)
line = f"{timestamp_str},你使用了{record.action_name},具体内容是:{record.action_display_prompt}"
line = f"{timestamp_str},你使用了{record.tool_name},具体内容是:{record.tool_display_prompt}"
output_lines.append(line)
return "\n".join(output_lines)

View File

@@ -579,26 +579,26 @@ class MessageUtils:
List[Tuple[float, str]]: 按时间排序的动作文本列表,每个元素为 (timestamp, action_text)
"""
from src.common.database.database import get_db_session
from src.common.database.database_model import ActionRecord
from src.common.database.database_model import ToolRecord
# 获取这个时间范围内的动作记录并匹配session_id
try:
with get_db_session() as session:
actions_in_range = session.exec(
select(ActionRecord)
.where(col(ActionRecord.timestamp) >= datetime.fromtimestamp(min_time))
.where(col(ActionRecord.timestamp) <= datetime.fromtimestamp(max_time))
.where(col(ActionRecord.session_id) == session_id)
.order_by(col(ActionRecord.timestamp))
select(ToolRecord)
.where(col(ToolRecord.timestamp) >= datetime.fromtimestamp(min_time))
.where(col(ToolRecord.timestamp) <= datetime.fromtimestamp(max_time))
.where(col(ToolRecord.session_id) == session_id)
.order_by(col(ToolRecord.timestamp))
).all()
# 获取最新消息之后的第一个动作记录
with get_db_session() as session:
action_after_latest = session.exec(
select(ActionRecord)
.where(col(ActionRecord.timestamp) > datetime.fromtimestamp(max_time))
.where(col(ActionRecord.session_id) == session_id)
.order_by(col(ActionRecord.timestamp))
select(ToolRecord)
.where(col(ToolRecord.timestamp) > datetime.fromtimestamp(max_time))
.where(col(ToolRecord.session_id) == session_id)
.order_by(col(ToolRecord.timestamp))
.limit(1)
).all()
except Exception as e:
@@ -611,7 +611,7 @@ class MessageUtils:
# 构建动作文本列表
action_messages: List[Tuple[float, str]] = []
for action in actions:
if action_display_prompt := action.action_display_prompt or "":
if action_display_prompt := action.tool_display_prompt or "":
action_time = action.timestamp.timestamp()
action_messages.append((action_time, action_display_prompt))