Assemble the passages that answer a query within a model's token budget
const url = 'https://api.katara.com/katara/v1/orgs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/environments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/context:assemble';const options = { method: 'POST', headers: { 'X-Katara-CSRF': '1', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","query":{"org_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","environment_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","version":1,"integrity":"example","media_type":"text/plain","size_bytes":1},"collections":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","expected_revision":1}],"model_id":"example","token_budget":1,"per_collection":1,"grant_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","budget_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.katara.com/katara/v1/orgs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/environments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/context:assemble \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'X-Katara-CSRF: 1' \ --data '{ "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "query": { "org_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "environment_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "version": 1, "integrity": "example", "media_type": "text/plain", "size_bytes": 1 }, "collections": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "expected_revision": 1 } ], "model_id": "example", "token_budget": 1, "per_collection": 1, "grant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "budget_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }'Requires memory read access to each collection and a grant and budget that fund the query. Searches each named collection at the revision the caller read, embedding the stored query once per collection and paying for it, then packs the best passages across them into token_budget as the model counts them. Every passage names its source, its collection and its chunk; over_budget counts the passages left out. Repeating a request with the same id is the same paid searches. Nothing returned is content the caller could not read through the collection.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Header Parameters
Section titled “Header Parameters”Browser cookie mutations require value 1 and an allowed Origin. Session bearer clients may omit this header.
Required for cookie-authenticated changes. Use the UUID of the account that loaded the application. A different current cookie account returns account_changed before the handler runs. Session bearer and API key clients do not require this header.
Request Bodyrequired
Section titled “Request Bodyrequired”A stored query, the collections to search at the revisions read, the model and budget to pack for, and what funds the search.
object
object
object
Responses
Section titled “Responses”Successful request
object
One passage and where it came from. tokens is the estimate for the requested model, which is what the budget counts.
object
object
object
Where in the source the passage was cut.
object
Example
{ "data": [ { "source": { "media_type": "text/plain" }, "result": { "media_type": "text/plain" } } ]}Account_changed: reload and review with the signed-in account.
default
Section titled “default”Request error
object
object
Stable; branch on it. Any operation can answer invalid_request, with param naming the refused field when there is one; human_session_required, when an API key, service account or workload calls an operation only a signed-in person may perform; reauthentication_required, when a person’s sign-in is too old for the operation; permission_denied; route_not_found and method_not_allowed, when no operation matches the path or method; and feature_unavailable, when the operation’s service is not enabled on this deployment.
The request field a refusal is about, such as the agent_id or run_id query parameter; null when the refusal is not about one field.
Example
{ "error": { "action": "sign_in" }}