2023-08-20 22:53:35 -07:00
|
|
|
from typing import Optional
|
2023-08-22 17:11:20 -07:00
|
|
|
|
2023-08-20 22:53:35 -07:00
|
|
|
import logging
|
|
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
class agent_msg:
|
|
|
|
|
def __init__(self) -> None:
|
2023-08-22 17:11:20 -07:00
|
|
|
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 agent_prompt:
|
|
|
|
|
def __init__(self) -> None:
|
|
|
|
|
pass
|
|
|
|
|
|
2023-08-22 17:11:20 -07:00
|
|
|
def as_str(self)->str:
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
def append(self,prompt) -> None:
|
2023-08-20 22:53:35 -07:00
|
|
|
pass
|
|
|
|
|
|
2023-08-22 17:11:20 -07:00
|
|
|
# chat session store the chat history between owner and agent
|
|
|
|
|
# chat session might be large, so can read / write at stream mode.
|
|
|
|
|
class ai_chat_session:
|
2023-08-20 22:53:35 -07:00
|
|
|
def __init__(self) -> None:
|
2023-08-22 17:11:20 -07:00
|
|
|
pass
|
2023-08-20 22:53:35 -07:00
|
|
|
|
2023-08-22 17:11:20 -07:00
|
|
|
def get_owner_id(self) -> str:
|
2023-08-20 22:53:35 -07:00
|
|
|
pass
|
|
|
|
|
|
2023-08-22 17:11:20 -07:00
|
|
|
def append_post(self,msg:agent_msg) -> None:
|
|
|
|
|
"""append msg to session, msg is post from session (owner => msg.target)"""
|
2023-08-20 22:53:35 -07:00
|
|
|
pass
|
|
|
|
|
|
2023-08-22 17:11:20 -07:00
|
|
|
def append_recv(self,msg:agent_msg) -> None:
|
|
|
|
|
"""append msg to session, msg is recv from msg'sender (msg.sender => owner)"""
|
2023-08-20 22:53:35 -07:00
|
|
|
pass
|
|
|
|
|
|
2023-08-22 17:11:20 -07:00
|
|
|
def attach_event_handler(self,handler) -> None:
|
|
|
|
|
"""chat session changed event handler"""
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
#TODO : add iterator interface for read chat history
|
|
|
|
|
|
|
|
|
|
class ai_agent_templete:
|
|
|
|
|
def __init__(self) -> None:
|
|
|
|
|
pass
|
|
|
|
|
|
2023-08-20 22:53:35 -07:00
|
|
|
class ai_agent:
|
|
|
|
|
def __init__(self) -> None:
|
2023-08-22 17:11:20 -07:00
|
|
|
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
|
|
|
|
2023-08-22 17:11:20 -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:agent_msg) -> ai_chat_session:
|
2023-08-20 22:53:35 -07:00
|
|
|
pass
|
|
|
|
|
|
2023-08-22 17:11:20 -07:00
|
|
|
def get_chat_session(self,sender:str,session_id:str) -> ai_chat_session:
|
|
|
|
|
pass
|
2023-08-20 22:53:35 -07:00
|
|
|
|
2023-08-22 17:11:20 -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
|
|
|
|