EmotionalBehaviorAgentの入り口:ソースコード:main.py


import os
import streamlit as st
from langchain_community.callbacks import StreamlitCallbackHandler

# custom tools
from tools.command_list import set_work_space
from tools.command_list import load_ai_agent_name_list
from tools.command_list import get_ai_agent
from tools.command_list import get_tool_list
from tools.command_list import get_next_agent
import tools.command_list 
import tools.fllow_controller
from tools.AIAgent import AIAgent

from tools.EmotionalBehaviorAgent import EmotionalBehaviorAgent

import msvcrt
################################################
##########################################################
def init_page():
    st.set_page_config(
        page_title="In front of AGI start gate.",
        page_icon=""
    )
    st.header("In front of AGI start gate.")
    st.sidebar.title("Options")


def init_messages(ai_agent):
    clear_button = st.sidebar.button("Clear Conversation", key="clear")
    if clear_button or "messages" not in st.session_state:
        st.session_state.messages = [
            {"role": "assistant", "content": "入力してください。"}
        ]
        ai_agent.clear_memory()


def create_ai_agent(name, private_memory=False):
    if "EmotionalBehavior" == name:
        return EmotionalBehaviorAgent()
    return AIAgent(name, "", get_tool_list())


def cange_agent(agent, name):
    agent.update_system_prompt(get_ai_agent(name))


def think_agent(ai_agent, name, prompt):
    tools.command_list.g_time_keeper.wait()
    # AIエージェントの思考
    print("think_agent name", name, prompt)
    with st.chat_message(name):
        # コールバック関数の設定 (エージェントの動作の可視化用)
        st_cb = StreamlitCallbackHandler(
            st.container(), expand_new_thoughts=True)
        # エージェントを実行
        response = ai_agent.get_respons(prompt)
        st.write(response)
        print("response", response)
    return response




def main():
    loop_count_max = 6
    loop_count = 0
    now_agent_name = "EmotionalBehavior"
    
    load_ai_agent_name_list()
    ai_agent = create_ai_agent(now_agent_name)

    init_page()
    init_messages(ai_agent)
    set_work_space(os.getcwd())
    for msg in st.session_state['memory'].chat_memory.messages:
        st.chat_message(msg.type).write(msg.content)
    # セッション状態に値がある場合のみテキスト入力欄を表示
    while True:
        think_agent(ai_agent, "now_agent_name","")
    print("end_of_main")
if __name__ == '__main__':
    main()