Upload returns immediately with run ids; ingestion runs in the background.
Poll the training runs (SDK get_runs, or the
running jobs endpoint) until
they complete before searching. Don’t set Content-Type yourself on the
upload — let your HTTP client set the multipart boundary.
# pip install noxus-sdkfrom pathlib import Pathimport timefrom noxus_sdk.client import Clientclient = Client(api_key="your_api_key")kb = client.knowledge_bases.get(knowledge_base_id="kb_id")run_ids = kb.upload_document(files=[Path("path/to/document.pdf")], prefix="/")print(f"ingestion started: {run_ids}")# Wait for ingestion to finishwhile any( r.status not in ("completed", "failed") for r in kb.get_runs(run_ids=",".join(run_ids))): time.sleep(3)print("ingestion done")
import requestsbase = "https://backend.noxus.ai"files = [("files", ("document.txt", open("path/to/document.txt", "rb"), "text/plain"))]resp = requests.post( f"{base}/v1/knowledge-bases/kb_id/upload_train", headers={"X-API-KEY": "your_api_key"}, # no Content-Type — requests sets multipart files=files, params={"prefix": "/"},)print(resp.json()) # run ids to poll for ingestion status
import fs from "fs";const base = "https://backend.noxus.ai";const form = new FormData();form.append("files", new Blob([fs.readFileSync("path/to/document.txt")]), "document.txt");const resp = await fetch(`${base}/v1/knowledge-bases/kb_id/upload_train?prefix=/`, { method: "POST", headers: { "X-API-KEY": "your_api_key" }, // fetch sets the multipart boundary body: form,});console.log(await resp.json()); // run ids
Runs a semantic / hybrid query (depending on the KB’s retrieval settings) over
the ingested content and returns the matching chunks with their source
documents. Scope the search with prefix.
from noxus_sdk.client import Clientclient = Client(api_key="your_api_key")kb = client.knowledge_bases.get(knowledge_base_id="kb_id")for result in kb.search(query="Your search query", prefix="/"): print(result.document_source.name) print(result.content)
import requestsresp = requests.post( "https://backend.noxus.ai/v1/knowledge-bases/kb_id/search", params={"query": "Your search query", "prefix": "/"}, headers={"X-API-KEY": "your_api_key", "Content-Type": "application/json"},)for result in resp.json(): print(result["document_source"]["name"]) print(result["content"])