refactor: extract hardcoded original_umo key to constant
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com>
This commit is contained in:
@@ -832,13 +832,16 @@ def _get_compress_provider(
|
||||
|
||||
def _apply_global_context_info(event: AstrMessageEvent, req: ProviderRequest) -> None:
|
||||
"""Add platform and session information to user prompt when in global unified context mode."""
|
||||
from astrbot.core.config.default import GLOBAL_UNIFIED_CONTEXT_UMO
|
||||
from astrbot.core.config.default import (
|
||||
GLOBAL_UNIFIED_CONTEXT_UMO,
|
||||
ORIGINAL_UMO_KEY,
|
||||
)
|
||||
|
||||
if event.unified_msg_origin != GLOBAL_UNIFIED_CONTEXT_UMO:
|
||||
return
|
||||
|
||||
# Get original UMO from extras
|
||||
original_umo = event.get_extra("original_umo")
|
||||
original_umo = event.get_extra(ORIGINAL_UMO_KEY)
|
||||
if not original_umo:
|
||||
return
|
||||
|
||||
|
||||
@@ -258,7 +258,9 @@ class SendMessageToUserTool(FunctionTool[AstrAgentContext]):
|
||||
self, context: ContextWrapper[AstrAgentContext], **kwargs
|
||||
) -> ToolExecResult:
|
||||
# In global context mode, default to original UMO if session not specified
|
||||
original_umo = context.context.event.get_extra("original_umo")
|
||||
from astrbot.core.config.default import ORIGINAL_UMO_KEY
|
||||
|
||||
original_umo = context.context.event.get_extra(ORIGINAL_UMO_KEY)
|
||||
default_session = original_umo or context.context.event.unified_msg_origin
|
||||
session = kwargs.get("session") or default_session
|
||||
messages = kwargs.get("messages")
|
||||
|
||||
@@ -19,6 +19,8 @@ WEBHOOK_SUPPORTED_PLATFORMS = [
|
||||
|
||||
# Constant UMO for global unified context mode
|
||||
GLOBAL_UNIFIED_CONTEXT_UMO = "global::global"
|
||||
# Key for storing original UMO in event extras when global context mode is enabled
|
||||
ORIGINAL_UMO_KEY = "original_umo"
|
||||
|
||||
# 默认配置
|
||||
DEFAULT_CONFIG = {
|
||||
|
||||
@@ -170,7 +170,9 @@ class RespondStage(Stage):
|
||||
)
|
||||
|
||||
# Restore original UMO before sending if in global context mode
|
||||
original_umo = event.get_extra("original_umo")
|
||||
from astrbot.core.config.default import ORIGINAL_UMO_KEY
|
||||
|
||||
original_umo = event.get_extra(ORIGINAL_UMO_KEY)
|
||||
if original_umo:
|
||||
logger.debug(
|
||||
f"Restoring original UMO before sending: {event.unified_msg_origin} -> {original_umo}"
|
||||
|
||||
@@ -82,12 +82,15 @@ class WakingCheckStage(Stage):
|
||||
) -> None | AsyncGenerator[None, None]:
|
||||
# apply global unified context mode
|
||||
if self.global_unified_context_mode:
|
||||
from astrbot.core.config.default import GLOBAL_UNIFIED_CONTEXT_UMO
|
||||
from astrbot.core.config.default import (
|
||||
GLOBAL_UNIFIED_CONTEXT_UMO,
|
||||
ORIGINAL_UMO_KEY,
|
||||
)
|
||||
|
||||
original_umo = event.unified_msg_origin
|
||||
event.unified_msg_origin = GLOBAL_UNIFIED_CONTEXT_UMO
|
||||
# Store original UMO for reference in later stages
|
||||
event.set_extra("original_umo", original_umo)
|
||||
event.set_extra(ORIGINAL_UMO_KEY, original_umo)
|
||||
logger.debug(
|
||||
f"Global unified context mode enabled. Changed UMO from {original_umo} to {GLOBAL_UNIFIED_CONTEXT_UMO}"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user