feat(expression): 添加表达方式管理API,包括查询、创建、更新和删除功能

This commit is contained in:
minecraft1024a
2025-12-13 11:39:20 +08:00
parent 179b5b7222
commit 7d8ce8b246
4 changed files with 1071 additions and 3 deletions

View File

@@ -12,6 +12,7 @@ from src.plugin_system.apis import (
config_api,
database_api,
emoji_api,
expression_api,
generator_api,
llm_api,
message_api,
@@ -38,6 +39,7 @@ __all__ = [
"context_api",
"database_api",
"emoji_api",
"expression_api",
"generator_api",
"get_logger",
"llm_api",

File diff suppressed because it is too large Load Diff

View File

@@ -116,8 +116,24 @@ async def get_person_points(person_id: str, limit: int = 5) -> list[tuple]:
if not points:
return []
# 验证 points 是列表类型
if not isinstance(points, list):
logger.warning(f"[PersonAPI] 用户记忆点数据类型错误: person_id={person_id}, type={type(points)}, value={points}")
return []
# 过滤掉格式不正确的记忆点 (应该是包含至少3个元素的元组或列表)
valid_points = []
for point in points:
if isinstance(point, list | tuple) and len(point) >= 3:
valid_points.append(point)
else:
logger.warning(f"[PersonAPI] 跳过格式错误的记忆点: person_id={person_id}, point={point}")
if not valid_points:
return []
# 按权重和时间排序,返回最重要的几个点
sorted_points = sorted(points, key=lambda x: (x[1], x[2]), reverse=True)
sorted_points = sorted(valid_points, key=lambda x: (x[1], x[2]), reverse=True)
return sorted_points[:limit]
except Exception as e:
logger.error(f"[PersonAPI] 获取用户记忆点失败: person_id={person_id}, error={e}")