| """Integration tests for multi-turn adversarial interaction loop.""" | |
| from aegis.configs.dataclasses import ModelConfig, EvidenceConfig | |
| from aegis.environment.interaction import InteractionManager | |
| from aegis.models.adversary import Adversary | |
| from aegis.models.evidence_extractor import EvidenceExtractor | |
| from aegis.models.judge import Judge | |
| from aegis.models.nli_model import NliModel | |
| from aegis.models.verifier import MathVerifier | |
| from aegis.rewards.reward_composer import RewardComposer | |
| def test_interaction_loop_mock(): | |
| # Setup mock models | |
| judge = Judge(ModelConfig(is_mock=True)) | |
| adversary = Adversary(ModelConfig(is_mock=True)) | |
| extractor = EvidenceExtractor(EvidenceConfig(is_mock=True)) | |
| nli = NliModel(EvidenceConfig(is_mock=True), extractor=extractor) | |
| verifier = MathVerifier() | |
| reward_composer = RewardComposer(nli_model=nli) | |
| manager = InteractionManager( | |
| evidence_model=nli, | |
| verifier=verifier, | |
| horizon=3, | |
| ) | |
| x = "Solve: 10 + 8" | |
| y = "18" | |
| episode = manager.run_episode( | |
| x=x, | |
| ground_truth_y=y, | |
| judge=judge, | |
| adversary=adversary, | |
| reward_composer=reward_composer, | |
| ) | |
| assert len(episode.responses) == 4 # [r_0, r_1, r_2, r_3] | |
| assert len(episode.verdicts) == 4 | |
| assert len(episode.pressures) == 3 # [u_1, u_2, u_3] | |
| assert len(episode.judge_rewards) == 3 | |
| assert len(episode.adversary_rewards) == 3 | |
| assert len(episode.outcome_states) == 3 | |
| assert len(episode.evidence_states) == 4 | |
Xet Storage Details
- Size:
- 1.53 kB
- Xet hash:
- e9c96da17304bdfee500539ba8883daee4ed3c285639ea838c4989fea9eafd6a
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.