Spaces:
Sleeping
Sleeping
| #!/usr/bin/env python3 | |
| """Demo for AI Response Evaluation Environment.""" | |
| import asyncio | |
| from code_assessment_env import CodeAssessmentAction, CodeAssessmentEnv | |
| async def demo_local(): | |
| print("=" * 60) | |
| print("DEMO: AI Response Evaluation Environment") | |
| print("=" * 60) | |
| env = await CodeAssessmentEnv.from_docker_image("code_assessment_env:latest") | |
| try: | |
| result = await env.reset() | |
| obs = result.observation | |
| print(f"\nTask: {obs.task_type} | Difficulty: {obs.difficulty}") | |
| if obs.user_age: | |
| print(f"User: age={obs.user_age}, mood={obs.user_mood}, context={obs.user_context}") | |
| print(f"\nScenario:\n{obs.test_case_input}") | |
| demo_answers = [ | |
| "incorrect, factual-error", | |
| "correct, none", | |
| "incorrect, instruction-violation", | |
| "partially-correct, factual-error", | |
| "needs-adjustment, too-technical, age-inappropriate", | |
| "inappropriate, insensitive, tone-mismatch", | |
| "correctness=7, tone=2, empathy=1, safety=7", | |
| "correctness=9, tone=10, empathy=7, safety=10", | |
| ] | |
| for step in range(1, 8): | |
| answer = demo_answers[step - 1] if step <= len(demo_answers) else "unknown" | |
| result = await env.step(CodeAssessmentAction(answer=answer)) | |
| obs = result.observation | |
| print(f"\n{'=' * 60}") | |
| print(f"Step {step}: '{answer}'") | |
| print(f" Correct: {'Y' if obs.is_correct else 'N'} | Credit: {obs.partial_credit:.2f} | Reward: {result.reward:.2f}") | |
| print(f" Feedback: {obs.feedback[:120]}") | |
| print(f" Solved: {obs.problems_solved} | Streak: {obs.current_streak}") | |
| if result.done: | |
| break | |
| print(f"\n Next: {obs.task_type} ({obs.difficulty})") | |
| if obs.user_age: | |
| print(f" User: age={obs.user_age}, mood={obs.user_mood}, context={obs.user_context}") | |
| finally: | |
| await env.close() | |
| print("\nDemo complete.\n") | |
| async def demo_remote(): | |
| print("=" * 60) | |
| print("DEMO: Remote HF Space") | |
| print("=" * 60) | |
| env = CodeAssessmentEnv(base_url="https://TulasiSankar-code-assessment-env.hf.space") | |
| try: | |
| result = await env.reset() | |
| obs = result.observation | |
| print(f"\nTask: {obs.task_type} | Difficulty: {obs.difficulty}") | |
| result = await env.step(CodeAssessmentAction(answer="incorrect, factual-error")) | |
| obs = result.observation | |
| print(f"Correct: {'Y' if obs.is_correct else 'N'} | Reward: {result.reward:.2f}") | |
| print(f"Feedback: {obs.feedback}") | |
| finally: | |
| await env.close() | |
| print("\nRemote demo complete.\n") | |
| async def main(): | |
| import sys | |
| mode = sys.argv[1] if len(sys.argv) > 1 else "local" | |
| if mode == "local": | |
| await demo_local() | |
| elif mode == "remote": | |
| await demo_remote() | |
| else: | |
| print("Usage: python demo.py [local|remote]") | |
| if __name__ == "__main__": | |
| asyncio.run(main()) | |