2023-04-11 16:09:59 +00:00
from promptgenerator import PromptGenerator
2023-04-13 18:36:48 +00:00
2023-04-11 16:09:59 +00:00
def get_prompt ( ) :
2023-04-11 16:15:45 +00:00
"""
This function generates a prompt string that includes various constraints , commands , resources , and performance evaluations .
2023-04-13 18:36:48 +00:00
2023-04-11 16:15:45 +00:00
Returns :
str : The generated prompt string .
"""
# Initialize the PromptGenerator object
2023-04-11 16:09:59 +00:00
prompt_generator = PromptGenerator ( )
2023-04-11 16:15:45 +00:00
# Add constraints to the PromptGenerator object
2023-04-11 16:21:20 +00:00
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. " )
2023-04-11 16:09:59 +00:00
prompt_generator . add_constraint ( " No user assistance " )
2023-04-11 16:21:20 +00:00
prompt_generator . add_constraint ( ' Exclusively use the commands listed in double quotes e.g. " command name " ' )
2023-04-11 16:09:59 +00:00
2023-04-11 16:15:45 +00:00
# Define the command list
2023-04-11 16:09:59 +00:00
commands = [
( " Google Search " , " google " , { " input " : " <search> " } ) ,
2023-04-11 16:21:20 +00:00
( " Browse Website " , " browse_website " , { " url " : " <url> " , " question " : " <what_you_want_to_find_on_website> " } ) ,
( " Start GPT Agent " , " start_agent " , { " name " : " <name> " , " task " : " <short_task_desc> " , " prompt " : " <prompt> " } ) ,
( " Message GPT Agent " , " message_agent " , { " key " : " <key> " , " message " : " <message> " } ) ,
2023-04-11 16:09:59 +00:00
( " List GPT Agents " , " list_agents " , { } ) ,
( " Delete GPT Agent " , " delete_agent " , { " key " : " <key> " } ) ,
2023-04-11 16:21:20 +00:00
( " Write to file " , " write_to_file " , { " file " : " <file> " , " text " : " <text> " } ) ,
2023-04-11 16:09:59 +00:00
( " Read file " , " read_file " , { " file " : " <file> " } ) ,
2023-04-11 16:21:20 +00:00
( " Append to file " , " append_to_file " , { " file " : " <file> " , " text " : " <text> " } ) ,
2023-04-11 16:09:59 +00:00
( " Delete file " , " delete_file " , { " file " : " <file> " } ) ,
( " Search Files " , " search_files " , { " directory " : " <directory> " } ) ,
( " Evaluate Code " , " evaluate_code " , { " code " : " <full_code_string> " } ) ,
2023-04-11 16:21:20 +00:00
( " Get Improved Code " , " improve_code " , { " suggestions " : " <list_of_suggestions> " , " code " : " <full_code_string> " } ) ,
( " Write Tests " , " write_tests " , { " code " : " <full_code_string> " , " focus " : " <list_of_focus_areas> " } ) ,
2023-04-11 16:09:59 +00:00
( " Execute Python File " , " execute_python_file " , { " file " : " <file> " } ) ,
2023-04-13 14:56:56 +00:00
( " Execute Shell Command, non-interactive commands only " , " execute_shell " , { " command_line " : " <command_line> " } ) ,
2023-04-11 16:09:59 +00:00
( " Task Complete (Shutdown) " , " task_complete " , { " reason " : " <reason> " } ) ,
( " Generate Image " , " generate_image " , { " prompt " : " <prompt> " } ) ,
( " Do Nothing " , " do_nothing " , { } ) ,
]
2023-04-11 16:15:45 +00:00
# Add commands to the PromptGenerator object
2023-04-11 16:09:59 +00:00
for command_label , command_name , args in commands :
prompt_generator . add_command ( command_label , command_name , args )
2023-04-11 16:15:45 +00:00
# Add resources to the PromptGenerator object
2023-04-11 16:21:20 +00:00
prompt_generator . add_resource ( " Internet access for searches and information gathering. " )
2023-04-11 16:09:59 +00:00
prompt_generator . add_resource ( " Long Term memory management. " )
2023-04-11 16:21:20 +00:00
prompt_generator . add_resource ( " GPT-3.5 powered Agents for delegation of simple tasks. " )
2023-04-11 16:09:59 +00:00
prompt_generator . add_resource ( " File output. " )
2023-04-11 16:15:45 +00:00
# Add performance evaluations to the PromptGenerator object
2023-04-11 16:21:20 +00:00
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. " )
2023-04-11 16:09:59 +00:00
2023-04-11 16:15:45 +00:00
# Generate the prompt string
2023-04-11 16:09:59 +00:00
prompt_string = prompt_generator . generate_prompt_string ( )
2023-04-13 18:36:48 +00:00
2023-04-11 16:09:59 +00:00
return prompt_string