Auto-GPT-20230905085638

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
This commit is contained in:
Auto-GPT-Bot
2023-09-05 08:56:38 +00:00
committed by Merwane Hamadi
parent 70941212e4
commit 45c15e370f
1955 changed files with 7369 additions and 77 deletions

191
benchmark/backend/main.py Normal file
View File

@@ -0,0 +1,191 @@
import ast
import json
import os
import subprocess
import sys
from importlib import reload
from typing import Any
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from fastapi import FastAPI, Query
from fastapi.middleware.cors import CORSMiddleware
from agbenchmark.utils.utils import find_absolute_benchmark_path
app = FastAPI()
origins = ["http://localhost:3000"]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Change the current working directory to the benchmark path
home_path = find_absolute_benchmark_path()
os.chdir(home_path)
general_command = ["poetry", "run", "agbenchmark", "start", "--backend"]
@app.get("/run_single_test")
def run_single_test(
test: str = Query(...),
mock: bool = Query(False),
nc: bool = Query(False),
cutoff: int = Query(None),
) -> Any:
command = list(general_command) # Make a copy of the general command
# Always add the --test flag, since test is a required parameter
command.extend(["--test", test])
# Conditionally add other flags
if mock:
command.append("--mock")
if nc:
command.extend(["--nc", str(nc)])
if cutoff is not None:
command.extend(["--cutoff", str(cutoff)])
print(f"Running command: {' '.join(command)}") # Debug print
result = subprocess.run(command, capture_output=True, text=True)
stdout_dict = ast.literal_eval(result.stdout)
return {
"returncode": result.returncode,
"stdout": json.dumps(stdout_dict),
"stderr": result.stderr,
}
@app.get("/run_suite")
def run_suite(
suite: str = Query(...),
mock: bool = Query(False),
nc: bool = Query(False),
cutoff: int = Query(None),
) -> Any:
command = list(general_command) # Make a copy of the general command
# Always add the --test flag, since test is a required parameter
command.extend(["--suite", suite])
# Conditionally add other flags
if mock:
command.append("--mock")
if nc:
command.extend(["--nc", str(nc)])
if cutoff is not None:
command.extend(["--cutoff", str(cutoff)])
print(f"Running command: {' '.join(command)}") # Debug print
result = subprocess.run(command, capture_output=True, text=True)
stdout_dict = ast.literal_eval(result.stdout)
return {
"returncode": result.returncode,
"stdout": json.dumps(stdout_dict),
"stderr": result.stderr,
}
@app.get("/run_by_category")
def run_by_category(
category: list[str] = Query(...), # required
mock: bool = Query(False),
nc: bool = Query(False),
cutoff: int = Query(None),
) -> Any:
command = list(general_command) # Make a copy of the general command
# Always add the --test flag, since test is a required parameter
command.extend(["--category", *category])
# Conditionally add other flags
if mock:
command.append("--mock")
if nc:
command.extend(["--nc", str(nc)])
if cutoff is not None:
command.extend(["--cutoff", str(cutoff)])
print(f"Running command: {' '.join(command)}") # Debug print
result = subprocess.run(command, capture_output=True, text=True)
stdout_dict = ast.literal_eval(result.stdout)
return {
"returncode": result.returncode,
"stdout": json.dumps(stdout_dict),
"stderr": result.stderr,
}
@app.get("/run")
def run(
maintain: bool = Query(False),
improve: bool = Query(False),
explore: bool = Query(False),
mock: bool = Query(False),
no_dep: bool = Query(False),
nc: bool = Query(False),
category: list[str] = Query(None),
skip_category: list[str] = Query(None),
test: str = Query(None),
suite: str = Query(None),
cutoff: int = Query(None),
) -> Any:
command = list(general_command) # Make a copy of the general command
# Conditionally add other flags
if mock:
command.append("--mock")
if nc:
command.extend(["--nc", str(nc)])
if cutoff is not None:
command.extend(["--cutoff", str(cutoff)])
if maintain:
command.append("--maintain")
if improve:
command.append("--improve")
if explore:
command.append("--explore")
if no_dep:
command.append("--no_dep")
if category:
for cat in category:
command.extend(["-c", cat])
if skip_category:
for skip_cat in skip_category:
command.extend(["-s", skip_cat])
if test:
command.extend(["--test", test])
if suite:
command.extend(["--suite", suite])
print(f"Running command: {' '.join(command)}") # Debug print
result = subprocess.run(command, capture_output=True, text=True)
stdout_dict = ast.literal_eval(result.stdout)
return {
"returncode": result.returncode,
"stdout": json.dumps(stdout_dict),
"stderr": result.stderr,
}