118 lines
3.9 KiB
Python
118 lines
3.9 KiB
Python
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": "<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]) |