From 03ed59e388237b4fc9edaea5c1dcb453717063c6 Mon Sep 17 00:00:00 2001
From: SengokuCola <1026294844@qq.com>
Date: Tue, 24 Mar 2026 11:36:26 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E6=96=87=E4=BB=B6=E7=BB=93?=
=?UTF-8?q?=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 137 +++++++--------
docs/README_CN.md | 162 ++++++++++++++++++
docs/README_EN.md | 2 +-
docs/minimal-cross-platform-plan.md | 6 +-
src/chat/brain_chat/brain_chat.py | 4 +-
src/chat/heart_flow/heartFC_chat - 副本.py | 4 +-
src/chat/heart_flow/heartFC_chat.py | 4 +-
src/chat/replyer/group_generator.py | 4 +-
src/chat/replyer/private_generator.py | 4 +-
.../expression_auto_check_task.py | 2 +-
.../expression_learner.py | 0
.../expression_review_store.py | 0
.../expression_selector.py | 2 +-
.../expression_utils.py | 0
.../jargon_explainer.py | 0
.../jargon_explainer_old.py | 4 +-
src/{bw_learner => learners}/jargon_miner.py | 0
src/{bw_learner => learners}/learner_utils.py | 0
.../learner_utils_old.py | 0
src/main.py | 2 +-
src/memory_system/memory_retrieval.py | 2 +-
.../retrieval_tools/query_words.py | 2 +-
22 files changed, 248 insertions(+), 93 deletions(-)
create mode 100644 docs/README_CN.md
rename src/{bw_learner => learners}/expression_auto_check_task.py (98%)
rename src/{bw_learner => learners}/expression_learner.py (100%)
rename src/{bw_learner => learners}/expression_review_store.py (100%)
rename src/{bw_learner => learners}/expression_selector.py (99%)
rename src/{bw_learner => learners}/expression_utils.py (100%)
rename src/{bw_learner => learners}/jargon_explainer.py (100%)
rename src/{bw_learner => learners}/jargon_explainer_old.py (99%)
rename src/{bw_learner => learners}/jargon_miner.py (100%)
rename src/{bw_learner => learners}/learner_utils.py (100%)
rename src/{bw_learner => learners}/learner_utils_old.py (100%)
diff --git a/README.md b/README.md
index 7c41c8cf..3f3851b7 100644
--- a/README.md
+++ b/README.md
@@ -1,21 +1,21 @@
-
简体中文 |
English
+
简体中文 |
English
diff --git a/docs/minimal-cross-platform-plan.md b/docs/minimal-cross-platform-plan.md
index d0b6707b..2f0a86bd 100644
--- a/docs/minimal-cross-platform-plan.md
+++ b/docs/minimal-cross-platform-plan.md
@@ -41,7 +41,7 @@ This plan is based on the checked-in code, not on assumptions from previous draf
| `src/person_info/person_info.py:247` | `_is_bot_self(self, platform, user_id)` | Duplicate logic with same QQ fallback |
Wrong-order call sites (8 total):
-- `src/bw_learner/expression_learner.py` x3 (lines 158, 241, 301)
+- `src/learners/expression_learner.py` x3 (lines 158, 241, 301)
- `src/common/utils/utils_message.py` x4 (lines 370, 440, 476, 515)
- `src/webui/routers/chat/support.py` x1 (line 65)
@@ -122,7 +122,7 @@ Make `src/chat/utils/utils.py::is_bot_self(platform, user_id)` the only real imp
- `src/common/utils/system_utils.py`
- `src/chat/utils/utils.py`
- `src/person_info/person_info.py`
-- `src/bw_learner/expression_learner.py`
+- `src/learners/expression_learner.py`
- `src/common/utils/utils_message.py`
- `src/webui/routers/chat/support.py`
- tests
@@ -468,7 +468,7 @@ When stopping, name: the exact file(s), the blocking mismatch, why it is outside
| Phase | Allowed files |
|-------|---------------|
-| Phase 0 | `src/common/utils/system_utils.py`, `src/chat/utils/utils.py`, `src/person_info/person_info.py`, `src/bw_learner/expression_learner.py`, `src/common/utils/utils_message.py`, `src/webui/routers/chat/support.py`, tests (including `pytests/utils_test/message_utils_test.py`) |
+| Phase 0 | `src/common/utils/system_utils.py`, `src/chat/utils/utils.py`, `src/person_info/person_info.py`, `src/learners/expression_learner.py`, `src/common/utils/utils_message.py`, `src/webui/routers/chat/support.py`, tests (including `pytests/utils_test/message_utils_test.py`) |
| Phase 1 | `src/chat/utils/utils.py`, `src/chat/planner_actions/planner.py`, `src/chat/utils/statistic.py`, `src/common/message_repository.py`, `src/webui/routers/chat/support.py`, `src/services/send_service.py`, `src/chat/replyer/group_generator.py`, `src/chat/replyer/private_generator.py`, `src/chat/brain_chat/PFC/message_sender.py`, `src/person_info/person_info.py`, tests |
### INVALID OUTPUT EXAMPLES
diff --git a/src/chat/brain_chat/brain_chat.py b/src/chat/brain_chat/brain_chat.py
index 2b4863ac..1e9e648a 100644
--- a/src/chat/brain_chat/brain_chat.py
+++ b/src/chat/brain_chat/brain_chat.py
@@ -8,8 +8,8 @@ from rich.traceback import install
from src.config.config import global_config
from src.common.logger import get_logger
from src.common.utils.utils_config import ExpressionConfigUtils
-from src.bw_learner.expression_learner import ExpressionLearner
-from src.bw_learner.jargon_miner import JargonMiner
+from src.learners.expression_learner import ExpressionLearner
+from src.learners.jargon_miner import JargonMiner
from src.chat.message_receive.chat_manager import BotChatSession
from src.chat.message_receive.chat_manager import chat_manager as _chat_manager
from src.chat.message_receive.message import SessionMessage
diff --git a/src/chat/heart_flow/heartFC_chat - 副本.py b/src/chat/heart_flow/heartFC_chat - 副本.py
index c805597d..02f70281 100644
--- a/src/chat/heart_flow/heartFC_chat - 副本.py
+++ b/src/chat/heart_flow/heartFC_chat - 副本.py
@@ -16,9 +16,9 @@ from src.chat.planner_actions.planner import ActionPlanner
from src.chat.planner_actions.action_modifier import ActionModifier
from src.chat.planner_actions.action_manager import ActionManager
from src.chat.heart_flow.hfc_utils import CycleDetail
-from src.bw_learner.expression_learner import expression_learner_manager
+from src.learners.expression_learner import expression_learner_manager
from src.chat.heart_flow.frequency_control import frequency_control_manager
-from src.bw_learner.message_recorder import extract_and_distribute_messages
+from src.learners.message_recorder import extract_and_distribute_messages
from src.person_info.person_info import Person
from src.plugin_system.base.component_types import EventType, ActionInfo
from src.plugin_system.core import events_manager
diff --git a/src/chat/heart_flow/heartFC_chat.py b/src/chat/heart_flow/heartFC_chat.py
index af0beb4e..2c1eb162 100644
--- a/src/chat/heart_flow/heartFC_chat.py
+++ b/src/chat/heart_flow/heartFC_chat.py
@@ -7,8 +7,8 @@ import traceback
from rich.traceback import install
-from src.bw_learner.expression_learner import ExpressionLearner
-from src.bw_learner.jargon_miner import JargonMiner
+from src.learners.expression_learner import ExpressionLearner
+from src.learners.jargon_miner import JargonMiner
from src.chat.event_helpers import build_event_message
from src.chat.logger.plan_reply_logger import PlanReplyLogger
from src.chat.message_receive.chat_manager import BotChatSession
diff --git a/src/chat/replyer/group_generator.py b/src/chat/replyer/group_generator.py
index 74b324be..e10aa147 100644
--- a/src/chat/replyer/group_generator.py
+++ b/src/chat/replyer/group_generator.py
@@ -27,7 +27,7 @@ from src.services.message_service import (
replace_user_references,
translate_pid_to_description,
)
-from src.bw_learner.expression_selector import expression_selector
+from src.learners.expression_selector import expression_selector
# from src.memory_system.memory_activator import MemoryActivator
from src.person_info.person_info import Person
@@ -36,7 +36,7 @@ from src.services import llm_service as llm_api
from src.chat.logger.plan_reply_logger import PlanReplyLogger
from src.memory_system.memory_retrieval import init_memory_retrieval_sys, build_memory_retrieval_prompt
-from src.bw_learner.jargon_explainer_old import explain_jargon_in_context, retrieve_concepts_with_jargon
+from src.learners.jargon_explainer_old import explain_jargon_in_context, retrieve_concepts_with_jargon
from src.chat.utils.common_utils import TempMethodsExpression
init_memory_retrieval_sys()
diff --git a/src/chat/replyer/private_generator.py b/src/chat/replyer/private_generator.py
index 3b70bb2c..ccd8e1e4 100644
--- a/src/chat/replyer/private_generator.py
+++ b/src/chat/replyer/private_generator.py
@@ -27,13 +27,13 @@ from src.services.message_service import (
replace_user_references,
translate_pid_to_description,
)
-from src.bw_learner.expression_selector import expression_selector
+from src.learners.expression_selector import expression_selector
# from src.memory_system.memory_activator import MemoryActivator
from src.person_info.person_info import Person, is_person_known
from src.core.types import ActionInfo, EventType
from src.memory_system.memory_retrieval import init_memory_retrieval_sys, build_memory_retrieval_prompt
-from src.bw_learner.jargon_explainer_old import explain_jargon_in_context
+from src.learners.jargon_explainer_old import explain_jargon_in_context
init_memory_retrieval_sys()
diff --git a/src/bw_learner/expression_auto_check_task.py b/src/learners/expression_auto_check_task.py
similarity index 98%
rename from src/bw_learner/expression_auto_check_task.py
rename to src/learners/expression_auto_check_task.py
index d90eb4da..53b151b2 100644
--- a/src/bw_learner/expression_auto_check_task.py
+++ b/src/learners/expression_auto_check_task.py
@@ -15,7 +15,7 @@ import random
from sqlmodel import select
-from src.bw_learner.expression_review_store import get_review_state, set_review_state
+from src.learners.expression_review_store import get_review_state, set_review_state
from src.common.database.database import get_db_session
from src.common.database.database_model import Expression
from src.common.logger import get_logger
diff --git a/src/bw_learner/expression_learner.py b/src/learners/expression_learner.py
similarity index 100%
rename from src/bw_learner/expression_learner.py
rename to src/learners/expression_learner.py
diff --git a/src/bw_learner/expression_review_store.py b/src/learners/expression_review_store.py
similarity index 100%
rename from src/bw_learner/expression_review_store.py
rename to src/learners/expression_review_store.py
diff --git a/src/bw_learner/expression_selector.py b/src/learners/expression_selector.py
similarity index 99%
rename from src/bw_learner/expression_selector.py
rename to src/learners/expression_selector.py
index c6cfe469..c96e84cf 100644
--- a/src/bw_learner/expression_selector.py
+++ b/src/learners/expression_selector.py
@@ -9,7 +9,7 @@ from src.config.config import global_config, model_config
from src.common.logger import get_logger
from src.common.database.database_model import Expression
from src.prompt.prompt_manager import prompt_manager
-from src.bw_learner.learner_utils_old import weighted_sample
+from src.learners.learner_utils_old import weighted_sample
from src.chat.utils.common_utils import TempMethodsExpression
logger = get_logger("expression_selector")
diff --git a/src/bw_learner/expression_utils.py b/src/learners/expression_utils.py
similarity index 100%
rename from src/bw_learner/expression_utils.py
rename to src/learners/expression_utils.py
diff --git a/src/bw_learner/jargon_explainer.py b/src/learners/jargon_explainer.py
similarity index 100%
rename from src/bw_learner/jargon_explainer.py
rename to src/learners/jargon_explainer.py
diff --git a/src/bw_learner/jargon_explainer_old.py b/src/learners/jargon_explainer_old.py
similarity index 99%
rename from src/bw_learner/jargon_explainer_old.py
rename to src/learners/jargon_explainer_old.py
index 4d144b2c..0cfafa82 100644
--- a/src/bw_learner/jargon_explainer_old.py
+++ b/src/learners/jargon_explainer_old.py
@@ -7,8 +7,8 @@ from src.common.database.database_model import Jargon
from src.llm_models.utils_model import LLMRequest
from src.config.config import model_config, global_config
from src.prompt.prompt_manager import prompt_manager
-from src.bw_learner.jargon_miner_old import search_jargon
-from src.bw_learner.learner_utils_old import (
+from src.learners.jargon_miner_old import search_jargon
+from src.learners.learner_utils_old import (
is_bot_message,
contains_bot_self_name,
parse_chat_id_list,
diff --git a/src/bw_learner/jargon_miner.py b/src/learners/jargon_miner.py
similarity index 100%
rename from src/bw_learner/jargon_miner.py
rename to src/learners/jargon_miner.py
diff --git a/src/bw_learner/learner_utils.py b/src/learners/learner_utils.py
similarity index 100%
rename from src/bw_learner/learner_utils.py
rename to src/learners/learner_utils.py
diff --git a/src/bw_learner/learner_utils_old.py b/src/learners/learner_utils_old.py
similarity index 100%
rename from src/bw_learner/learner_utils_old.py
rename to src/learners/learner_utils_old.py
diff --git a/src/main.py b/src/main.py
index 587c5634..30d1c86d 100644
--- a/src/main.py
+++ b/src/main.py
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
import asyncio
import time
-from src.bw_learner.expression_auto_check_task import ExpressionAutoCheckTask
+from src.learners.expression_auto_check_task import ExpressionAutoCheckTask
from src.chat.emoji_system.emoji_manager import emoji_manager
from src.chat.knowledge import lpmm_start_up
from src.chat.message_receive.bot import chat_bot
diff --git a/src/memory_system/memory_retrieval.py b/src/memory_system/memory_retrieval.py
index 4193a16a..982db166 100644
--- a/src/memory_system/memory_retrieval.py
+++ b/src/memory_system/memory_retrieval.py
@@ -14,7 +14,7 @@ from src.common.database.database_model import ThinkingQuestion
from src.memory_system.retrieval_tools import get_tool_registry, init_all_tools
from src.llm_models.payload_content.message import MessageBuilder, RoleType, Message
from src.chat.message_receive.chat_manager import chat_manager as _chat_manager
-from src.bw_learner.jargon_explainer_old import retrieve_concepts_with_jargon
+from src.learners.jargon_explainer_old import retrieve_concepts_with_jargon
logger = get_logger("memory_retrieval")
diff --git a/src/memory_system/retrieval_tools/query_words.py b/src/memory_system/retrieval_tools/query_words.py
index 66fb3c46..ee28b934 100644
--- a/src/memory_system/retrieval_tools/query_words.py
+++ b/src/memory_system/retrieval_tools/query_words.py
@@ -4,7 +4,7 @@
"""
from src.common.logger import get_logger
-from src.bw_learner.jargon_explainer_old import retrieve_concepts_with_jargon
+from src.learners.jargon_explainer_old import retrieve_concepts_with_jargon
from .tool_registry import register_memory_retrieval_tool
logger = get_logger("memory_retrieval_tools")