Merge branch 'dev' of https://github.com/MaiM-with-u/MaiBot into dev
This commit is contained in:
@@ -625,10 +625,20 @@ class EmojiManager:
|
||||
self._ensure_db()
|
||||
|
||||
# 获取所有表情包对象
|
||||
all_emojis = self.emoji_objects
|
||||
emoji_objects = self.emoji_objects
|
||||
# 计算每个表情包的选择概率
|
||||
probabilities = [1 / (emoji.usage_count + 1) for emoji in emoji_objects]
|
||||
# 归一化概率,确保总和为1
|
||||
total_probability = sum(probabilities)
|
||||
normalized_probabilities = [p / total_probability for p in probabilities]
|
||||
|
||||
# 使用概率分布选择最多20个表情包
|
||||
selected_emojis = random.choices(
|
||||
emoji_objects, weights=normalized_probabilities, k=min(20, len(emoji_objects))
|
||||
)
|
||||
|
||||
# 将表情包信息转换为可读的字符串
|
||||
emoji_info_list = self._emoji_objects_to_readable_list(all_emojis)
|
||||
emoji_info_list = self._emoji_objects_to_readable_list(selected_emojis)
|
||||
|
||||
# 构建提示词
|
||||
prompt = (
|
||||
@@ -658,8 +668,8 @@ class EmojiManager:
|
||||
emoji_index = int(match.group(1)) - 1 # 转换为0-based索引
|
||||
|
||||
# 检查索引是否有效
|
||||
if 0 <= emoji_index < len(all_emojis):
|
||||
emoji_to_delete = all_emojis[emoji_index]
|
||||
if 0 <= emoji_index < len(selected_emojis):
|
||||
emoji_to_delete = selected_emojis[emoji_index]
|
||||
|
||||
# 删除选定的表情包
|
||||
logger.info(f"[决策] 决定删除表情包: {emoji_to_delete.description}")
|
||||
@@ -779,6 +789,7 @@ class EmojiManager:
|
||||
if not replaced:
|
||||
logger.error("[错误] 替换表情包失败,无法完成注册")
|
||||
return False
|
||||
return True
|
||||
else:
|
||||
# 修复:等待异步注册完成
|
||||
register_success = await new_emoji.register_to_db()
|
||||
|
||||
Reference in New Issue
Block a user