Skip to content

Commit c0cc56f

Browse files
authored
Merge pull request #142 from web-genie-ai/feat/increase-task-count
Feat/increase task count
2 parents 2160b79 + 7d87029 commit c0cc56f

File tree

6 files changed

+29
-54
lines changed

6 files changed

+29
-54
lines changed

neurons/validators/genie_validator.py

Lines changed: 21 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,7 @@
2828
SeoChallenge,
2929
BalancedChallenge,
3030
)
31-
from webgenie.datasets.central_dataset import (
32-
CentralDataset,
33-
)
31+
from webgenie.datasets import CentralDataset
3432
from webgenie.helpers.htmls import preprocess_html, is_valid_resources
3533
from webgenie.helpers.images import image_debug_str
3634
from webgenie.helpers.llms import set_seed
@@ -277,7 +275,7 @@ async def synthensize_task(self, session:int, task_number:int):
277275
weights=[weight for _, weight in self.task_generators],
278276
)[0]
279277

280-
task, synapse = await task_generator.generate_task(session, task_number)
278+
task, synapse = await task_generator.generate_task(session=session, task_number=task_number)
281279
with self.lock:
282280
self.synthetic_tasks.append((task, synapse))
283281

@@ -286,69 +284,44 @@ async def synthensize_task(self, session:int, task_number:int):
286284
bt.logging.error(f"Error in synthensize_task: {e}")
287285
raise e
288286

289-
def get_seed(self, session: int, task_index: int, hash_cache: dict = {}) -> int:
290-
try:
291-
method = "GET"
292-
url = "http://209.126.9.130:18000/api/v1/task/seed"
293-
response = requests.request(method, url, params={"session": session, "task_number": task_index})
294-
if response.status_code == 200:
295-
response_json = response.json()
296-
success = response_json["success"]
297-
if not success:
298-
raise Exception(f"Failed to get seed from API: {seed}")
299-
300-
seed = response_json["seed"], response_json["task_id_seed"]
301-
302-
if seed is None:
303-
raise Exception(f"Seed is None")
304-
return seed
305-
else:
306-
raise Exception(f"Failed to get seed from API: {response.status_code}")
307-
308-
except Exception as e:
309-
raise e
310-
311-
# if session not in hash_cache:
312-
# session_start_block = session * SESSION_WINDOW_BLOCKS
313-
# subtensor = self.neuron.subtensor
314-
# block_hash = subtensor.get_block_hash(session_start_block)
315-
# hash_cache[session] = int(block_hash[-15:], 16)
316-
# return int(hash_cache[session] + task_index)
287+
def get_seed(self, session: int, task_number: int, hash_cache: dict = {}) -> int:
288+
if session not in hash_cache:
289+
session_start_block = session * SESSION_WINDOW_BLOCKS
290+
subtensor = self.neuron.subtensor
291+
block_hash = subtensor.get_block_hash(session_start_block)
292+
hash_cache[session] = int(block_hash[-15:], 16)
293+
return int(hash_cache[session] + task_number)
317294

318295
async def forward(self):
319296
try:
320297
with self.lock:
321298
session = self.neuron.session
322299
if self.neuron.score_manager.current_session != session:
323-
task_index = 0
300+
task_number = 0
324301
else:
325-
task_index = self.neuron.score_manager.number_of_tasks
302+
task_number = self.neuron.score_manager.number_of_tasks
326303

327-
session = int(session)
328-
task_index = int(task_index)
329-
330-
if task_index >= MAX_NUMBER_OF_TASKS_PER_SESSION:
304+
if task_number >= MAX_NUMBER_OF_TASKS_PER_SESSION:
331305
return
332306

307+
bt.logging.info(f"Forwarding task #{task_number} in session #{session}")
308+
# seed = self.get_seed(session, task_number)
333309

334-
bt.logging.info(f"Forwarding task #{task_index} in session #{session}")
335-
#seed, task_id_seed = self.get_seed(session, task_index)
336-
337-
#bt.logging.info(f"Random seed: {seed} | task_id_seed: {task_id_seed}")
338-
#random.seed(seed)
339-
#set_seed(seed)
310+
# bt.logging.info(f"Init random with seed: {seed}")
311+
# random.seed(seed)
312+
# set_seed(seed)
340313

341314
try:
342-
await self.synthensize_task(session, task_index)
315+
await self.synthensize_task(session, task_number)
343316
task, synapse = self.synthetic_tasks[-1]
344-
task.task_id = f"{session}_{task_index}"
317+
task.task_id = f"{session}_{task_number}"
345318
synapse.task_id = task.task_id
346319
except Exception as e:
347320
bt.logging.error(
348321
f"Error in synthensize_task: {e}"
322+
f"Retrying..."
349323
)
350-
return
351-
324+
352325
await self.query_miners()
353326
await self.score()
354327
except Exception as e:

neurons/validators/validator.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ def set_weights(self):
148148

149149
self.print_weights(raw_weights)
150150

151+
return
151152
with self.lock:
152153
# Process the raw weights to final_weights via subtensor limitations.
153154
(

webgenie/constants.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
import psutil
44
# Change this value when updating your code base.
55
# Define the version of the webgenie.
6-
7-
__VERSION__ = "1.1.30" # version
6+
__VERSION__ = "1.2.0" # version
87

98
SPEC_VERSION = (
109
(1000 * int(__VERSION__.split(".")[0]))

webgenie/datasets/central_dataset.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@ def __init__(self):
1818
async def generate_context(self) -> DatasetEntry:
1919
pass
2020

21-
async def generate_context(self, session:int, task_number:int)->DatasetEntry:
21+
async def generate_context(self, **kwargs)->DatasetEntry:
2222
try:
2323
bt.logging.info("Generating Central context")
24+
session = kwargs.get("session")
25+
task_number = kwargs.get("task_number")
2426
html = self.get_html(session, task_number)
2527
return DatasetEntry(
2628
src="central",

webgenie/tasks/image_task_generator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ def __init__(self):
4949
QUALITY_METRIC_NAME: QualityReward(),
5050
}
5151

52-
async def generate_task(self) -> Tuple[Task, bt.Synapse]:
52+
async def generate_task(self, **kwargs) -> Tuple[Task, bt.Synapse]:
5353
bt.logging.info("Generating Image task")
5454

5555
dataset, _ = random.choices(self.datasets, weights=[weight for _, weight in self.datasets])[0]
56-
dataset_entry = await dataset.generate_context()
56+
dataset_entry = await dataset.generate_context(**kwargs)
5757
bt.logging.debug(f"Generated dataset entry: {dataset_entry.url}")
5858

5959
ground_truth_html = preprocess_html(dataset_entry.ground_truth_html)

webgenie/tasks/task_generator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class TaskGenerator:
1111
def __init__(self):
1212
self.metrics: dict[str, Reward] = {}
1313

14-
async def generate_task(self) -> Tuple[Task, bt.Synapse]:
14+
async def generate_task(self, **kwargs) -> Tuple[Task, bt.Synapse]:
1515
pass
1616

1717
async def calculate_scores(self, task: Task, solutions: List[Solution]) -> dict[str, np.ndarray]:

0 commit comments

Comments
 (0)