|
"""Set up the AI and its goals""" |
|
from colorama import Fore, Style |
|
|
|
from autogpt import utils |
|
from autogpt.config.ai_config import AIConfig |
|
from autogpt.logs import logger |
|
|
|
|
|
def prompt_user() -> AIConfig: |
|
"""Prompt the user for input |
|
|
|
Returns: |
|
AIConfig: The AIConfig object containing the user's input |
|
""" |
|
ai_name = "" |
|
|
|
logger.typewriter_log( |
|
"Welcome to Auto-GPT! ", |
|
Fore.GREEN, |
|
"run with '--help' for more information.", |
|
speak_text=True, |
|
) |
|
|
|
logger.typewriter_log( |
|
"Create an AI-Assistant:", |
|
Fore.GREEN, |
|
"Enter the name of your AI and its role below. Entering nothing will load" |
|
" defaults.", |
|
speak_text=True, |
|
) |
|
|
|
|
|
logger.typewriter_log( |
|
"Name your AI: ", Fore.GREEN, "For example, 'Entrepreneur-GPT'" |
|
) |
|
ai_name = utils.clean_input("AI Name: ") |
|
if ai_name == "": |
|
ai_name = "Entrepreneur-GPT" |
|
|
|
logger.typewriter_log( |
|
f"{ai_name} here!", Fore.LIGHTBLUE_EX, "I am at your service.", speak_text=True |
|
) |
|
|
|
|
|
logger.typewriter_log( |
|
"Describe your AI's role: ", |
|
Fore.GREEN, |
|
"For example, 'an AI designed to autonomously develop and run businesses with" |
|
" the sole goal of increasing your net worth.'", |
|
) |
|
ai_role = utils.clean_input(f"{ai_name} is: ") |
|
if ai_role == "": |
|
ai_role = "an AI designed to autonomously develop and run businesses with the" |
|
" sole goal of increasing your net worth." |
|
|
|
|
|
logger.typewriter_log( |
|
"Enter up to 5 goals for your AI: ", |
|
Fore.GREEN, |
|
"For example: \nIncrease net worth, Grow Twitter Account, Develop and manage" |
|
" multiple businesses autonomously'", |
|
) |
|
print("Enter nothing to load defaults, enter nothing when finished.", flush=True) |
|
ai_goals = [] |
|
for i in range(5): |
|
ai_goal = utils.clean_input(f"{Fore.LIGHTBLUE_EX}Goal{Style.RESET_ALL} {i+1}: ") |
|
if ai_goal == "": |
|
break |
|
ai_goals.append(ai_goal) |
|
if not ai_goals: |
|
ai_goals = [ |
|
"Increase net worth", |
|
"Grow Twitter Account", |
|
"Develop and manage multiple businesses autonomously", |
|
] |
|
|
|
return AIConfig(ai_name, ai_role, ai_goals) |
|
|