AI_Diplomacy/experiments/analyze_sample.py
Tyler Marques a93a89f7cb
Bit of a cleanup
Moved all the files that don't need to be at top level to the
experiments folder.

Started using uv to init the project, should the install easier.
2025-06-23 09:18:20 -07:00

51 lines
No EOL
1.6 KiB
Python

#!/usr/bin/env python3
"""
Quick sample analysis of the first 10 phases
"""
import asyncio
import json
from analyze_game_moments import GameAnalyzer
async def main():
# Path to game file
game_path = "/Users/alxdfy/Documents/mldev/AI_Diplomacy/results/20250515_005239_francewin_25pro/lmvsgame.json"
# Initialize analyzer
analyzer = GameAnalyzer(game_path)
await analyzer.initialize()
# Analyze only first 10 phases
phases = analyzer.game_data.get("phases", [])[:10]
print(f"Analyzing first {len(phases)} phases...")
for i, phase_data in enumerate(phases):
phase_name = phase_data.get("name", f"Phase {i}")
print(f"Analyzing phase {phase_name} ({i+1}/{len(phases)})")
moments = await analyzer.analyze_turn(phase_data)
analyzer.moments.extend(moments)
# Small delay to avoid rate limiting
await asyncio.sleep(0.5)
# Sort moments by interest score
analyzer.moments.sort(key=lambda m: m.interest_score, reverse=True)
print(f"\nFound {len(analyzer.moments)} key moments")
# Generate report
analyzer.generate_report("sample_report.md")
analyzer.save_json_results("sample_moments.json")
# Show top 5 moments
print("\nTop 5 Most Interesting Moments:")
for i, moment in enumerate(analyzer.moments[:5], 1):
print(f"{i}. {moment.category} in {moment.phase} (Score: {moment.interest_score})")
print(f" Powers: {', '.join(moment.powers_involved)}")
print(f" {moment.promise_agreement[:100]}...")
print()
if __name__ == "__main__":
asyncio.run(main())