Attach a file to a chat
curl --request POST \
--url http://127.0.0.1:4319/assistant/attachments \
--header 'Content-Type: application/json' \
--data '
{
"filename": "brief.pdf",
"contentBase64": "<string>"
}
'import requests
url = "http://127.0.0.1:4319/assistant/attachments"
payload = {
"filename": "brief.pdf",
"contentBase64": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({filename: 'brief.pdf', contentBase64: '<string>'})
};
fetch('http://127.0.0.1:4319/assistant/attachments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1:4319/assistant/attachments"
payload := strings.NewReader("{\n \"filename\": \"brief.pdf\",\n \"contentBase64\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "4319",
CURLOPT_URL => "http://127.0.0.1:4319/assistant/attachments",
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([
'filename' => 'brief.pdf',
'contentBase64' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("http://127.0.0.1:4319/assistant/attachments")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"filename\": \"brief.pdf\",\n \"contentBase64\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("http://127.0.0.1:4319/assistant/attachments")
.header("Content-Type", "application/json")
.body("{\n \"filename\": \"brief.pdf\",\n \"contentBase64\": \"<string>\"\n}")
.asString();using RestSharp;
var options = new RestClientOptions("http://127.0.0.1:4319/assistant/attachments");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddJsonBody("{\n \"filename\": \"brief.pdf\",\n \"contentBase64\": \"<string>\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
{
"sessionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"documentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": "added",
"title": "<string>",
"chunks": 123
}Assistant
Attach a file to a chat
Upload file bytes into one chat’s scope. The file is chunked and embedded like a
document, but only that session’s recall searches it: it stays out of the documents
list, the graph, and entity extraction, and it is deleted with the chat. Omit
sessionId to create the session on the spot (titled ‘New chat’ until the first
message names it). Body limit ~48MB (~36MB of file). Remove an attachment with
DELETE /context/documents/.
POST
/
assistant
/
attachments
Attach a file to a chat
curl --request POST \
--url http://127.0.0.1:4319/assistant/attachments \
--header 'Content-Type: application/json' \
--data '
{
"filename": "brief.pdf",
"contentBase64": "<string>"
}
'import requests
url = "http://127.0.0.1:4319/assistant/attachments"
payload = {
"filename": "brief.pdf",
"contentBase64": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({filename: 'brief.pdf', contentBase64: '<string>'})
};
fetch('http://127.0.0.1:4319/assistant/attachments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1:4319/assistant/attachments"
payload := strings.NewReader("{\n \"filename\": \"brief.pdf\",\n \"contentBase64\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "4319",
CURLOPT_URL => "http://127.0.0.1:4319/assistant/attachments",
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([
'filename' => 'brief.pdf',
'contentBase64' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("http://127.0.0.1:4319/assistant/attachments")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"filename\": \"brief.pdf\",\n \"contentBase64\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("http://127.0.0.1:4319/assistant/attachments")
.header("Content-Type", "application/json")
.body("{\n \"filename\": \"brief.pdf\",\n \"contentBase64\": \"<string>\"\n}")
.asString();using RestSharp;
var options = new RestClientOptions("http://127.0.0.1:4319/assistant/attachments");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddJsonBody("{\n \"filename\": \"brief.pdf\",\n \"contentBase64\": \"<string>\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
{
"sessionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"documentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": "added",
"title": "<string>",
"chunks": 123
}Headers
The owner this request acts for. Applies to every owner-scoped endpoint, reads as well
as writes. Omit it and the daemon's own default owner answers (see GET /health), which
is what a single-owner install has always used. A value that is not a uuid is refused
with 400 rather than coerced.
Body
application/json