complete ai kerne frame code
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
class ai_agent:
|
||||
def __init__(self) -> None:
|
||||
pass
|
||||
@@ -1,11 +1,19 @@
|
||||
|
||||
import logging
|
||||
import toml
|
||||
|
||||
from .agent import ai_agent
|
||||
from .templete import ai_agent_templete
|
||||
from package_manager import pkg_env,pkg_env_mgr,pkg_media_info,media_reader,pkg_install_task
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class agent_manager:
|
||||
_instance = None
|
||||
|
||||
def __init__(self) -> None:
|
||||
self.loaded_agent_instance = {}
|
||||
pass
|
||||
|
||||
def __new__(cls):
|
||||
@@ -15,22 +23,51 @@ class agent_manager:
|
||||
|
||||
|
||||
def initial(self,root_dir:str) -> None:
|
||||
pass
|
||||
self.agent_templete_env : pkg_env = pkg_env_mgr().get_env(f"{root_dir}templetes/agent_templetes.cfg")
|
||||
self.agent_env : pkg_env = pkg_env_mgr().get_env(f"{root_dir}agents/agents.cfg")
|
||||
if self.agent_templete_env is None:
|
||||
raise Exception("agent_manager initial failed")
|
||||
|
||||
|
||||
|
||||
def get(self,agent_id) -> ai_agent:
|
||||
pass
|
||||
def get(self,agent_id:str) -> ai_agent:
|
||||
the_agent = self.loaded_agent_instance.get(agent_id)
|
||||
if the_agent:
|
||||
return the_agent
|
||||
|
||||
# try load from disk
|
||||
agent_media_info = self.agent_env.load(agent_id)
|
||||
if agent_media_info is None:
|
||||
return None
|
||||
|
||||
the_agent = self._load_agent_from_media(agent_media_info)
|
||||
if the_agent is None:
|
||||
logger.warn(f"load agent {agent_id} from media failed!")
|
||||
|
||||
return the_agent
|
||||
|
||||
|
||||
def remove(self,agent_id:str)->int:
|
||||
pass
|
||||
|
||||
def get_templete(self,templete_id) -> ai_agent_templete:
|
||||
template_media_info = self.agent_templete_env.get(templete_id)
|
||||
if template_media_info is None:
|
||||
return None
|
||||
return self._load_templete_from_media(template_media_info)
|
||||
|
||||
def install(self,templete_id) -> pkg_install_task:
|
||||
installer = self.agent_templete_env.get_installer()
|
||||
return installer.install(templete_id)
|
||||
|
||||
def uninstall(self,templete_id) -> int:
|
||||
pass
|
||||
|
||||
def _load_templete_from_media(self,templete_media:pkg_media_info) -> ai_agent_templete:
|
||||
pass
|
||||
|
||||
def install(self,templete_id) -> int:
|
||||
|
||||
installer = None
|
||||
#installer.install(templete_id)
|
||||
def _load_agent_from_media(self,agent_media:pkg_media_info) -> ai_agent:
|
||||
pass
|
||||
|
||||
|
||||
def create(self,template,agent_name,agent_last_name,agent_introduce) -> ai_agent:
|
||||
pass
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
from .env import pkg_env_mgr,pkg_env
|
||||
from .pkg import pkg_info,pkg_media_info
|
||||
from .installer import pkg_install_task
|
||||
@@ -19,7 +19,7 @@ INSTALL_TASK_STATE_DOWNLOADING = 3
|
||||
INSTALL_TASK_STATE_INSTALLING = 4
|
||||
INSTALL_TAKS_STATE_ERROR = 5
|
||||
|
||||
class install_task:
|
||||
class pkg_install_task:
|
||||
def __init__(self,owner:pkg_env) -> None:
|
||||
self.owner = owner
|
||||
self.state = INSTALL_TASK_STATE_CHECK_DEPENDENCY
|
||||
@@ -35,7 +35,7 @@ class pkg_installer:
|
||||
self.owner_env = owner_env
|
||||
|
||||
def install(self,pkg_name:str,
|
||||
install_from_dependency = False, can_upgrade = True,skip_depends = False,options = None)->Tuple[install_task,str]:
|
||||
install_from_dependency = False, can_upgrade = True,skip_depends = False,options = None)->Tuple[pkg_install_task,str]:
|
||||
|
||||
the_pkg_info : pkg_info = None
|
||||
is_upgrade : bool = False
|
||||
@@ -74,7 +74,7 @@ class pkg_installer:
|
||||
return result_task,"already installing"
|
||||
|
||||
logger.info(f"start download&install {pkg_name},install_from_dependency={install_from_dependency},upgrade={is_upgrade},backup={need_backup},target_pkg_info={the_pkg_info}")
|
||||
result_task = install_task()
|
||||
result_task = pkg_install_task()
|
||||
self.all_tasks[the_pkg_info.cid] = result_task
|
||||
async def download_and_install_pkg()->int:
|
||||
# check dependency
|
||||
@@ -149,7 +149,7 @@ class pkg_installer:
|
||||
if depend_task is not None:
|
||||
logger.debug(f"{pkg.name}'s depend pkg {depend_pkg_name} already in task list")
|
||||
continue
|
||||
depend_task = install_task()
|
||||
depend_task = pkg_install_task()
|
||||
task_list[depend_pkg_name] = depend_task
|
||||
|
||||
depend_pkg_info = self.owner_env.lookup(depend_pkg_name)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
class media_reader:
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def load_from_media(self,media_info:str) -> int:
|
||||
pass
|
||||
|
||||
def read(self, inner_path:str):
|
||||
raise NotImplementedError
|
||||
@@ -9,12 +9,13 @@ class pkg_info:
|
||||
self.target_media_type = "dir"
|
||||
self.source_media_type = "7z"
|
||||
|
||||
|
||||
|
||||
def parse_pkg_name(pkg_name:str) -> Tuple[str, str, str]:
|
||||
#return pkg_id,version_str,cid
|
||||
@classmethod
|
||||
def parse_pkg_name(cls,pkg_name:str) -> Tuple[str, str, str]:
|
||||
"""parse pkg name like test-pkg#nightly#>0.2.31#sha1:323423423 to test-pkg,nightly#>0.2.31,sha1:323423423"""
|
||||
pass
|
||||
|
||||
|
||||
|
||||
@property
|
||||
def cid(self) -> str:
|
||||
return self.cid
|
||||
|
||||
Reference in New Issue
Block a user