From 7d19a6728f80b353f830049f13e94e23cc76a416 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Wed, 30 Apr 2025 17:50:20 +0800 Subject: [PATCH] =?UTF-8?q?update=EF=BC=9A=E5=8F=91=E5=B8=830.6.3=E5=89=8D?= =?UTF-8?q?=E7=9A=84=E5=87=86=E5=A4=87=E5=B7=A5=E4=BD=9C=EF=BC=8Cchanglog?= =?UTF-8?q?=EF=BC=8Creadme=EF=BC=8C=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 31 +++----- src/api/config_api.py | 2 +- src/config/config.py | 6 +- .../tool_can_use/lpmm_get_knowledge.py | 2 +- src/heart_flow/0.6Bing.md | 12 ++- .../heartFC_chat/normal_chat_generator.py | 2 +- src/plugins/memory_system/Hippocampus.py | 6 +- src/plugins/memory_system/memory_config.py | 6 +- template/bot_config_template.toml | 74 ++++++++----------- (临时版)聊天兴趣监控.bat.bat | 26 +++++++ ...(测试版)麦麦生成人格 copy.bat | 0 11 files changed, 90 insertions(+), 77 deletions(-) create mode 100644 (临时版)聊天兴趣监控.bat.bat rename (测试版)麦麦生成人格.bat => (测试版)麦麦生成人格 copy.bat (100%) diff --git a/README.md b/README.md index 820d7d62..58cb82c7 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ ### 📢 版本信息 -**最新版本: v0.6.2** ([查看更新日志](changelogs/changelog.md)) +**最新版本: v0.6.3** ([查看更新日志](changelogs/changelog.md)) > [!WARNING] > 请阅读教程后更新!!!!!!! > 请阅读教程后更新!!!!!!! @@ -110,19 +110,20 @@ - [🚀 最新版本部署教程](https://docs.mai-mai.org/manual/deployment/mmc_deploy_windows.html) - 基于MaiCore的新版本部署方式(与旧版本不兼容) -## 🎯 功能介绍 +## 🎯 0.6.3 功能介绍 | 模块 | 主要功能 | 特点 | |----------|------------------------------------------------------------------|-------| -| 💬 聊天系统 | • 心流/推理聊天
• 关键词主动发言
• 多模型支持
• 动态prompt构建
• 私聊功能(PFC) | 拟人化交互 | -| 🧠 心流系统 | • 实时思考生成
• 自动启停机制
• 日程系统联动
• 工具调用能力 | 智能化决策 | -| 🧠 记忆系统 | • 优化记忆抽取
• 海马体记忆机制
• 聊天记录概括 | 持久化记忆 | -| 😊 表情系统 | • 情绪匹配发送
• GIF支持
• 自动收集与审查 | 丰富表达 | +| 💬 聊天系统 | • **统一调控不同回复逻辑**
• 智能交互模式 (普通聊天/专注聊天)
• 关键词主动发言
• 多模型支持
• 动态prompt构建
• 私聊功能(PFC)增强 | 拟人化交互 | +| 🧠 心流系统 | • 实时思考生成
• **智能状态管理**
• **概率回复机制**
• 自动启停机制
• 日程系统联动
• **上下文感知工具调用** | 智能化决策 | +| 🧠 记忆系统 | • **记忆整合与提取**
• 海马体记忆机制
• 聊天记录概括 | 持久化记忆 | +| 😊 表情系统 | • **全新表情包系统**
• **优化选择逻辑**
• 情绪匹配发送
• GIF支持
• 自动收集与审查 | 丰富表达 | | 📅 日程系统 | • 动态日程生成
• 自定义想象力
• 思维流联动 | 智能规划 | -| 👥 关系系统 | • 关系管理优化
• 丰富接口支持
• 个性化交互 | 深度社交 | +| 👥 关系系统 | • **工具调用动态更新**
• 关系管理优化
• 丰富接口支持
• 个性化交互 | 深度社交 | | 📊 统计系统 | • 使用数据统计
• LLM调用记录
• 实时控制台显示 | 数据可视 | -| 🔧 系统功能 | • 优雅关闭机制
• 自动数据保存
• 异常处理完善 | 稳定可靠 | -| 🛠️ 工具系统 | • 知识获取工具
• 自动注册机制
• 多工具支持 | 扩展功能 | +| 🛠️ 工具系统 | • **LPMM知识库集成**
• **上下文感知调用**
• 知识获取工具
• 自动注册机制
• 多工具支持 | 扩展功能 | +| 📚 **知识库(LPMM)** | • **全新LPMM系统**
• **强大的信息检索能力** | 知识增强 | +| ✨ **昵称系统** | • **自动为群友取昵称**
• **降低认错人概率** (早期阶段) | 身份识别 | ## 📐 项目架构 @@ -142,18 +143,6 @@ graph TD E --> M[情绪识别] ``` - -## 开发计划TODO:LIST - -- 人格功能:WIP -- 对特定对象的侧写功能 -- 图片发送,转发功能:WIP -- 幽默和meme功能:WIP -- 兼容gif的解析和保存 -- 小程序转发链接解析 -- 修复已知bug -- 自动生成的回复逻辑,例如自生成的回复方向,回复风格 - ## ✍️如何给本项目报告BUG/提交建议/做贡献 MaiCore是一个开源项目,我们非常欢迎你的参与。你的贡献,无论是提交bug报告、功能需求还是代码pr,都对项目非常宝贵。我们非常感谢你的支持!🎉 但无序的讨论会降低沟通效率,进而影响问题的解决速度,因此在提交任何贡献前,请务必先阅读本项目的[贡献指南](depends-data/CONTRIBUTE.md)(待补完) diff --git a/src/api/config_api.py b/src/api/config_api.py index fbc31433..025888d8 100644 --- a/src/api/config_api.py +++ b/src/api/config_api.py @@ -132,7 +132,7 @@ class BotConfig: # llm_reasoning_minor: Dict[str, str] llm_normal: Dict[str, str] # LLM普通 llm_topic_judge: Dict[str, str] # LLM话题判断 - llm_summary_by_topic: Dict[str, str] # LLM话题总结 + llm_summary: Dict[str, str] # LLM话题总结 llm_emotion_judge: Dict[str, str] # LLM情感判断 embedding: Dict[str, str] # 嵌入 vlm: Dict[str, str] # VLM diff --git a/src/config/config.py b/src/config/config.py index f7e57542..388ee55b 100644 --- a/src/config/config.py +++ b/src/config/config.py @@ -279,8 +279,7 @@ class BotConfig: # llm_reasoning_minor: Dict[str, str] = field(default_factory=lambda: {}) llm_normal: Dict[str, str] = field(default_factory=lambda: {}) llm_topic_judge: Dict[str, str] = field(default_factory=lambda: {}) - llm_summary_by_topic: Dict[str, str] = field(default_factory=lambda: {}) - llm_emotion_judge: Dict[str, str] = field(default_factory=lambda: {}) + llm_summary: Dict[str, str] = field(default_factory=lambda: {}) embedding: Dict[str, str] = field(default_factory=lambda: {}) vlm: Dict[str, str] = field(default_factory=lambda: {}) moderation: Dict[str, str] = field(default_factory=lambda: {}) @@ -481,8 +480,7 @@ class BotConfig: # "llm_reasoning_minor", "llm_normal", "llm_topic_judge", - "llm_summary_by_topic", - "llm_emotion_judge", + "llm_summary", "vlm", "embedding", "llm_tool_use", diff --git a/src/do_tool/tool_can_use/lpmm_get_knowledge.py b/src/do_tool/tool_can_use/lpmm_get_knowledge.py index 7aab8495..4dba1bc7 100644 --- a/src/do_tool/tool_can_use/lpmm_get_knowledge.py +++ b/src/do_tool/tool_can_use/lpmm_get_knowledge.py @@ -14,7 +14,7 @@ class SearchKnowledgeFromLPMMTool(BaseTool): """从LPMM知识库中搜索相关信息的工具""" name = "lpmm_search_knowledge" - description = "从知识库中搜索相关信息" + description = "从知识库中搜索相关信息,如果你需要知识,就使用这个工具" parameters = { "type": "object", "properties": { diff --git a/src/heart_flow/0.6Bing.md b/src/heart_flow/0.6Bing.md index 6af057e2..de5628e7 100644 --- a/src/heart_flow/0.6Bing.md +++ b/src/heart_flow/0.6Bing.md @@ -81,4 +81,14 @@ - **基于人格生成预设知识:** - 开发利用 LLM 和人格配置生成背景知识的功能。 - 这些知识应符合角色的行为风格和可能的经历。 - - 作为一种"冷启动"或丰富角色深度的方式。 \ No newline at end of file + - 作为一种"冷启动"或丰富角色深度的方式。 + + +## 开发计划TODO:LIST + +- 人格功能:WIP +- 对特定对象的侧写功能 +- 图片发送,转发功能:WIP +- 幽默和meme功能:WIP +- 小程序转发链接解析 +- 自动生成的回复逻辑,例如自生成的回复方向,回复风格 \ No newline at end of file diff --git a/src/plugins/heartFC_chat/normal_chat_generator.py b/src/plugins/heartFC_chat/normal_chat_generator.py index 0ad9707f..02baf94d 100644 --- a/src/plugins/heartFC_chat/normal_chat_generator.py +++ b/src/plugins/heartFC_chat/normal_chat_generator.py @@ -29,7 +29,7 @@ class NormalChatGenerator: ) self.model_sum = LLMRequest( - model=global_config.llm_summary_by_topic, temperature=0.7, max_tokens=3000, request_type="relation" + model=global_config.llm_summary, temperature=0.7, max_tokens=3000, request_type="relation" ) self.current_model_type = "r1" # 默认使用 R1 self.current_model_name = "unknown model" diff --git a/src/plugins/memory_system/Hippocampus.py b/src/plugins/memory_system/Hippocampus.py index e5aa096f..7a5fc1a8 100644 --- a/src/plugins/memory_system/Hippocampus.py +++ b/src/plugins/memory_system/Hippocampus.py @@ -189,7 +189,7 @@ class Hippocampus: def __init__(self): self.memory_graph = MemoryGraph() self.llm_topic_judge = None - self.llm_summary_by_topic = None + self.llm_summary = None self.entorhinal_cortex = None self.parahippocampal_gyrus = None self.config = None @@ -203,7 +203,7 @@ class Hippocampus: # 从数据库加载记忆图 self.entorhinal_cortex.sync_memory_from_db() self.llm_topic_judge = LLMRequest(self.config.llm_topic_judge, request_type="memory") - self.llm_summary_by_topic = LLMRequest(self.config.llm_summary_by_topic, request_type="memory") + self.llm_summary = LLMRequest(self.config.llm_summary, request_type="memory") def get_all_node_names(self) -> list: """获取记忆图中所有节点的名字列表""" @@ -1169,7 +1169,7 @@ class ParahippocampalGyrus: # 调用修改后的 topic_what,不再需要 time_info topic_what_prompt = self.hippocampus.topic_what(input_text, topic) try: - task = self.hippocampus.llm_summary_by_topic.generate_response_async(topic_what_prompt) + task = self.hippocampus.llm_summary.generate_response_async(topic_what_prompt) tasks.append((topic.strip(), task)) except Exception as e: logger.error(f"生成话题 '{topic}' 的摘要时发生错误: {e}") diff --git a/src/plugins/memory_system/memory_config.py b/src/plugins/memory_system/memory_config.py index b2fb7280..aa8850d3 100644 --- a/src/plugins/memory_system/memory_config.py +++ b/src/plugins/memory_system/memory_config.py @@ -24,7 +24,7 @@ class MemoryConfig: consolidate_memory_interval: int # 记忆整合间隔 llm_topic_judge: str # 话题判断模型 - llm_summary_by_topic: str # 话题总结模型 + llm_summary: str # 话题总结模型 @classmethod def from_global_config(cls, global_config): @@ -44,7 +44,7 @@ class MemoryConfig: consolidate_memory_percentage=getattr(global_config, "consolidate_memory_percentage", 0.01), consolidate_memory_interval=getattr(global_config, "consolidate_memory_interval", 1000), llm_topic_judge=getattr(global_config, "llm_topic_judge", "default_judge_model"), # 添加默认模型名 - llm_summary_by_topic=getattr( - global_config, "llm_summary_by_topic", "default_summary_model" + llm_summary=getattr( + global_config, "llm_summary", "default_summary_model" ), # 添加默认模型名 ) diff --git a/template/bot_config_template.toml b/template/bot_config_template.toml index 2be1ca4f..23368cca 100644 --- a/template/bot_config_template.toml +++ b/template/bot_config_template.toml @@ -197,55 +197,44 @@ pfc_chatting = false # 是否启用PFC聊天,该功能仅作用于私聊,与 # stream = : 用于指定模型是否是使用流式输出 # 如果不指定,则该项是 False -[model.llm_reasoning] #只在回复模式为reasoning时启用 +#这个模型必须是推理模型 +[model.llm_reasoning] # 一般聊天模式的推理回复模型 name = "Pro/deepseek-ai/DeepSeek-R1" -# name = "Qwen/QwQ-32B" provider = "SILICONFLOW" -pri_in = 4 #模型的输入价格(非必填,可以记录消耗) -pri_out = 16 #模型的输出价格(非必填,可以记录消耗) +pri_in = 1.0 #模型的输入价格(非必填,可以记录消耗) +pri_out = 4.0 #模型的输出价格(非必填,可以记录消耗) -#非推理模型 - -[model.llm_normal] #V3 回复模型1 主要回复模型,默认temp 0.2 如果你使用的是老V3或者其他模型,请自己修改temp参数 +[model.llm_normal] #V3 回复模型 专注和一般聊天模式共用的回复模型 name = "Pro/deepseek-ai/DeepSeek-V3" provider = "SILICONFLOW" pri_in = 2 #模型的输入价格(非必填,可以记录消耗) pri_out = 8 #模型的输出价格(非必填,可以记录消耗) +#默认temp 0.2 如果你使用的是老V3或者其他模型,请自己修改temp参数 temp = 0.2 #模型的温度,新V3建议0.1-0.3 -[model.llm_emotion_judge] #表情包判断 -name = "Qwen/Qwen2.5-14B-Instruct" -provider = "SILICONFLOW" -pri_in = 0.7 -pri_out = 0.7 - -[model.llm_topic_judge] #记忆主题判断:建议使用qwen2.5 7b +[model.llm_topic_judge] #主题判断模型:建议使用qwen2.5 7b name = "Pro/Qwen/Qwen2.5-7B-Instruct" provider = "SILICONFLOW" -pri_in = 0 -pri_out = 0 +pri_in = 0.35 +pri_out = 0.35 -[model.llm_summary_by_topic] #概括模型,建议使用qwen2.5 32b 及以上 +[model.llm_summary] #概括模型,建议使用qwen2.5 32b 及以上 name = "Qwen/Qwen2.5-32B-Instruct" provider = "SILICONFLOW" pri_in = 1.26 pri_out = 1.26 -[model.llm_tool_use] #工具调用模型,需要使用支持工具调用的模型,建议使用qwen2.5 32b -name = "Qwen/Qwen2.5-32B-Instruct" -provider = "SILICONFLOW" -pri_in = 1.26 -pri_out = 1.26 - -# 识图模型 - -[model.vlm] #图像识别 +[model.vlm] # 图像识别模型 name = "Pro/Qwen/Qwen2.5-VL-7B-Instruct" provider = "SILICONFLOW" pri_in = 0.35 pri_out = 0.35 - +[model.llm_heartflow] # 用于控制麦麦是否参与聊天的模型 +name = "Qwen/Qwen2.5-32B-Instruct" +provider = "SILICONFLOW" +pri_in = 1.26 +pri_out = 1.26 [model.llm_observation] #观察模型,压缩聊天内容,建议用免费的 # name = "Pro/Qwen/Qwen2.5-7B-Instruct" @@ -254,19 +243,18 @@ provider = "SILICONFLOW" pri_in = 0 pri_out = 0 -[model.llm_sub_heartflow] #子心流:认真水群时,生成麦麦的内心想法 -name = "Qwen/Qwen2.5-72B-Instruct" +[model.llm_sub_heartflow] #心流:认真水群时,生成麦麦的内心想法,必须使用具有工具调用能力的模型 +name = "Pro/deepseek-ai/DeepSeek-V3" provider = "SILICONFLOW" -pri_in = 4.13 -pri_out = 4.13 -temp = 0.7 #模型的温度,新V3建议0.1-0.3 +pri_in = 2 +pri_out = 8 +temp = 0.3 #模型的温度,新V3建议0.1-0.3 - -[model.llm_plan] #决策模型:认真水群时,负责决定麦麦该做什么 -name = "Qwen/Qwen2.5-32B-Instruct" +[model.llm_plan] #决策:认真水群时,负责决定麦麦该做什么 +name = "Pro/deepseek-ai/DeepSeek-V3" provider = "SILICONFLOW" -pri_in = 1.26 -pri_out = 1.26 +pri_in = 2 +pri_out = 8 #嵌入模型 @@ -303,11 +291,13 @@ pri_in = 2 pri_out = 8 -#此模型暂时没有使用!! -#此模型暂时没有使用!! -#此模型暂时没有使用!! -[model.llm_heartflow] #心流 -# name = "Pro/Qwen/Qwen2.5-7B-Instruct" +#以下模型暂时没有使用!! +#以下模型暂时没有使用!! +#以下模型暂时没有使用!! +#以下模型暂时没有使用!! +#以下模型暂时没有使用!! + +[model.llm_tool_use] #工具调用模型,需要使用支持工具调用的模型,建议使用qwen2.5 32b name = "Qwen/Qwen2.5-32B-Instruct" provider = "SILICONFLOW" pri_in = 1.26 diff --git a/(临时版)聊天兴趣监控.bat.bat b/(临时版)聊天兴趣监控.bat.bat new file mode 100644 index 00000000..f26d14de --- /dev/null +++ b/(临时版)聊天兴趣监控.bat.bat @@ -0,0 +1,26 @@ +@echo off +CHCP 65001 > nul +setlocal enabledelayedexpansion + +REM 查找venv虚拟环境 +set "venv_path=%~dp0venv\Scripts\activate.bat" +if not exist "%venv_path%" ( + echo 错误: 未找到虚拟环境,请确保venv目录存在 + pause + exit /b 1 +) + +REM 激活虚拟环境 +call "%venv_path%" +if %ERRORLEVEL% neq 0 ( + echo 错误: 虚拟环境激活失败 + pause + exit /b 1 +) + +echo 虚拟环境已激活,正在启动 GUI... + +REM 运行 Python 脚本 +python scripts/interest_monitor_gui.py + +pause \ No newline at end of file diff --git a/(测试版)麦麦生成人格.bat b/(测试版)麦麦生成人格 copy.bat similarity index 100% rename from (测试版)麦麦生成人格.bat rename to (测试版)麦麦生成人格 copy.bat