Spaces:
Sleeping
Sleeping
Commit ·
e4d4c65
1
Parent(s): d289b48
feat(environment): implement reset() — zeros state and generates new episode_id
Browse files- server/environment.py +20 -0
server/environment.py
CHANGED
|
@@ -31,3 +31,23 @@ class RedTeamEnvironment:
|
|
| 31 |
def set_llm_pipeline(self, pipeline_fn: Callable) -> None:
|
| 32 |
self.llm_pipeline = pipeline_fn
|
| 33 |
logger.info("LLM pipeline wired up (Person 3)")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
def set_llm_pipeline(self, pipeline_fn: Callable) -> None:
|
| 32 |
self.llm_pipeline = pipeline_fn
|
| 33 |
logger.info("LLM pipeline wired up (Person 3)")
|
| 34 |
+
|
| 35 |
+
async def reset(self) -> RedTeamObservation:
|
| 36 |
+
self.turn = 0
|
| 37 |
+
self.attack_history = []
|
| 38 |
+
self.episode_id = f"ep_{uuid.uuid4().hex[:12]}"
|
| 39 |
+
self.is_active = True
|
| 40 |
+
self.created_at = datetime.utcnow()
|
| 41 |
+
|
| 42 |
+
logger.info(f"Episode started: {self.episode_id}")
|
| 43 |
+
|
| 44 |
+
return RedTeamObservation(
|
| 45 |
+
defender_response = "Defender initialised. Ready for red-team evaluation.",
|
| 46 |
+
defense_score = 1.0,
|
| 47 |
+
attack_success_estimate = 0.0,
|
| 48 |
+
novelty_score = 1.0,
|
| 49 |
+
turn = 0,
|
| 50 |
+
episode_done = False,
|
| 51 |
+
feedback = "Episode started. Begin your attack strategies.",
|
| 52 |
+
episode_id = self.episode_id,
|
| 53 |
+
)
|