把取值的部分放到正确的位置

This commit is contained in:
Bakadax
2025-04-29 19:49:29 +08:00
parent a3c43353f3
commit 993b1f452d

View File

@@ -601,17 +601,8 @@ class EmojiManager:
返回:
list[str]: 可读的表情包信息字符串列表
"""
# 计算每个表情包的选择概率
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 = []
for i, emoji in enumerate(selected_emojis):
for i, emoji in enumerate(emoji_objects):
# 转换时间戳为可读时间
time_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(emoji.register_time))
# 构建每个表情包的信息字符串
@@ -634,9 +625,18 @@ class EmojiManager:
self._ensure_db()
# 获取所有表情包对象
sorted_emojis = sorted(self.emoji_objects, key=lambda emoji: emoji.usage_count)
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(sorted_emojis)
emoji_info_list = self._emoji_objects_to_readable_list(selected_emojis)
# 构建提示词
prompt = (
@@ -666,8 +666,8 @@ class EmojiManager:
emoji_index = int(match.group(1)) - 1 # 转换为0-based索引
# 检查索引是否有效
if 0 <= emoji_index < len(sorted_emojis):
emoji_to_delete = sorted_emojis[emoji_index]
if 0 <= emoji_index < len(selected_emojis):
emoji_to_delete = selected_emojis[emoji_index]
# 删除选定的表情包
logger.info(f"[决策] 决定删除表情包: {emoji_to_delete.description}")