Anleitungen
- Schnellstart
- Authentifizierung und Schlüssel
- Schlüsselschutz
- Modelle, Aliase und Fallbacks
- Automatische Modellwahl (silicon/auto)
- Chat Completions
- Streaming
- Strukturierte Ausgaben und Tools
- Logprobs
- Vision
- Responses, Claude und Ollama
- Embeddings, Rerank, Audio, Bilder
- Dateien und Batches
- Dokumente und Suche
- LoRA-Adapter
- Projekt-Tags und Kosten
- Präfix-Caching
- Header, Rate Limits und Ausgabenlimits
- Fehler
- Datenschutz und Aufbewahrung
- Verifizierbare Belege
- Datenresidenz
- Preise
- Abrechnung
- Zahlung pro Anfrage (x402)
- On-Chain-Orakel
- Agentenkredit (gedeckte Rechenkreditlinien)
- Status
- SDKs
- Swift-SDK
- Integrationen
- Einen Node betreiben
- Linux-Agent
- Compute-API
- Architektur
- Änderungsprotokoll
- Glossar
API-Referenz
API-Leitfaden
Compute-API
Eine Basis-URL und ein Schlüssel für Inferenz und Compute: https://api.siliconnetwork.io. Liste Angebote für einen Workload auf, starte aus einem davon eine Instanz mit Vorlage und Ausgabengrenzen, lies ihre Logs und halte sie an.
Noch nicht angebunden
Es ist kein Compute-Anbieter angebunden, daher antworten Angebote, Instanzen und Logs heute mit 404 Not Found. Die Vorlagen für Workloads antworten. Die Beispiele zeigen die Aufrufe so, wie sie funktionieren, sobald ein Anbieter angebunden ist; bis dahin werfen die SDKs ComputeUnavailable, und die CLI sagt es.
So läuft ein Auftrag
GET /v1/compute/offers?workload=&priority=listet Angebote, sortiert nachcheapest,fastestoderbalanced. Jedes nennt Anbieter, Region und Preis und wann es geprüft wurde. Kapazität, Latenz und Durchsatz erscheinen nur, wenn der Anbieter sie meldet.GET /v1/compute/templateslistet die Vorlagen und ihre Parameter. Keine Vorlage nimmt ein Geheimnis entgegen: Ein Workload, der einen Schlüssel braucht, bekommt ihn aus dem Geheimnisspeicher des Anbieters.POST /v1/compute/instancesstartet eine Instanz aus einem Angebot. Sende einenidempotency_key: Derselbe Schlüssel liefert dieselbe Instanz zurück. Setzemax_runtime_secondsundmax_spend_usd: Die Instanz wird bei der ersten Grenze angehalten.fallback: trueversucht die nächsten passenden Angebote, wenn das erste nicht starten kann.GET /v1/compute/instances/{id}/logs?after=liest ihre Ausgabe,POST /v1/compute/instances/{id}/terminatehält sie an. Angezeigte Ausgaben sind nur, was der Anbieter gemeldet hat, nie eine Schätzung.
Schlüssel und Berechtigungen
- Erstelle auf der Seite API-Schlüssel einen Schlüssel mit nur den Berechtigungen, die er braucht:
compute:readzum Auflisten und Lesen von Instanzen und Logs,compute:launchzum Starten und Anhalten,inferencefür den Chat. - Gib einem Schlüssel, der Instanzen startet, ein Compute-Ausgabenlimit. Darüber kann er keine Instanzen mehr starten, und die von ihm gestarteten werden angehalten.
- Angebote und Vorlagen brauchen keinen Schlüssel. Ein Schlüssel mit IP-Allowlist kann die Compute-Routen noch nicht nutzen.
- Konsolen-Links öffnen sich nur im Dashboard: Ein API-Schlüssel wird mit
403abgewiesen.
Werkzeuge
- Python:
client.computeim Paketsiliconnetwork, das auch den Befehlsiliconinstalliert. - TypeScript:
client.computein@siliconnetwork/sdk. - Terraform: die Ressource
silicon_compute_instanceund die Datenquellen für Angebote und Vorlagen, inintegrations/terraform-provider-silicon. - MCP: ein Server für KI-Assistenten, der Angebote auflistet, mit bestätigten Grenzen startet, Logs liest, Instanzen anhält und chattet, in
integrations/mcp. - Bruno: eine Sammlung von Anfragen für Inferenz und Compute, in
sdks/collections/bruno.
Noch ist nichts davon in einer Paketregistry veröffentlicht: Installiere es aus dem Repository. Alle lesen SILICON_API_KEY.
Beispiele nach Workload
Ersetze die Anbieter- und Angebots-IDs durch solche aus der Angebotsliste. Parameterwerte sind Beispiele, keine funktionierenden Werte.
KI-Inferenz
Inferenz startet keine Compute-Instanzen: Rufe Chat Completions mit demselben Schlüssel und derselben Basis-URL auf. Chat Completions
curl -s https://api.siliconnetwork.io/v1/chat/completions \
-H "Authorization: Bearer $SILICON_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "silicon/auto", "messages": [{"role": "user", "content": "Hello"}]}'KI-Training
Ein Fine-Tuning-Auftrag aus der Vorlage fine-tune.
# 1. Offers for ai-training, balanced first
curl -s "https://api.siliconnetwork.io/v1/compute/offers?workload=ai-training&priority=balanced" \
-H "Authorization: Bearer $SILICON_API_KEY"
# 2. Start the fine-tune template on one of them (stops at the caps)
curl -s https://api.siliconnetwork.io/v1/compute/instances \
-H "Authorization: Bearer $SILICON_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider_id": "<provider_id from the offer>",
"offer_id": "<offer_id from the offer>",
"workload": "ai-training",
"idempotency_key": "ai-training-run-0001",
"template_id": "fine-tune",
"params": {
"base_model": "org/model-name",
"dataset_url": "https://example.com/data.jsonl",
"method": "lora",
"epochs": 3
},
"max_runtime_seconds": 14400,
"max_spend_usd": "40"
}'
# 3. Follow its logs, then stop it
curl -s "https://api.siliconnetwork.io/v1/compute/instances/$INSTANCE_ID/logs?after=0" \
-H "Authorization: Bearer $SILICON_API_KEY"
curl -s -X POST https://api.siliconnetwork.io/v1/compute/instances/$INSTANCE_ID/terminate \
-H "Authorization: Bearer $SILICON_API_KEY"Rendering
Ein Bildbereich einer Blender-Szene aus der Vorlage render-job.
# 1. Offers for rendering, fastest first
curl -s "https://api.siliconnetwork.io/v1/compute/offers?workload=rendering&priority=fastest" \
-H "Authorization: Bearer $SILICON_API_KEY"
# 2. Start the render-job template on one of them (stops at the caps)
curl -s https://api.siliconnetwork.io/v1/compute/instances \
-H "Authorization: Bearer $SILICON_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider_id": "<provider_id from the offer>",
"offer_id": "<offer_id from the offer>",
"workload": "rendering",
"idempotency_key": "rendering-run-0001",
"template_id": "render-job",
"params": {
"scene_url": "https://example.com/scene.blend",
"frame_start": 1,
"frame_end": 240,
"output_format": "png"
},
"max_runtime_seconds": 7200,
"max_spend_usd": "20"
}'
# 3. Follow its logs, then stop it
curl -s "https://api.siliconnetwork.io/v1/compute/instances/$INSTANCE_ID/logs?after=0" \
-H "Authorization: Bearer $SILICON_API_KEY"
curl -s -X POST https://api.siliconnetwork.io/v1/compute/instances/$INSTANCE_ID/terminate \
-H "Authorization: Bearer $SILICON_API_KEY"Mining
Ein Miner für deinen Pool und deine Wallet aus der Vorlage miner.
# 1. Offers for mining, cheapest first
curl -s "https://api.siliconnetwork.io/v1/compute/offers?workload=mining&priority=cheapest" \
-H "Authorization: Bearer $SILICON_API_KEY"
# 2. Start the miner template on one of them (stops at the caps)
curl -s https://api.siliconnetwork.io/v1/compute/instances \
-H "Authorization: Bearer $SILICON_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider_id": "<provider_id from the offer>",
"offer_id": "<offer_id from the offer>",
"workload": "mining",
"idempotency_key": "mining-run-0001",
"template_id": "miner",
"params": {
"pool_url": "stratum+ssl://pool.example.com:3333",
"wallet_address": "your wallet address",
"gpu_count": 1
},
"max_runtime_seconds": 86400,
"max_spend_usd": "10"
}'
# 3. Follow its logs, then stop it
curl -s "https://api.siliconnetwork.io/v1/compute/instances/$INSTANCE_ID/logs?after=0" \
-H "Authorization: Bearer $SILICON_API_KEY"
curl -s -X POST https://api.siliconnetwork.io/v1/compute/instances/$INSTANCE_ID/terminate \
-H "Authorization: Bearer $SILICON_API_KEY"Trading-Bots
Das Container-Image deines Bots aus der Vorlage sniping-bot. Seine Schlüssel bleiben im Geheimnisspeicher des Anbieters.
# 1. Offers for trading-bots, fastest first
curl -s "https://api.siliconnetwork.io/v1/compute/offers?workload=trading-bots&priority=fastest" \
-H "Authorization: Bearer $SILICON_API_KEY"
# 2. Start the sniping-bot template on one of them (stops at the caps)
curl -s https://api.siliconnetwork.io/v1/compute/instances \
-H "Authorization: Bearer $SILICON_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider_id": "<provider_id from the offer>",
"offer_id": "<offer_id from the offer>",
"workload": "trading-bots",
"idempotency_key": "trading-bots-run-0001",
"template_id": "sniping-bot",
"params": {
"image": "ghcr.io/you/your-bot:1.0",
"restart": "on-failure"
},
"max_runtime_seconds": 86400,
"max_spend_usd": "5"
}'
# 3. Follow its logs, then stop it
curl -s "https://api.siliconnetwork.io/v1/compute/instances/$INSTANCE_ID/logs?after=0" \
-H "Authorization: Bearer $SILICON_API_KEY"
curl -s -X POST https://api.siliconnetwork.io/v1/compute/instances/$INSTANCE_ID/terminate \
-H "Authorization: Bearer $SILICON_API_KEY"Server
Eine einfache Maschine aus der Vorlage plain-server.
# 1. Offers for servers, balanced first
curl -s "https://api.siliconnetwork.io/v1/compute/offers?workload=servers&priority=balanced" \
-H "Authorization: Bearer $SILICON_API_KEY"
# 2. Start the plain-server template on one of them (stops at the caps)
curl -s https://api.siliconnetwork.io/v1/compute/instances \
-H "Authorization: Bearer $SILICON_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider_id": "<provider_id from the offer>",
"offer_id": "<offer_id from the offer>",
"workload": "servers",
"idempotency_key": "servers-run-0001",
"template_id": "plain-server",
"params": {
"image": "ubuntu:24.04",
"ports": "22,443"
},
"max_runtime_seconds": 604800,
"max_spend_usd": "25"
}'
# 3. Follow its logs, then stop it
curl -s "https://api.siliconnetwork.io/v1/compute/instances/$INSTANCE_ID/logs?after=0" \
-H "Authorization: Bearer $SILICON_API_KEY"
curl -s -X POST https://api.siliconnetwork.io/v1/compute/instances/$INSTANCE_ID/terminate \
-H "Authorization: Bearer $SILICON_API_KEY"Fehler
404 Not Found: Es ist kein Compute-Anbieter angebunden.402: zu wenig Guthaben, eine erreichte Ausgabengrenze oder das Compute-Ausgabenlimit des Schlüssels (refused (key_compute_limit)).403: Dem Schlüssel fehlt die Berechtigung, der Compute-Zugang der Organisation ist gesperrt, oder der Schlüssel hat eine IP-Allowlist.409: Das Angebot ist weg oder veraltet, oder der Idempotenzschlüssel wurde für ein anderes Angebot verwendet.422: ein unbekannter Workload, ein ungültiger Vorlagenparameter (benannt, nie wiederholt) oder ein Workload, den der Anbieter nicht ausführen darf.503: Der Anbieter hat nicht geantwortet. Versuche es mit demselben Idempotenzschlüssel erneut.