Files
opendan/src/aios_kernel/agent.py
T

89 lines
2.1 KiB
Python
Raw Normal View History

2023-08-20 22:53:35 -07:00
from typing import Optional
2023-08-20 22:53:35 -07:00
import logging
logger = logging.getLogger(__name__)
class AgentMsg:
2023-08-20 22:53:35 -07:00
def __init__(self) -> None:
self.sender = None
self.target = None
self.body = None
def get_msg_id(self) -> str:
pass
def get_sender(self) -> str:
return self.sender
def get_target(self) -> str:
return self.target
# return workflow_name, role_name, session_id
def parser_target(self,target:str) -> None:
2023-08-20 22:53:35 -07:00
pass
class AgentPrompt:
2023-08-20 22:53:35 -07:00
def __init__(self) -> None:
pass
def as_str(self)->str:
pass
def append(self,prompt) -> None:
2023-08-20 22:53:35 -07:00
pass
# chat session store the chat history between owner and agent
# chat session might be large, so can read / write at stream mode.
class AIChatSession:
2023-08-20 22:53:35 -07:00
def __init__(self) -> None:
pass
2023-08-20 22:53:35 -07:00
def get_owner_id(self) -> str:
2023-08-20 22:53:35 -07:00
pass
def append_post(self,msg:AgentMsg) -> None:
"""append msg to session, msg is post from session (owner => msg.target)"""
2023-08-20 22:53:35 -07:00
pass
def append_recv(self,msg:AgentMsg) -> None:
"""append msg to session, msg is recv from msg'sender (msg.sender => owner)"""
2023-08-20 22:53:35 -07:00
pass
def attach_event_handler(self,handler) -> None:
"""chat session changed event handler"""
pass
#TODO : add iterator interface for read chat history
class AIAgentTemplete:
def __init__(self) -> None:
pass
class AIAgent:
2023-08-20 22:53:35 -07:00
def __init__(self) -> None:
self.chat_sessions = None
self.llm_model_name = None
self.max_token_size = 0
self.instance_id = None
self.template_id = None
2023-08-20 22:53:35 -07:00
def get_id(self) -> str:
return self.instance_id
def get_template_id(self) -> str:
return self.template_id
def get_chat_session_for_msg(self,msg:AgentMsg) -> AIChatSession:
2023-08-20 22:53:35 -07:00
pass
def get_chat_session(self,sender:str,session_id:str) -> AIChatSession:
pass
2023-08-20 22:53:35 -07:00
def get_llm_model_name(self) -> str:
return self.llm_model_name
def get_max_token_size(self) -> int:
return self.max_token_size
2023-08-20 22:53:35 -07:00