curl --request POST \
--url https://flow.seekr.com/v1/flow/alignment/generate \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"instructions": "<string>",
"files": [
"<string>"
],
"system_prompt": "<string>",
"type": "principle",
"vector_database_id": "<string>"
}
'import requests
url = "https://flow.seekr.com/v1/flow/alignment/generate"
payload = {
"instructions": "<string>",
"files": ["<string>"],
"system_prompt": "<string>",
"type": "principle",
"vector_database_id": "<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({
instructions: '<string>',
files: ['<string>'],
system_prompt: '<string>',
type: 'principle',
vector_database_id: '<string>'
})
};
fetch('https://flow.seekr.com/v1/flow/alignment/generate', 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/alignment/generate",
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([
'instructions' => '<string>',
'files' => [
'<string>'
],
'system_prompt' => '<string>',
'type' => 'principle',
'vector_database_id' => '<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/alignment/generate"
payload := strings.NewReader("{\n \"instructions\": \"<string>\",\n \"files\": [\n \"<string>\"\n ],\n \"system_prompt\": \"<string>\",\n \"type\": \"principle\",\n \"vector_database_id\": \"<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/alignment/generate")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"instructions\": \"<string>\",\n \"files\": [\n \"<string>\"\n ],\n \"system_prompt\": \"<string>\",\n \"type\": \"principle\",\n \"vector_database_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flow.seekr.com/v1/flow/alignment/generate")
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 \"instructions\": \"<string>\",\n \"files\": [\n \"<string>\"\n ],\n \"system_prompt\": \"<string>\",\n \"type\": \"principle\",\n \"vector_database_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"status": "pending",
"updated_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"stopped_at": "2023-11-07T05:31:56Z",
"current_step": "<string>",
"step_progress": 123,
"progress": 123,
"estimated_completion_at": "2023-11-07T05:31:56Z",
"eta_minutes": 123,
"status_message": "<string>",
"output_files": [
{
"id": "<string>",
"filename": "<string>",
"bytes": 123,
"created_at": "2023-11-07T05:31:56Z",
"file_type": "jsonl",
"purpose": "reinforcement-fine-tune"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Generate training pairs
Generate instruction fine-tuning pairs from your data for use in alignment jobs.
curl --request POST \
--url https://flow.seekr.com/v1/flow/alignment/generate \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"instructions": "<string>",
"files": [
"<string>"
],
"system_prompt": "<string>",
"type": "principle",
"vector_database_id": "<string>"
}
'import requests
url = "https://flow.seekr.com/v1/flow/alignment/generate"
payload = {
"instructions": "<string>",
"files": ["<string>"],
"system_prompt": "<string>",
"type": "principle",
"vector_database_id": "<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({
instructions: '<string>',
files: ['<string>'],
system_prompt: '<string>',
type: 'principle',
vector_database_id: '<string>'
})
};
fetch('https://flow.seekr.com/v1/flow/alignment/generate', 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/alignment/generate",
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([
'instructions' => '<string>',
'files' => [
'<string>'
],
'system_prompt' => '<string>',
'type' => 'principle',
'vector_database_id' => '<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/alignment/generate"
payload := strings.NewReader("{\n \"instructions\": \"<string>\",\n \"files\": [\n \"<string>\"\n ],\n \"system_prompt\": \"<string>\",\n \"type\": \"principle\",\n \"vector_database_id\": \"<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/alignment/generate")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"instructions\": \"<string>\",\n \"files\": [\n \"<string>\"\n ],\n \"system_prompt\": \"<string>\",\n \"type\": \"principle\",\n \"vector_database_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flow.seekr.com/v1/flow/alignment/generate")
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 \"instructions\": \"<string>\",\n \"files\": [\n \"<string>\"\n ],\n \"system_prompt\": \"<string>\",\n \"type\": \"principle\",\n \"vector_database_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"status": "pending",
"updated_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"stopped_at": "2023-11-07T05:31:56Z",
"current_step": "<string>",
"step_progress": 123,
"progress": 123,
"estimated_completion_at": "2023-11-07T05:31:56Z",
"eta_minutes": 123,
"status_message": "<string>",
"output_files": [
{
"id": "<string>",
"filename": "<string>",
"bytes": 123,
"created_at": "2023-11-07T05:31:56Z",
"file_type": "jsonl",
"purpose": "reinforcement-fine-tune"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}POST /v1/flow/data-jobs to create a job, POST /v1/flow/data-jobs/{data_job_id}/add-files to attach files and convert any non-Markdown files automatically, then POST /v1/flow/data-jobs/{data_job_id}/start to run alignment.Authorizations
Your Seekr API key, sent in the Authorization header with no 'Bearer' prefix.
Body
Instructions that describe the task the alignment job generates data for.
IDs of the files to use for alignment.
Optional system prompt included with every conversation in the generated dataset. If omitted, one is generated from instructions and the source documents.
Type of alignment task.
principle, context_data Optional ID of the vector database to retrieve context from during context_data alignment.
Response
Success
ID of the alignment job.
Time the alignment job was created, in ISO 8601 format.
pending, queued, running, cancelled, failed, completed, stopped Time the alignment job was last updated, in ISO 8601 format.
Time the alignment job completed, in ISO 8601 format.
Time the alignment job stopped, in ISO 8601 format.
The processing step the job is currently working on. null until the job starts running.
Progress through the current step. null when no step is in progress.
Overall completion of the job across all steps. null until progress can be calculated.
Projected completion timestamp (UTC). null until enough progress data is available to produce an estimate.
Estimated number of minutes remaining until the job completes. null until an estimate is available.
Human-readable description of the job's current state, suitable for display to end users.
Files the alignment job produced.
Show child attributes
Show child attributes