SingTown AI Python Client
Project description
SingTown AI Python SDK
This SDK is designed to interact with SingTown AI Cloud Service or SingTown AI Standalone(self-hosted).
Installation
pip install singtown_ai
Usage
Login Configuration
- SingTown AI Cloud Service: The
hostis"https://ai.singtown.com". - SingTown AI Standalone (self-hosted): The
hostis something like"http://127.0.0.1:8000".
You can obtain the token and task_id from Project -> Information.
Environment Variables:
export SINGTOWN_AI_HOST="https://ai.singtown.com" # Or the cloud service URL
export SINGTOWN_AI_TOKEN="your token" # Your token
export SINGTOWN_AI_TASK_ID="your id" # Your task ID
Alternatively, set them directly in code:
SingTownAiClient(
host="https://ai.singtown.com", # Or the cloud service URL
token="your token", # Your token
task_id="your id" # Your task ID
)
Dry Run
python -m singtown_ai.dryrun --host=http://127.0.0.1:8000 --token=012345 --task_id=1
- This command will simulate 10s train task.
Basic Usage
from singtown_ai import SingTownAiClient
with SingTownAiClient() as client:
pass # Insert your code here
- This will periodically update the running status. After finished, it will post a "training succeeded" status. If an error occurs, it will post a "training failed" status.
Mock Usage
from singtown_ai import SingTownAiClient
mock_data = {
"task": {
"project": {
"labels": ["cat", "dog"],
"type": "CLASSIFICATION",
},
"type": "TRAIN",
"status": "PENDING",
"params": {
"model": "MobileNetV2",
"weight": "imagenet",
"alpha": 0.35,
"imgw": 96,
"imgh": 96,
"epochs": 1,
"learning_rate": 0.001,
},
},
"dataset": [
{
"url": "https://ai.singtown.com/media/cat.0.jpg",
"subset": "TRAIN",
"classification": "cat",
},
{
"url": "https://ai.singtown.com/media/cat.1.jpg",
"subset": "VALID",
"classification": "cat",
},
{
"url": "https://ai.singtown.com/media/cat.2.jpg",
"subset": "TEST",
"classification": "cat",
},
{
"url": "https://ai.singtown.com/media/dog.0.jpg",
"subset": "TRAIN",
"classification": "dog",
},
{
"url": "https://ai.singtown.com/media/dog.1.jpg",
"subset": "VALID",
"classification": "dog",
},
{
"url": "https://ai.singtown.com/media/dog.2.jpg",
"subset": "TEST",
"classification": "dog",
},
],
}
with SingTownAiClient(mock=True) as client:
pass # Insert your code here
- Set mock_data, Will mock demo task and dataset, this is useful for debugging.
Uploading Metrics
metrics = [
{"epoch": 0, "accuracy": 0.8, "loss": 0.2},
{"epoch": 1, "accuracy": 0.9, "loss": 0.1},
]
with SingTownAiClient() as client:
client.upload_metrics(metrics)
- The field names in
metricsare not restricted, and they will appear on the Metrics page in SingTown AI.
Watching metrics.csv
with SingTownAiClient(metrics_file="metrics.csv") as client:
pass # Insert your code here
- Every 3 seconds, the SDK will parse the
metrics.csvand upload data.
Posting Logs
with SingTownAiClient() as client:
import time
for i in range(100):
client.log(f"epoch: {i}")
time.sleep(0.1)
- This will upload log strings, posting them every 3 seconds.
Download Trained Files from Server
with SingTownAiClient() as client:
client.download_trained_file("folder")
- This method will download the trained file and automatically extract it into the specified folder.
Uploading Result Files
with SingTownAiClient() as client:
client.upload_results_zip("your.zip")
- This method uploads a
.zipresult file.
Run Subprocess Command
with SingTownAiClient() as client:
client.run_subprocess("echo hello world!")
client.run_subprocess("python3 train.py", ignore_stdout=True)
- This method will run subprocess and log stdout and stderr.
- If
ignore_stdout=True, will not log stdout.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
singtown_ai-1.3.0.tar.gz
(485.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
singtown_ai-1.3.0-py3-none-any.whl
(490.8 kB
view details)
File details
Details for the file singtown_ai-1.3.0.tar.gz.
File metadata
- Download URL: singtown_ai-1.3.0.tar.gz
- Upload date:
- Size: 485.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ad082e04f529a97895af3821a95b87e8f2d034bb3f2e56e0df866af36be11e3
|
|
| MD5 |
aaa9477c8b7e4410ea7716aad79fb69a
|
|
| BLAKE2b-256 |
ebb3e429f4ad1480f4483437444e6a802649315a2bdb6da64eb69d6d76b946e5
|
File details
Details for the file singtown_ai-1.3.0-py3-none-any.whl.
File metadata
- Download URL: singtown_ai-1.3.0-py3-none-any.whl
- Upload date:
- Size: 490.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6e7a8488470e71bbef9000c9fc00680ea6653bd4ef6fd492145777f2e7c269b
|
|
| MD5 |
992970a8b0fe7e04a7d2e4069c1d068b
|
|
| BLAKE2b-256 |
d4e9b3880555a272124722b915a94ff8727912a4413aba5eb414f0807ecf555b
|