Buckets:
CropRL REST API
Local HTTP interface to the CropRL farming environment. Not required for the hackathon submission — this is for local testing and experimentation.
Quick Start
# From project root
uvicorn extras.api.app:app --reload --port 8000
Then visit http://localhost:8000/docs for the interactive Swagger UI.
Endpoints
| Method | Path | Description |
|---|---|---|
GET |
/ |
Health check |
GET |
/tasks |
List available task difficulties |
GET |
/actions |
List all action IDs and names |
POST |
/reset |
Start a new episode |
GET |
/state |
Get current observation |
POST |
/step |
Take an action |
Example Usage (curl)
# Reset environment
curl -X POST http://localhost:8000/reset \
-H "Content-Type: application/json" \
-d '{"task": "easy", "seed": 42}'
# Check state
curl http://localhost:8000/state
# Plant chickpea (action 3)
curl -X POST http://localhost:8000/step \
-H "Content-Type: application/json" \
-d '{"action_id": 3}'
# Wait (action 0)
curl -X POST http://localhost:8000/step \
-H "Content-Type: application/json" \
-d '{"action_id": 0}'
# Harvest & sell (action 7)
curl -X POST http://localhost:8000/step \
-H "Content-Type: application/json" \
-d '{"action_id": 7}'
Example Usage (Python)
import requests
BASE = "http://localhost:8000"
# Reset
r = requests.post(f"{BASE}/reset", json={"task": "easy", "seed": 42})
obs = r.json()["observation"]
# Play a few steps
for action in [3, 0, 7, 1, 0, 0, 0, 7]:
r = requests.post(f"{BASE}/step", json={"action_id": action})
data = r.json()
print(f"Step {data['step']}: {data['action_name']} → R={data['reward']:.0f}, Cash=₹{data['observation']['cash_balance']:,.0f}")
Xet Storage Details
- Size:
- 1.79 kB
- Xet hash:
- a4201f6aba5781a22d87f11f23945982ef50093da17f0ff563f9508006712812
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.