-
Notifications
You must be signed in to change notification settings - Fork 62
Expand file tree
/
Copy pathsdk.py
More file actions
51 lines (41 loc) · 1.5 KB
/
sdk.py
File metadata and controls
51 lines (41 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import asyncio
import affine as af
from dotenv import load_dotenv
import sys
import os
import json
af.trace()
load_dotenv()
async def main():
api_key = os.getenv("CHUTES_API_KEY")
if not api_key:
print("\n ❌ CHUTES_API_KEY environment variable not set")
print(" Please set: export CHUTES_API_KEY='your-key'")
print(" Or create .env file with: CHUTES_API_KEY=your-key")
sys.exit(1)
# Get miner info for UID = 160
# NOTE: HF_USER and HF_TOKEN .env value is required for this command.
uid = 243
miner = await af.miners(uid)
assert miner, "Unable to obtain miner, please check if registered"
# Generate and evaluate a DED challenge
# All environment logic is now encapsulated in Docker images via affinetes
ded_env = af.DED()
evaluation = await ded_env.evaluate(miner, task_id=20100)
print("=" * 50)
print(json.dumps(evaluation[uid].dict(), indent=2, ensure_ascii=False))
# Generate and evaluate an ABD challenge
abd_env = af.ABD()
evaluation = await abd_env.evaluate(miner, task_id=20200)
print("=" * 50)
print(json.dumps(evaluation[uid].dict(), indent=2, ensure_ascii=False))
# List all available environments
print("=" * 50)
print("\nAll Available Environments:")
envs = af.tasks.list_available_environments()
for env_type, env_names in envs.items():
print(f"\n{env_type}:")
for name in env_names:
print(f" - {name}")
if __name__ == "__main__":
asyncio.run(main())