remove:移除tool_use模型,修复Jargon提取问题,修改统计为tool统计
This commit is contained in:
@@ -11,7 +11,7 @@ from sqlmodel import SQLModel
|
||||
|
||||
from src.chat.message_receive.chat_manager import BotChatSession
|
||||
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
|
||||
from src.common.logger import get_logger
|
||||
|
||||
logger = get_logger("database_service")
|
||||
@@ -157,6 +157,39 @@ async def db_count(model_class: type[SQLModel], filters: Optional[dict[str, Any]
|
||||
return 0
|
||||
|
||||
|
||||
async def store_tool_info(
|
||||
chat_stream: BotChatSession,
|
||||
builtin_prompt: Optional[str] = None,
|
||||
display_prompt: str = "",
|
||||
tool_id: str = "",
|
||||
tool_data: Optional[dict[str, Any]] = None,
|
||||
tool_name: str = "",
|
||||
tool_reasoning: str = "",
|
||||
) -> Optional[dict[str, Any]]:
|
||||
try:
|
||||
record_data = {
|
||||
"tool_id": tool_id or str(int(time.time() * 1000000)),
|
||||
"timestamp": datetime.now(),
|
||||
"session_id": chat_stream.session_id,
|
||||
"tool_name": tool_name,
|
||||
"tool_data": json.dumps(tool_data or {}, ensure_ascii=False),
|
||||
"tool_reasoning": tool_reasoning,
|
||||
"tool_builtin_prompt": builtin_prompt,
|
||||
"tool_display_prompt": display_prompt,
|
||||
}
|
||||
|
||||
saved_record = await db_save(ToolRecord, data=record_data, key_field="tool_id", key_value=record_data["tool_id"])
|
||||
if saved_record:
|
||||
logger.debug(f"[DatabaseService] 成功存储工具信息: {tool_name} (ID: {record_data['tool_id']})")
|
||||
else:
|
||||
logger.error(f"[DatabaseService] 存储工具信息失败: {tool_name}")
|
||||
return saved_record
|
||||
except Exception as e:
|
||||
logger.error(f"[DatabaseService] 存储工具信息时发生错误: {e}")
|
||||
traceback.print_exc()
|
||||
return None
|
||||
|
||||
|
||||
async def store_action_info(
|
||||
chat_stream: BotChatSession,
|
||||
builtin_prompt: Optional[str] = None,
|
||||
@@ -166,27 +199,13 @@ async def store_action_info(
|
||||
action_name: str = "",
|
||||
action_reasoning: str = "",
|
||||
) -> Optional[dict[str, Any]]:
|
||||
try:
|
||||
record_data = {
|
||||
"action_id": thinking_id or str(int(time.time() * 1000000)),
|
||||
"timestamp": datetime.now(),
|
||||
"session_id": chat_stream.session_id,
|
||||
"action_name": action_name,
|
||||
"action_data": json.dumps(action_data or {}, ensure_ascii=False),
|
||||
"action_reasoning": action_reasoning,
|
||||
"action_builtin_prompt": builtin_prompt,
|
||||
"action_display_prompt": display_prompt,
|
||||
}
|
||||
|
||||
saved_record = await db_save(
|
||||
ActionRecord, data=record_data, key_field="action_id", key_value=record_data["action_id"]
|
||||
)
|
||||
if saved_record:
|
||||
logger.debug(f"[DatabaseService] 成功存储动作信息: {action_name} (ID: {record_data['action_id']})")
|
||||
else:
|
||||
logger.error(f"[DatabaseService] 存储动作信息失败: {action_name}")
|
||||
return saved_record
|
||||
except Exception as e:
|
||||
logger.error(f"[DatabaseService] 存储动作信息时发生错误: {e}")
|
||||
traceback.print_exc()
|
||||
return None
|
||||
"""兼容旧接口,内部转发到 ``store_tool_info``。"""
|
||||
return await store_tool_info(
|
||||
chat_stream=chat_stream,
|
||||
builtin_prompt=builtin_prompt,
|
||||
display_prompt=display_prompt,
|
||||
tool_id=thinking_id,
|
||||
tool_data=action_data,
|
||||
tool_name=action_name,
|
||||
tool_reasoning=action_reasoning,
|
||||
)
|
||||
|
||||
@@ -7,9 +7,9 @@ from typing import List, Optional, Tuple
|
||||
from sqlmodel import col, select
|
||||
|
||||
from src.chat.message_receive.message import SessionMessage
|
||||
from src.common.data_models.action_record_data_model import MaiActionRecord
|
||||
from src.common.data_models.tool_record_data_model import MaiToolRecord
|
||||
from src.common.database.database import get_db_session
|
||||
from src.common.database.database_model import ActionRecord, Images, ImageType
|
||||
from src.common.database.database_model import Images, ImageType, ToolRecord
|
||||
from src.common.message_repository import count_messages, find_messages
|
||||
from src.common.utils.math_utils import translate_timestamp_to_human_readable
|
||||
from src.common.utils.utils_action import ActionUtils
|
||||
@@ -238,18 +238,18 @@ def get_actions_by_timestamp_with_chat(
|
||||
timestamp_start: float,
|
||||
timestamp_end: float,
|
||||
limit: Optional[int] = None,
|
||||
) -> List[MaiActionRecord]:
|
||||
) -> List[MaiToolRecord]:
|
||||
with get_db_session() as session:
|
||||
statement = (
|
||||
select(ActionRecord)
|
||||
.where(col(ActionRecord.session_id) == chat_id)
|
||||
.where(col(ActionRecord.timestamp) >= datetime.fromtimestamp(timestamp_start))
|
||||
.where(col(ActionRecord.timestamp) <= datetime.fromtimestamp(timestamp_end))
|
||||
.order_by(col(ActionRecord.timestamp))
|
||||
select(ToolRecord)
|
||||
.where(col(ToolRecord.session_id) == chat_id)
|
||||
.where(col(ToolRecord.timestamp) >= datetime.fromtimestamp(timestamp_start))
|
||||
.where(col(ToolRecord.timestamp) <= datetime.fromtimestamp(timestamp_end))
|
||||
.order_by(col(ToolRecord.timestamp))
|
||||
)
|
||||
if limit is not None:
|
||||
statement = statement.limit(limit)
|
||||
return [MaiActionRecord.from_db_instance(item) for item in session.exec(statement).all()]
|
||||
return [MaiToolRecord.from_db_instance(item) for item in session.exec(statement).all()]
|
||||
|
||||
|
||||
def replace_user_references(text: str, platform: str, replace_bot_name: bool = False) -> str:
|
||||
|
||||
Reference in New Issue
Block a user