mirror of
https://github.com/aljazceru/Auto-GPT.git
synced 2025-12-26 18:34:23 +01:00
* Update Python version and benchmark file in benchmark.yml * Refactor main function and imports in cli.py * Update import statement in ai_config.py * Add set_temperature and set_memory_backend methods in config.py * Remove unused import in prompt.py * Add goal oriented tasks workflow * Added agent_utils to create agent * added pytest and vcrpy * added write file cassette * created goal oriented task write file with cassettes to not pay openai tokens * solve conflicts * add ability set azure because github workflow needs it off * solve conflicts in cli.py * black because linter fails * solve conflict * setup github action to v3 Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com> * fix conflicts Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com> * Plugins: debug line always printed in plugin load * add decorator to tests Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com> * move decorator higher up Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com> * init * more tests * passing tests * skip gitbranch decorator on ci * decorator skiponci * black * Update tests/utils.py decorator of skipping ci Co-authored-by: Nicholas Tindle <nicktindle@outlook.com> * black * I oopsed the name * black * finally * black * wrong file --------- Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com> Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com> Co-authored-by: Merwane Hamadi <merwane.hamadi@redica.com> Co-authored-by: Richard Beales <rich@richbeales.net> Co-authored-by: Nicholas Tindle <nick@ntindle.com> Co-authored-by: BillSchumacher <34168009+BillSchumacher@users.noreply.github.com> Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
86 lines
2.3 KiB
Python
86 lines
2.3 KiB
Python
import os
|
|
|
|
import requests
|
|
import yaml
|
|
from colorama import Fore
|
|
from git.repo import Repo
|
|
|
|
# Use readline if available (for clean_input)
|
|
try:
|
|
import readline
|
|
except:
|
|
pass
|
|
|
|
|
|
def clean_input(prompt: str = ""):
|
|
try:
|
|
return input(prompt)
|
|
except KeyboardInterrupt:
|
|
print("You interrupted Auto-GPT")
|
|
print("Quitting...")
|
|
exit(0)
|
|
|
|
|
|
def validate_yaml_file(file: str):
|
|
try:
|
|
with open(file, encoding="utf-8") as fp:
|
|
yaml.load(fp.read(), Loader=yaml.FullLoader)
|
|
except FileNotFoundError:
|
|
return (False, f"The file {Fore.CYAN}`{file}`{Fore.RESET} wasn't found")
|
|
except yaml.YAMLError as e:
|
|
return (
|
|
False,
|
|
f"There was an issue while trying to read with your AI Settings file: {e}",
|
|
)
|
|
|
|
return (True, f"Successfully validated {Fore.CYAN}`{file}`{Fore.RESET}!")
|
|
|
|
|
|
def readable_file_size(size, decimal_places=2):
|
|
"""Converts the given size in bytes to a readable format.
|
|
Args:
|
|
size: Size in bytes
|
|
decimal_places (int): Number of decimal places to display
|
|
"""
|
|
for unit in ["B", "KB", "MB", "GB", "TB"]:
|
|
if size < 1024.0:
|
|
break
|
|
size /= 1024.0
|
|
return f"{size:.{decimal_places}f} {unit}"
|
|
|
|
|
|
def get_bulletin_from_web():
|
|
try:
|
|
response = requests.get(
|
|
"https://raw.githubusercontent.com/Significant-Gravitas/Auto-GPT/master/BULLETIN.md"
|
|
)
|
|
if response.status_code == 200:
|
|
return response.text
|
|
except requests.exceptions.RequestException:
|
|
pass
|
|
|
|
return ""
|
|
|
|
|
|
def get_current_git_branch() -> str:
|
|
try:
|
|
repo = Repo(search_parent_directories=True)
|
|
branch = repo.active_branch
|
|
return branch.name
|
|
except:
|
|
return ""
|
|
|
|
|
|
def get_latest_bulletin() -> str:
|
|
exists = os.path.exists("CURRENT_BULLETIN.md")
|
|
current_bulletin = ""
|
|
if exists:
|
|
current_bulletin = open("CURRENT_BULLETIN.md", "r", encoding="utf-8").read()
|
|
new_bulletin = get_bulletin_from_web()
|
|
is_new_news = new_bulletin != current_bulletin
|
|
|
|
if new_bulletin and is_new_news:
|
|
open("CURRENT_BULLETIN.md", "w", encoding="utf-8").write(new_bulletin)
|
|
return f" {Fore.RED}::UPDATED:: {Fore.CYAN}{new_bulletin}{Fore.RESET}"
|
|
return current_bulletin
|