curl --request PUT \
--url https://distillation.training.wandb.ai/v1/tasks/{alias} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"project": "ticket-classifier",
"project_mode": "create",
"proxy_backend": "cloudflare",
"targets": [
{
"model_ref": "openai/gpt-5.6-sol",
"weight": 1,
"params_override": {}
}
]
}
'import requests
url = "https://distillation.training.wandb.ai/v1/tasks/{alias}"
payload = {
"project": "ticket-classifier",
"project_mode": "create",
"proxy_backend": "cloudflare",
"targets": [
{
"model_ref": "openai/gpt-5.6-sol",
"weight": 1,
"params_override": {}
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
project: 'ticket-classifier',
project_mode: 'create',
proxy_backend: 'cloudflare',
targets: [{model_ref: 'openai/gpt-5.6-sol', weight: 1, params_override: {}}]
})
};
fetch('https://distillation.training.wandb.ai/v1/tasks/{alias}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://distillation.training.wandb.ai/v1/tasks/{alias}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'project' => 'ticket-classifier',
'project_mode' => 'create',
'proxy_backend' => 'cloudflare',
'targets' => [
[
'model_ref' => 'openai/gpt-5.6-sol',
'weight' => 1,
'params_override' => [
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://distillation.training.wandb.ai/v1/tasks/{alias}"
payload := strings.NewReader("{\n \"project\": \"ticket-classifier\",\n \"project_mode\": \"create\",\n \"proxy_backend\": \"cloudflare\",\n \"targets\": [\n {\n \"model_ref\": \"openai/gpt-5.6-sol\",\n \"weight\": 1,\n \"params_override\": {}\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://distillation.training.wandb.ai/v1/tasks/{alias}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"project\": \"ticket-classifier\",\n \"project_mode\": \"create\",\n \"proxy_backend\": \"cloudflare\",\n \"targets\": [\n {\n \"model_ref\": \"openai/gpt-5.6-sol\",\n \"weight\": 1,\n \"params_override\": {}\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://distillation.training.wandb.ai/v1/tasks/{alias}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"project\": \"ticket-classifier\",\n \"project_mode\": \"create\",\n \"proxy_backend\": \"cloudflare\",\n \"targets\": [\n {\n \"model_ref\": \"openai/gpt-5.6-sol\",\n \"weight\": 1,\n \"params_override\": {}\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"entity": "<string>",
"project": "<string>",
"alias": "<string>",
"proxy_backend": "cloudflare",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"versions": [
{
"version": 2,
"created_at": "2023-11-07T05:31:56Z",
"routing": {
"targets": [
{
"model_ref": "openai/gpt-5.6-sol",
"weight": 1,
"params_override": {
"temperature": 0
}
}
]
},
"deployment": {
"proxy_backend": "<string>",
"status": "pending",
"applied_revision": 123,
"external_ref": "<string>",
"last_error": "<string>"
}
}
]
}{
"error": {
"message": "Task 'missing' not found in entity 'your-team'",
"type": "not_found"
}
}Créer un projet Model Distillation
Crée la version 1 du projet et publie la configuration initiale d’acheminement requise. Définissez project_mode sur create pour un nouveau projet W&B ou sur import pour un projet existant auquel vous avez accès. Chaque projet W&B ne peut appartenir qu’à un seul projet Model Distillation par entity. L’alias de chemin correspond au nom du modèle proxy que les clients envoient dans les requêtes d’inférence et peut différer du nom du projet W&B.
curl --request PUT \
--url https://distillation.training.wandb.ai/v1/tasks/{alias} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"project": "ticket-classifier",
"project_mode": "create",
"proxy_backend": "cloudflare",
"targets": [
{
"model_ref": "openai/gpt-5.6-sol",
"weight": 1,
"params_override": {}
}
]
}
'import requests
url = "https://distillation.training.wandb.ai/v1/tasks/{alias}"
payload = {
"project": "ticket-classifier",
"project_mode": "create",
"proxy_backend": "cloudflare",
"targets": [
{
"model_ref": "openai/gpt-5.6-sol",
"weight": 1,
"params_override": {}
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
project: 'ticket-classifier',
project_mode: 'create',
proxy_backend: 'cloudflare',
targets: [{model_ref: 'openai/gpt-5.6-sol', weight: 1, params_override: {}}]
})
};
fetch('https://distillation.training.wandb.ai/v1/tasks/{alias}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://distillation.training.wandb.ai/v1/tasks/{alias}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'project' => 'ticket-classifier',
'project_mode' => 'create',
'proxy_backend' => 'cloudflare',
'targets' => [
[
'model_ref' => 'openai/gpt-5.6-sol',
'weight' => 1,
'params_override' => [
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://distillation.training.wandb.ai/v1/tasks/{alias}"
payload := strings.NewReader("{\n \"project\": \"ticket-classifier\",\n \"project_mode\": \"create\",\n \"proxy_backend\": \"cloudflare\",\n \"targets\": [\n {\n \"model_ref\": \"openai/gpt-5.6-sol\",\n \"weight\": 1,\n \"params_override\": {}\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://distillation.training.wandb.ai/v1/tasks/{alias}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"project\": \"ticket-classifier\",\n \"project_mode\": \"create\",\n \"proxy_backend\": \"cloudflare\",\n \"targets\": [\n {\n \"model_ref\": \"openai/gpt-5.6-sol\",\n \"weight\": 1,\n \"params_override\": {}\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://distillation.training.wandb.ai/v1/tasks/{alias}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"project\": \"ticket-classifier\",\n \"project_mode\": \"create\",\n \"proxy_backend\": \"cloudflare\",\n \"targets\": [\n {\n \"model_ref\": \"openai/gpt-5.6-sol\",\n \"weight\": 1,\n \"params_override\": {}\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"entity": "<string>",
"project": "<string>",
"alias": "<string>",
"proxy_backend": "cloudflare",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"versions": [
{
"version": 2,
"created_at": "2023-11-07T05:31:56Z",
"routing": {
"targets": [
{
"model_ref": "openai/gpt-5.6-sol",
"weight": 1,
"params_override": {
"temperature": 0
}
}
]
},
"deployment": {
"proxy_backend": "<string>",
"status": "pending",
"applied_revision": 123,
"external_ref": "<string>",
"last_error": "<string>"
}
}
]
}{
"error": {
"message": "Task 'missing' not found in entity 'your-team'",
"type": "not_found"
}
}Autorisations
Une clé API W&B.
En-têtes
entity personnel ou d’équipe accessible. Omettez ce champ pour utiliser l’entity par défaut de l’utilisateur authentifié.
Paramètres de chemin
^[a-z0-9-]{1,64}$Corps
L’unique projet W&B appartenant à ce projet Model Distillation.
1 - 128Créer un nouveau projet W&B ou importer un projet W&B existant auquel vous avez accès.
create, import La configuration initiale d’acheminement. Une nouvelle tâche doit acheminer le trafic vers au moins un modèle.
1Show child attributes
Show child attributes
cloudflare, local 0 <= x <= 1Cette page vous a-t-elle été utile ?