mirror of
https://github.com/FunnyWolf/agentic-soc-platform.git
synced 2026-08-22 13:12:56 +02:00
tmp
This commit is contained in:
+5
-6
@@ -44,12 +44,11 @@ class BasePlaybook(BaseAPI):
|
||||
return self._playbook_model.user_input
|
||||
|
||||
def update_playbook_status(self, job_status: PlaybookJobStatus, remark: str):
|
||||
playbook_model_tmp = PlaybookModel()
|
||||
playbook_model_tmp.rowid = self._playbook_model.rowid
|
||||
playbook_model_tmp.job_status = job_status
|
||||
playbook_model_tmp.remark = remark
|
||||
|
||||
rowid = Playbook.update_or_create(playbook_model_tmp)
|
||||
model_tmp = PlaybookModel()
|
||||
model_tmp.rowid = self._playbook_model.rowid
|
||||
model_tmp.job_status = job_status
|
||||
model_tmp.remark = remark
|
||||
rowid = Playbook.update_or_create(model_tmp)
|
||||
return rowid
|
||||
|
||||
def send_notice(self, title: str, body: str) -> bool:
|
||||
|
||||
+16
-15
@@ -17,8 +17,8 @@ from Lib.xcache import Xcache
|
||||
from PLUGINS.Embeddings.embeddings_qdrant import embedding_api_singleton_qdrant, SIRP_KNOWLEDGE_COLLECTION
|
||||
from PLUGINS.Mem0.CONFIG import USE as MEM_ZERO_USE
|
||||
from PLUGINS.Redis.redis_stream_api import RedisStreamAPI
|
||||
from PLUGINS.SIRP.sirpapi import Playbook as SIRPPlaybook, Knowledge
|
||||
from PLUGINS.SIRP.sirpmodel import PlaybookJobStatus, KnowledgeAction
|
||||
from PLUGINS.SIRP.sirpapi import Playbook, Knowledge
|
||||
from PLUGINS.SIRP.sirpmodel import PlaybookJobStatus, KnowledgeAction, PlaybookModel
|
||||
|
||||
if MEM_ZERO_USE:
|
||||
from PLUGINS.Mem0.mem_zero import mem_zero_singleton
|
||||
@@ -106,18 +106,19 @@ class MainMonitor(object):
|
||||
|
||||
@staticmethod
|
||||
def subscribe_pending_playbook():
|
||||
models = SIRPPlaybook.list_pending_playbooks()
|
||||
models = Playbook.list_pending_playbooks()
|
||||
|
||||
for model in models:
|
||||
module_config = Xcache.get_module_config_by_name_and_type(model.type, model.name)
|
||||
model_tmp = PlaybookModel(rowid=model.rowid)
|
||||
if module_config is None:
|
||||
PlaybookLoader.load_all_playbook_config() # try again
|
||||
module_config = Xcache.get_module_config_by_name_and_type(model.type, model.name)
|
||||
if module_config is None:
|
||||
logger.error(f"PlaybookLoader module config not found: {model.type} - {model.name}")
|
||||
model.job_status = PlaybookJobStatus.FAILED
|
||||
model.remark = f"PlaybookLoader module config not found: {model.type} - {model.name}"
|
||||
SIRPPlaybook.update_or_create(model)
|
||||
model_tmp.job_status = PlaybookJobStatus.FAILED
|
||||
model_tmp.remark = f"PlaybookLoader module config not found: {model.type} - {model.name}"
|
||||
Playbook.update_or_create(model_tmp)
|
||||
continue
|
||||
|
||||
load_path = module_config.get("load_path")
|
||||
@@ -128,22 +129,22 @@ class MainMonitor(object):
|
||||
playbook_intent._playbook_model = model
|
||||
except Exception as E:
|
||||
logger.exception(E)
|
||||
model.job_status = PlaybookJobStatus.FAILED
|
||||
model.remark = str(E)
|
||||
SIRPPlaybook.update_or_create(model)
|
||||
model_tmp.job_status = PlaybookJobStatus.FAILED
|
||||
model_tmp.remark = str(E)
|
||||
Playbook.update_or_create(model_tmp)
|
||||
continue
|
||||
|
||||
job_id = thread_module_manager.start_task(playbook_intent)
|
||||
if not job_id:
|
||||
model.job_status = PlaybookJobStatus.FAILED
|
||||
model.remark = "Failed to create playbook job."
|
||||
SIRPPlaybook.update_or_create(model)
|
||||
model_tmp.job_status = PlaybookJobStatus.FAILED
|
||||
model_tmp.remark = "Failed to create playbook job."
|
||||
Playbook.update_or_create(model_tmp)
|
||||
continue
|
||||
else:
|
||||
logger.info(f"Create playbook job success: {job_id}")
|
||||
model.job_status = PlaybookJobStatus.RUNNING
|
||||
model.job_id = job_id
|
||||
SIRPPlaybook.update_or_create(model)
|
||||
model_tmp.job_status = PlaybookJobStatus.RUNNING
|
||||
model_tmp.job_id = job_id
|
||||
Playbook.update_or_create(model_tmp)
|
||||
|
||||
@staticmethod
|
||||
def subscribe_knowledge_action():
|
||||
|
||||
@@ -154,6 +154,26 @@ class Playbook(BaseWorksheetEntity[PlaybookModel]):
|
||||
|
||||
return cls.list(filter_model, lazy_load=True)
|
||||
|
||||
@classmethod
|
||||
def update_job_status_and_remark(cls, rowid: str, job_status: PlaybookJobStatus, remark: str) -> str:
|
||||
"""更新 playbook 的 job_status 和 remark 字段
|
||||
|
||||
Args:
|
||||
rowid: playbook 记录ID
|
||||
job_status: 新的作业状态
|
||||
remark: 备注信息
|
||||
|
||||
Returns:
|
||||
更新后的记录ID
|
||||
"""
|
||||
playbook_model_tmp = PlaybookModel()
|
||||
playbook_model_tmp.rowid = rowid
|
||||
playbook_model_tmp.job_status = job_status
|
||||
playbook_model_tmp.remark = remark
|
||||
|
||||
rowid = Playbook.update_or_create(playbook_model_tmp)
|
||||
return rowid
|
||||
|
||||
|
||||
class Knowledge(BaseWorksheetEntity[KnowledgeModel]):
|
||||
"""PlaybookLoader 实体类"""
|
||||
|
||||
@@ -83,7 +83,7 @@ class PlaybookModel(BaseSystemModel):
|
||||
name: Optional[str] = Field(default="", description="执行的Playbook的名称")
|
||||
|
||||
user_input: Optional[str] = Field(default="", description="用户对Playbook的初始输入或后续指令")
|
||||
user: Optional[Union[List[AccountModel], AccountModel]] = Field(default=None, description="发起Playbook的用户")
|
||||
user: Optional[List[AccountModel]] = Field(default=None, description="发起Playbook的用户")
|
||||
|
||||
# 关联表
|
||||
messages: Optional[List[Union[MessageModel, str]]] = Field(default=None, description="Playbook执行过程中的所有消息记录,构成对话历史")
|
||||
|
||||
Reference in New Issue
Block a user