Spaces:
Running
Running
File size: 1,571 Bytes
410276d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | """FastAPI application wiring for RedTeamEnv."""
from __future__ import annotations
import os
try:
from openenv.core.env_server.http_server import create_app
from openenv.core.env_server import web_interface as openenv_web_interface
except Exception as exc: # pragma: no cover
raise ImportError(
"openenv-core is required for the RedTeamEnv server. "
"Install dependencies with `uv sync` inside red_teaming_env/`."
) from exc
try:
from ..env_config import load_env_file
from ..models import RedTeamAction, RedTeamObservation
from .environment import RedTeamingEnvironment
from .ui import CUSTOM_CSS, build_redteam_gradio_app
except ImportError: # pragma: no cover
from env_config import load_env_file
from models import RedTeamAction, RedTeamObservation
from server.environment import RedTeamingEnvironment
from server.ui import CUSTOM_CSS, build_redteam_gradio_app
load_env_file()
os.environ.setdefault("ENABLE_WEB_INTERFACE", "1")
openenv_web_interface.build_gradio_app = build_redteam_gradio_app
if CUSTOM_CSS not in openenv_web_interface.OPENENV_GRADIO_CSS:
openenv_web_interface.OPENENV_GRADIO_CSS = (
f"{openenv_web_interface.OPENENV_GRADIO_CSS}\n{CUSTOM_CSS}"
)
app = create_app(
RedTeamingEnvironment,
RedTeamAction,
RedTeamObservation,
env_name="red_teaming_env",
max_concurrent_envs=20,
)
def main(host: str = "0.0.0.0", port: int = 8000) -> None:
import uvicorn
uvicorn.run(app, host=host, port=port)
if __name__ == "__main__":
main()
|