mirror of
https://github.com/aljazceru/Auto-GPT.git
synced 2025-12-17 14:04:27 +01:00
Auto-GPT-20230905085638
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
This commit is contained in:
committed by
Merwane Hamadi
parent
70941212e4
commit
45c15e370f
191
benchmark/backend/main.py
Normal file
191
benchmark/backend/main.py
Normal 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,
|
||||
}
|
||||
Reference in New Issue
Block a user