refactor: migrate workflow to v2 core and archive legacy modules
This commit is contained in:
63
core/engine.py
Normal file
63
core/engine.py
Normal file
@@ -0,0 +1,63 @@
|
||||
import logging
|
||||
from typing import Optional, Any
|
||||
from core.schema import StandardMessage, StandardResponse
|
||||
from core.events.event_bus import bus
|
||||
|
||||
logger = logging.getLogger("cs_agent")
|
||||
|
||||
class BusinessEngine:
|
||||
"""
|
||||
业务逻辑中枢:
|
||||
1. 接收 StandardMessage。
|
||||
2. 决定由哪个 AI 工具或流程处理。
|
||||
3. 返回 StandardResponse。
|
||||
4. 对外广播异步事件。
|
||||
"""
|
||||
def __init__(self, agent_instance: Any = None):
|
||||
"""
|
||||
:param agent_instance: 核心 AI Agent 的实例(比如重构后的 CustomerServiceAgent)
|
||||
"""
|
||||
self.agent = agent_instance
|
||||
|
||||
async def handle_message(self, msg: StandardMessage) -> StandardResponse:
|
||||
"""
|
||||
大脑的思考主入口
|
||||
"""
|
||||
logger.info(f"[Engine] 收到来自 {msg.platform} 的消息: {msg.user_id} -> {msg.content[:50]}")
|
||||
|
||||
# TODO: 这里将接入重构后的 Single Agent + Tool Calling
|
||||
# 目前模拟一个简单的规则响应,展示 StandardResponse 的用法
|
||||
|
||||
if "报价" in msg.content or msg.image_urls:
|
||||
return StandardResponse(
|
||||
reply_content="正在为你查看图片,请稍等...",
|
||||
metadata={"acc_id": msg.acc_id, "acc_type": msg.acc_type}
|
||||
)
|
||||
|
||||
if "转人工" in msg.content:
|
||||
return StandardResponse(
|
||||
reply_content="正在为你转接设计师...",
|
||||
need_transfer=True,
|
||||
metadata={"acc_id": msg.acc_id, "acc_type": msg.acc_type}
|
||||
)
|
||||
|
||||
# 兜底回复
|
||||
return StandardResponse(
|
||||
reply_content="你好,我是AI助手,有什么可以帮你的?",
|
||||
metadata={"acc_id": msg.acc_id, "acc_type": msg.acc_type}
|
||||
)
|
||||
|
||||
async def emit_image_result(self, user_id: str, platform: str, url: str, acc_id: str):
|
||||
"""
|
||||
这是一个业务触发器示例:当图片处理完成时,由 Engine 主动发广播。
|
||||
"""
|
||||
await bus.emit(
|
||||
"MESSAGE_OUTBOUND",
|
||||
user_id=user_id,
|
||||
platform=platform,
|
||||
response=StandardResponse(
|
||||
reply_content=url,
|
||||
msg_type=1, # 图片
|
||||
metadata={"acc_id": acc_id}
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user