Spaces:
Sleeping
Sleeping
"""Main script for the autogpt package.""" | |
import click | |
def main( | |
ctx: click.Context, | |
continuous: bool, | |
continuous_limit: int, | |
ai_settings: str, | |
skip_reprompt: bool, | |
speak: bool, | |
debug: bool, | |
gpt3only: bool, | |
gpt4only: bool, | |
memory_type: str, | |
browser_name: str, | |
allow_downloads: bool, | |
skip_news: bool, | |
) -> None: | |
""" | |
Welcome to AutoGPT an experimental open-source application showcasing the capabilities of the GPT-4 pushing the boundaries of AI. | |
Start an Auto-GPT assistant. | |
""" | |
# Put imports inside function to avoid importing everything when starting the CLI | |
import logging | |
from colorama import Fore | |
from autogpt.agent.agent import Agent | |
from autogpt.config import Config, check_openai_api_key | |
from autogpt.configurator import create_config | |
from autogpt.logs import logger | |
from autogpt.memory import get_memory | |
from autogpt.prompt import construct_prompt | |
from autogpt.utils import get_current_git_branch, get_latest_bulletin | |
if ctx.invoked_subcommand is None: | |
cfg = Config() | |
# TODO: fill in llm values here | |
check_openai_api_key() | |
create_config( | |
continuous, | |
continuous_limit, | |
ai_settings, | |
skip_reprompt, | |
speak, | |
debug, | |
gpt3only, | |
gpt4only, | |
memory_type, | |
browser_name, | |
allow_downloads, | |
skip_news, | |
) | |
logger.set_level(logging.DEBUG if cfg.debug_mode else logging.INFO) | |
ai_name = "" | |
if not cfg.skip_news: | |
motd = get_latest_bulletin() | |
if motd: | |
logger.typewriter_log("NEWS: ", Fore.GREEN, motd) | |
git_branch = get_current_git_branch() | |
if git_branch and git_branch != "stable": | |
logger.typewriter_log( | |
"WARNING: ", | |
Fore.RED, | |
f"You are running on `{git_branch}` branch " | |
"- this is not a supported branch.", | |
) | |
system_prompt = construct_prompt() | |
# print(prompt) | |
# Initialize variables | |
full_message_history = [] | |
next_action_count = 0 | |
# Make a constant: | |
triggering_prompt = ( | |
"Determine which next command to use, and respond using the" | |
" format specified above:" | |
) | |
# Initialize memory and make sure it is empty. | |
# this is particularly important for indexing and referencing pinecone memory | |
memory = get_memory(cfg, init=True) | |
logger.typewriter_log( | |
"Using memory of type:", Fore.GREEN, f"{memory.__class__.__name__}" | |
) | |
logger.typewriter_log("Using Browser:", Fore.GREEN, cfg.selenium_web_browser) | |
agent = Agent( | |
ai_name=ai_name, | |
memory=memory, | |
full_message_history=full_message_history, | |
next_action_count=next_action_count, | |
system_prompt=system_prompt, | |
triggering_prompt=triggering_prompt, | |
) | |
agent.start_interaction_loop() | |
if __name__ == "__main__": | |
main() | |