from colorama import Fore from autogpt.api_manager import api_manager from autogpt.config.ai_config import AIConfig from autogpt.config.config import Config from autogpt.logs import logger from autogpt.prompts.generator import PromptGenerator from autogpt.setup import prompt_user from autogpt.utils import clean_input CFG = Config() def build_default_prompt_generator() -> PromptGenerator: """ This function generates a prompt string that includes various constraints, commands, resources, and performance evaluations. Returns: str: The generated prompt string. """ # Initialize the PromptGenerator object prompt_generator = PromptGenerator() # Add constraints to the PromptGenerator object prompt_generator.add_constraint( "~4000 word limit for short term memory. Your short term memory is short, so" " immediately save important information to files." ) prompt_generator.add_constraint( "If you are unsure how you previously did something or want to recall past" " events, thinking about similar events will help you remember." ) prompt_generator.add_constraint("No user assistance") prompt_generator.add_constraint( 'Exclusively use the commands listed in double quotes e.g. "command name"' ) # Define the command list commands = [ ("Do Nothing", "do_nothing", {}), ("Task Complete (Shutdown)", "task_complete", {"reason": ""}), ] # Add commands to the PromptGenerator object for command_label, command_name, args in commands: prompt_generator.add_command(command_label, command_name, args) # Add resources to the PromptGenerator object prompt_generator.add_resource( "Internet access for searches and information gathering." ) prompt_generator.add_resource("Long Term memory management.") prompt_generator.add_resource( "GPT-3.5 powered Agents for delegation of simple tasks." ) prompt_generator.add_resource("File output.") # Add performance evaluations to the PromptGenerator object prompt_generator.add_performance_evaluation( "Continuously review and analyze your actions to ensure you are performing to" " the best of your abilities." ) prompt_generator.add_performance_evaluation( "Constructively self-criticize your big-picture behavior constantly." ) prompt_generator.add_performance_evaluation( "Reflect on past decisions and strategies to refine your approach." ) prompt_generator.add_performance_evaluation( "Every command has a cost, so be smart and efficient. Aim to complete tasks in" " the least number of steps." ) prompt_generator.add_performance_evaluation("Write all code to a file.") return prompt_generator def construct_main_ai_config(input_kwargs) -> AIConfig: """Construct the prompt for the AI to respond to Returns: str: The prompt string """ if input_kwargs['role']: config = prompt_user(input_kwargs, True) # False 不使用引导 config.save(CFG.ai_settings_file) else: return None # set the total api budget api_manager.set_total_budget(config.api_budget) # Agent Created, print message logger.typewriter_log( config.ai_name, Fore.MAGENTA, "has been created with the following details:", speak_text=True, ) # Print the ai config details # Name logger.typewriter_log("Name:", Fore.GREEN, config.ai_name, speak_text=False) # Role logger.typewriter_log("Role:", Fore.GREEN, config.ai_role, speak_text=False) # Goals logger.typewriter_log("Goals:", Fore.GREEN, "", speak_text=False) for goal in config.ai_goals: logger.typewriter_log("-", Fore.GREEN, goal, speak_text=False) return config if __name__ == '__main__': ll = [] print(ll[-1])