Spaces:
Running
Running
| """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() | |