Huggingansuman's picture
Upload red_teaming_env Space files
410276d verified
"""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()