Create fine-tuning job
curl --request POST \
--url https://flow.seekr.com/v1/flow/fine-tune \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"training_config": {
"training_files": [
"<string>"
],
"model": "<string>",
"n_epochs": 123,
"learning_rate": 123,
"batch_size": 512,
"n_checkpoints": 123,
"experiment_name": "<string>",
"max_length": 2500,
"pre_train": false,
"fine_tune_type": "STANDARD",
"lora_config": {
"r": 8,
"alpha": 32,
"dropout": 0.1,
"bias": "none",
"extras": {}
},
"reward_components": {
"graders": [
{
"type": "format_check",
"weight": 0.5
}
],
"format_reward_weight": 0.1
},
"beta": 123,
"gradient_checkpointing": true
},
"infrastructure_config": {
"n_accel": 123,
"n_node": 1
},
"project_id": 123,
"description": "<string>"
}
'import requests
url = "https://flow.seekr.com/v1/flow/fine-tune"
payload = {
"training_config": {
"training_files": ["<string>"],
"model": "<string>",
"n_epochs": 123,
"learning_rate": 123,
"batch_size": 512,
"n_checkpoints": 123,
"experiment_name": "<string>",
"max_length": 2500,
"pre_train": False,
"fine_tune_type": "STANDARD",
"lora_config": {
"r": 8,
"alpha": 32,
"dropout": 0.1,
"bias": "none",
"extras": {}
},
"reward_components": {
"graders": [
{
"type": "format_check",
"weight": 0.5
}
],
"format_reward_weight": 0.1
},
"beta": 123,
"gradient_checkpointing": True
},
"infrastructure_config": {
"n_accel": 123,
"n_node": 1
},
"project_id": 123,
"description": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
training_config: {
training_files: ['<string>'],
model: '<string>',
n_epochs: 123,
learning_rate: 123,
batch_size: 512,
n_checkpoints: 123,
experiment_name: '<string>',
max_length: 2500,
pre_train: false,
fine_tune_type: 'STANDARD',
lora_config: {r: 8, alpha: 32, dropout: 0.1, bias: 'none', extras: {}},
reward_components: {graders: [{type: 'format_check', weight: 0.5}], format_reward_weight: 0.1},
beta: 123,
gradient_checkpointing: true
},
infrastructure_config: {n_accel: 123, n_node: 1},
project_id: 123,
description: '<string>'
})
};
fetch('https://flow.seekr.com/v1/flow/fine-tune', 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://flow.seekr.com/v1/flow/fine-tune",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'training_config' => [
'training_files' => [
'<string>'
],
'model' => '<string>',
'n_epochs' => 123,
'learning_rate' => 123,
'batch_size' => 512,
'n_checkpoints' => 123,
'experiment_name' => '<string>',
'max_length' => 2500,
'pre_train' => false,
'fine_tune_type' => 'STANDARD',
'lora_config' => [
'r' => 8,
'alpha' => 32,
'dropout' => 0.1,
'bias' => 'none',
'extras' => [
]
],
'reward_components' => [
'graders' => [
[
'type' => 'format_check',
'weight' => 0.5
]
],
'format_reward_weight' => 0.1
],
'beta' => 123,
'gradient_checkpointing' => true
],
'infrastructure_config' => [
'n_accel' => 123,
'n_node' => 1
],
'project_id' => 123,
'description' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://flow.seekr.com/v1/flow/fine-tune"
payload := strings.NewReader("{\n \"training_config\": {\n \"training_files\": [\n \"<string>\"\n ],\n \"model\": \"<string>\",\n \"n_epochs\": 123,\n \"learning_rate\": 123,\n \"batch_size\": 512,\n \"n_checkpoints\": 123,\n \"experiment_name\": \"<string>\",\n \"max_length\": 2500,\n \"pre_train\": false,\n \"fine_tune_type\": \"STANDARD\",\n \"lora_config\": {\n \"r\": 8,\n \"alpha\": 32,\n \"dropout\": 0.1,\n \"bias\": \"none\",\n \"extras\": {}\n },\n \"reward_components\": {\n \"graders\": [\n {\n \"type\": \"format_check\",\n \"weight\": 0.5\n }\n ],\n \"format_reward_weight\": 0.1\n },\n \"beta\": 123,\n \"gradient_checkpointing\": true\n },\n \"infrastructure_config\": {\n \"n_accel\": 123,\n \"n_node\": 1\n },\n \"project_id\": 123,\n \"description\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.post("https://flow.seekr.com/v1/flow/fine-tune")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"training_config\": {\n \"training_files\": [\n \"<string>\"\n ],\n \"model\": \"<string>\",\n \"n_epochs\": 123,\n \"learning_rate\": 123,\n \"batch_size\": 512,\n \"n_checkpoints\": 123,\n \"experiment_name\": \"<string>\",\n \"max_length\": 2500,\n \"pre_train\": false,\n \"fine_tune_type\": \"STANDARD\",\n \"lora_config\": {\n \"r\": 8,\n \"alpha\": 32,\n \"dropout\": 0.1,\n \"bias\": \"none\",\n \"extras\": {}\n },\n \"reward_components\": {\n \"graders\": [\n {\n \"type\": \"format_check\",\n \"weight\": 0.5\n }\n ],\n \"format_reward_weight\": 0.1\n },\n \"beta\": 123,\n \"gradient_checkpointing\": true\n },\n \"infrastructure_config\": {\n \"n_accel\": 123,\n \"n_node\": 1\n },\n \"project_id\": 123,\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flow.seekr.com/v1/flow/fine-tune")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"training_config\": {\n \"training_files\": [\n \"<string>\"\n ],\n \"model\": \"<string>\",\n \"n_epochs\": 123,\n \"learning_rate\": 123,\n \"batch_size\": 512,\n \"n_checkpoints\": 123,\n \"experiment_name\": \"<string>\",\n \"max_length\": 2500,\n \"pre_train\": false,\n \"fine_tune_type\": \"STANDARD\",\n \"lora_config\": {\n \"r\": 8,\n \"alpha\": 32,\n \"dropout\": 0.1,\n \"bias\": \"none\",\n \"extras\": {}\n },\n \"reward_components\": {\n \"graders\": [\n {\n \"type\": \"format_check\",\n \"weight\": 0.5\n }\n ],\n \"format_reward_weight\": 0.1\n },\n \"beta\": 123,\n \"gradient_checkpointing\": true\n },\n \"infrastructure_config\": {\n \"n_accel\": 123,\n \"n_node\": 1\n },\n \"project_id\": 123,\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Fine-tuning
Create fine-tuning job
Create a new fine-tuning job using the specified base model and training files.
POST
/
v1
/
flow
/
fine-tune
Create fine-tuning job
curl --request POST \
--url https://flow.seekr.com/v1/flow/fine-tune \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"training_config": {
"training_files": [
"<string>"
],
"model": "<string>",
"n_epochs": 123,
"learning_rate": 123,
"batch_size": 512,
"n_checkpoints": 123,
"experiment_name": "<string>",
"max_length": 2500,
"pre_train": false,
"fine_tune_type": "STANDARD",
"lora_config": {
"r": 8,
"alpha": 32,
"dropout": 0.1,
"bias": "none",
"extras": {}
},
"reward_components": {
"graders": [
{
"type": "format_check",
"weight": 0.5
}
],
"format_reward_weight": 0.1
},
"beta": 123,
"gradient_checkpointing": true
},
"infrastructure_config": {
"n_accel": 123,
"n_node": 1
},
"project_id": 123,
"description": "<string>"
}
'import requests
url = "https://flow.seekr.com/v1/flow/fine-tune"
payload = {
"training_config": {
"training_files": ["<string>"],
"model": "<string>",
"n_epochs": 123,
"learning_rate": 123,
"batch_size": 512,
"n_checkpoints": 123,
"experiment_name": "<string>",
"max_length": 2500,
"pre_train": False,
"fine_tune_type": "STANDARD",
"lora_config": {
"r": 8,
"alpha": 32,
"dropout": 0.1,
"bias": "none",
"extras": {}
},
"reward_components": {
"graders": [
{
"type": "format_check",
"weight": 0.5
}
],
"format_reward_weight": 0.1
},
"beta": 123,
"gradient_checkpointing": True
},
"infrastructure_config": {
"n_accel": 123,
"n_node": 1
},
"project_id": 123,
"description": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
training_config: {
training_files: ['<string>'],
model: '<string>',
n_epochs: 123,
learning_rate: 123,
batch_size: 512,
n_checkpoints: 123,
experiment_name: '<string>',
max_length: 2500,
pre_train: false,
fine_tune_type: 'STANDARD',
lora_config: {r: 8, alpha: 32, dropout: 0.1, bias: 'none', extras: {}},
reward_components: {graders: [{type: 'format_check', weight: 0.5}], format_reward_weight: 0.1},
beta: 123,
gradient_checkpointing: true
},
infrastructure_config: {n_accel: 123, n_node: 1},
project_id: 123,
description: '<string>'
})
};
fetch('https://flow.seekr.com/v1/flow/fine-tune', 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://flow.seekr.com/v1/flow/fine-tune",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'training_config' => [
'training_files' => [
'<string>'
],
'model' => '<string>',
'n_epochs' => 123,
'learning_rate' => 123,
'batch_size' => 512,
'n_checkpoints' => 123,
'experiment_name' => '<string>',
'max_length' => 2500,
'pre_train' => false,
'fine_tune_type' => 'STANDARD',
'lora_config' => [
'r' => 8,
'alpha' => 32,
'dropout' => 0.1,
'bias' => 'none',
'extras' => [
]
],
'reward_components' => [
'graders' => [
[
'type' => 'format_check',
'weight' => 0.5
]
],
'format_reward_weight' => 0.1
],
'beta' => 123,
'gradient_checkpointing' => true
],
'infrastructure_config' => [
'n_accel' => 123,
'n_node' => 1
],
'project_id' => 123,
'description' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://flow.seekr.com/v1/flow/fine-tune"
payload := strings.NewReader("{\n \"training_config\": {\n \"training_files\": [\n \"<string>\"\n ],\n \"model\": \"<string>\",\n \"n_epochs\": 123,\n \"learning_rate\": 123,\n \"batch_size\": 512,\n \"n_checkpoints\": 123,\n \"experiment_name\": \"<string>\",\n \"max_length\": 2500,\n \"pre_train\": false,\n \"fine_tune_type\": \"STANDARD\",\n \"lora_config\": {\n \"r\": 8,\n \"alpha\": 32,\n \"dropout\": 0.1,\n \"bias\": \"none\",\n \"extras\": {}\n },\n \"reward_components\": {\n \"graders\": [\n {\n \"type\": \"format_check\",\n \"weight\": 0.5\n }\n ],\n \"format_reward_weight\": 0.1\n },\n \"beta\": 123,\n \"gradient_checkpointing\": true\n },\n \"infrastructure_config\": {\n \"n_accel\": 123,\n \"n_node\": 1\n },\n \"project_id\": 123,\n \"description\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.post("https://flow.seekr.com/v1/flow/fine-tune")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"training_config\": {\n \"training_files\": [\n \"<string>\"\n ],\n \"model\": \"<string>\",\n \"n_epochs\": 123,\n \"learning_rate\": 123,\n \"batch_size\": 512,\n \"n_checkpoints\": 123,\n \"experiment_name\": \"<string>\",\n \"max_length\": 2500,\n \"pre_train\": false,\n \"fine_tune_type\": \"STANDARD\",\n \"lora_config\": {\n \"r\": 8,\n \"alpha\": 32,\n \"dropout\": 0.1,\n \"bias\": \"none\",\n \"extras\": {}\n },\n \"reward_components\": {\n \"graders\": [\n {\n \"type\": \"format_check\",\n \"weight\": 0.5\n }\n ],\n \"format_reward_weight\": 0.1\n },\n \"beta\": 123,\n \"gradient_checkpointing\": true\n },\n \"infrastructure_config\": {\n \"n_accel\": 123,\n \"n_node\": 1\n },\n \"project_id\": 123,\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flow.seekr.com/v1/flow/fine-tune")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"training_config\": {\n \"training_files\": [\n \"<string>\"\n ],\n \"model\": \"<string>\",\n \"n_epochs\": 123,\n \"learning_rate\": 123,\n \"batch_size\": 512,\n \"n_checkpoints\": 123,\n \"experiment_name\": \"<string>\",\n \"max_length\": 2500,\n \"pre_train\": false,\n \"fine_tune_type\": \"STANDARD\",\n \"lora_config\": {\n \"r\": 8,\n \"alpha\": 32,\n \"dropout\": 0.1,\n \"bias\": \"none\",\n \"extras\": {}\n },\n \"reward_components\": {\n \"graders\": [\n {\n \"type\": \"format_check\",\n \"weight\": 0.5\n }\n ],\n \"format_reward_weight\": 0.1\n },\n \"beta\": 123,\n \"gradient_checkpointing\": true\n },\n \"infrastructure_config\": {\n \"n_accel\": 123,\n \"n_node\": 1\n },\n \"project_id\": 123,\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Create a fine-tuning job by specifying a
TrainingConfig and InfrastructureConfig. The TrainingConfig accepts an optional lora_config parameter for parameter-efficient training using low-rank adaptation.
For guidance on configuring LoRA, see Low-rank adaptation. For the full fine-tuning workflow, see Create a fine-tuning job.Authorizations
Your Seekr API key, sent in the Authorization header with no 'Bearer' prefix.
Body
application/json
Response
Successful Response
The response is of type object.
Last modified on June 18, 2026
⌘I