OperationcodeCreatorAgent2:ソースコード:flow:FlowProcessAIAgent.py

from flow.FlowBase import FlowBase
from Agents.AIAgent import AIAgent
from Agents.FunctionCreatorAgent import FunctionCreatorAgent
from Agents.FunctionExecuterAgent import FunctionExecuterAgent
#from Agents.OperationcodeCreatorAgent import OperationcodeCreatorAgent
from Agents.PythonTestProgramerAgent import PythonTestProgramerAgent
from Agents.PythonProgramerAgent import PythonProgramerAgent
from Agents.WebSerchAgent import WebSerchAgent
from tools.command_list import get_tool_list


class FlowProcessAIAgent(FlowBase):
    def __init__(self, name, prompt):
        super().__init__()
        self.set_category("flow")
        self.set_type("process")
        self.agent = self.get_ai_agent(name)
        self.prompt = prompt
        self.name = name

    def get_ai_agent(self, name):
        if "なし" == name:
            return AIAgent("None", "", get_tool_list())
        if "WebSerchAgent" == name:
            return WebSerchAgent()
        if "PythonProgramerAgent" == name:
            return PythonProgramerAgent()
        if "PythonTestProgramerAgent" == name:
            return PythonTestProgramerAgent()
#        if "OperationcodeCreator" == name:
#            return OperationcodeCreatorAgent()
        if "FunctionCreatorAgent" == name:
            return FunctionCreatorAgent()
        if "FunctionExecuterAgent" == name:
            return FunctionExecuterAgent()
        return AIAgent(name, "", get_tool_list())

    def run(self, command="", pre_respons=None, flow_data=None):
        data = f"""
------------大元の指示----------
        {command}
-------今回の指示---------------
        {self.prompt}
-----------------------------
        """
        print("FlowProcessAIAgent.run:", data)
        print("agent_name:", self.agent.get_name())
        if "User" == self.agent.get_name():
            return "return", pre_respons
        respons = self.agent.get_respons(data)
        print("agent_name respons\r\n:", respons)
        print(f"--------endof {self.agent.get_name()}----------------------", )
        return "", respons

    def append_prompt(self, text):
        self.prompt += "\r\n" + text