steffenc commited on
Commit
ed93e10
unverified
2 Parent(s): 4e2f988 08e0703

Merge pull request #5 from macrocosm-os/features/api-model-data

Browse files
Files changed (2) hide show
  1. api.py +20 -0
  2. utils.py +5 -3
api.py CHANGED
@@ -126,6 +126,26 @@ def validator():
126
  utils.make_validator_dataframe(validator_df, model_data).to_dict(orient='records')
127
  )
128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
 
130
  if __name__ == '__main__':
131
 
 
126
  utils.make_validator_dataframe(validator_df, model_data).to_dict(orient='records')
127
  )
128
 
129
+ @app.route('/model-data', methods=['GET'])
130
+ def model_data():
131
+ """
132
+ Get the model data
133
+ Returns:
134
+ - model_data: List of dicts (from list of ModelData)
135
+ - winner_data: dict containing top earning miners
136
+ """
137
+ model_data = state_vars["model_data"]
138
+ winner_data = {
139
+ f"{c.namespace}/{c.name} ({c.commit[0:8]}) 路 (蟿{round(c.emission, 2):,})": c.incentive
140
+ for c in model_data
141
+ if c.incentive
142
+ }
143
+
144
+ return jsonify({
145
+ 'model_data': [md.to_dict() for md in model_data],
146
+ 'winner_data': winner_data
147
+ })
148
+
149
 
150
  if __name__ == '__main__':
151
 
utils.py CHANGED
@@ -14,7 +14,7 @@ import numpy as np
14
  import bittensor as bt
15
 
16
  from dotenv import load_dotenv
17
- from dataclasses import dataclass
18
  from typing import Dict, List, Any, Optional, Tuple
19
  from bittensor.extrinsics.serving import get_metadata
20
 
@@ -28,7 +28,7 @@ load_dotenv()
28
  WANDB_TOKEN = os.environ.get("WANDB_API_KEY", None)
29
  SUBTENSOR_ENDPOINT = os.environ.get("SUBTENSOR_ENDPOINT", None)
30
  VALIDATOR_WANDB_PROJECT = "opentensor-dev/pretraining-subnet"
31
- BENCHMARK_WANDB_PROJECT = "pretraining-benchmark-data"
32
  BENCHMARK_FLAG = os.environ.get("BENCHMARK_FLAG", None)
33
 
34
  @dataclass
@@ -66,7 +66,9 @@ class ModelData:
66
  incentive=incentive,
67
  emission=emission,
68
  )
69
-
 
 
70
 
71
  def run_with_retries(func, *args, **kwargs):
72
  for i in range(0, RETRIES):
 
14
  import bittensor as bt
15
 
16
  from dotenv import load_dotenv
17
+ from dataclasses import dataclass, asdict
18
  from typing import Dict, List, Any, Optional, Tuple
19
  from bittensor.extrinsics.serving import get_metadata
20
 
 
28
  WANDB_TOKEN = os.environ.get("WANDB_API_KEY", None)
29
  SUBTENSOR_ENDPOINT = os.environ.get("SUBTENSOR_ENDPOINT", None)
30
  VALIDATOR_WANDB_PROJECT = "opentensor-dev/pretraining-subnet"
31
+ BENCHMARK_WANDB_PROJECT = "steffenc/pretraining-benchmark-data"
32
  BENCHMARK_FLAG = os.environ.get("BENCHMARK_FLAG", None)
33
 
34
  @dataclass
 
66
  incentive=incentive,
67
  emission=emission,
68
  )
69
+
70
+ def to_dict(self):
71
+ return asdict(self)
72
 
73
  def run_with_retries(func, *args, **kwargs):
74
  for i in range(0, RETRIES):