cencori 1.3.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/documents/index.d.mts +94 -0
- package/dist/documents/index.d.ts +94 -0
- package/dist/documents/index.js +88 -0
- package/dist/documents/index.js.map +1 -0
- package/dist/documents/index.mjs +63 -0
- package/dist/documents/index.mjs.map +1 -0
- package/dist/index.d.mts +23 -1
- package/dist/index.d.ts +23 -1
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +73 -0
- package/dist/index.mjs.map +1 -1
- package/dist/vision/index.d.mts +4 -1
- package/dist/vision/index.d.ts +4 -1
- package/dist/vision/index.js +11 -0
- package/dist/vision/index.js.map +1 -1
- package/dist/vision/index.mjs +11 -0
- package/dist/vision/index.mjs.map +1 -1
- package/package.json +6 -1
package/dist/index.mjs
CHANGED
|
@@ -600,6 +600,17 @@ function toBody(request) {
|
|
|
600
600
|
temperature: request.temperature,
|
|
601
601
|
response_format: request.responseFormat
|
|
602
602
|
};
|
|
603
|
+
if (request.images && request.images.length > 0) {
|
|
604
|
+
body.images = request.images.map((img) => {
|
|
605
|
+
if (img.url) return { url: img.url };
|
|
606
|
+
if (img.base64) return { base64: img.base64, mime_type: img.mimeType };
|
|
607
|
+
throw new Error("Each entry in images requires url or base64");
|
|
608
|
+
});
|
|
609
|
+
return body;
|
|
610
|
+
}
|
|
611
|
+
if (!request.image) {
|
|
612
|
+
throw new Error("vision request requires `image` or `images[]`");
|
|
613
|
+
}
|
|
603
614
|
if (request.image.url) {
|
|
604
615
|
body.image_url = request.image.url;
|
|
605
616
|
} else if (request.image.base64) {
|
|
@@ -707,6 +718,66 @@ var VisionNamespace = class {
|
|
|
707
718
|
}
|
|
708
719
|
};
|
|
709
720
|
|
|
721
|
+
// src/documents/index.ts
|
|
722
|
+
function toBody2(request, extra = {}) {
|
|
723
|
+
const body = {
|
|
724
|
+
prompt: request.prompt,
|
|
725
|
+
model: request.model,
|
|
726
|
+
max_tokens: request.maxTokens,
|
|
727
|
+
temperature: request.temperature,
|
|
728
|
+
...extra
|
|
729
|
+
};
|
|
730
|
+
if (request.document.url) {
|
|
731
|
+
body.document_url = request.document.url;
|
|
732
|
+
} else if (request.document.base64) {
|
|
733
|
+
body.document_base64 = request.document.base64;
|
|
734
|
+
body.mime_type = request.document.mimeType;
|
|
735
|
+
body.filename = request.document.filename;
|
|
736
|
+
} else {
|
|
737
|
+
throw new Error("documents request requires document.url or document.base64");
|
|
738
|
+
}
|
|
739
|
+
return body;
|
|
740
|
+
}
|
|
741
|
+
var DocumentsNamespace = class {
|
|
742
|
+
constructor(config) {
|
|
743
|
+
this.config = config;
|
|
744
|
+
}
|
|
745
|
+
/** Extract text from a PDF (native, no LLM) or image (via Vision OCR). */
|
|
746
|
+
async extract(request) {
|
|
747
|
+
return this.post("/api/ai/documents/extract", toBody2(request));
|
|
748
|
+
}
|
|
749
|
+
/** Extract then summarize the document with a chat model. */
|
|
750
|
+
async summarize(request) {
|
|
751
|
+
return this.post("/api/ai/documents/summarize", toBody2(request));
|
|
752
|
+
}
|
|
753
|
+
/** Extract then answer a question about the document. */
|
|
754
|
+
async query(request) {
|
|
755
|
+
if (!request.question) throw new Error("documents.query requires a `question`");
|
|
756
|
+
return this.post("/api/ai/documents/query", toBody2(request, { question: request.question }));
|
|
757
|
+
}
|
|
758
|
+
async post(path, body) {
|
|
759
|
+
const response = await fetch(`${this.config.baseUrl}${path}`, {
|
|
760
|
+
method: "POST",
|
|
761
|
+
headers: {
|
|
762
|
+
"CENCORI_API_KEY": this.config.apiKey,
|
|
763
|
+
"Content-Type": "application/json",
|
|
764
|
+
...this.config.headers
|
|
765
|
+
},
|
|
766
|
+
body: JSON.stringify(body)
|
|
767
|
+
});
|
|
768
|
+
const data = await response.json();
|
|
769
|
+
if (!response.ok) {
|
|
770
|
+
const message = data && typeof data === "object" && "message" in data && typeof data.message === "string" ? data.message : `Documents request failed with status ${response.status}`;
|
|
771
|
+
const code = data && typeof data === "object" && "error" in data && typeof data.error === "string" ? data.error : "request_failed";
|
|
772
|
+
const err = new Error(message);
|
|
773
|
+
err.code = code;
|
|
774
|
+
err.details = data;
|
|
775
|
+
throw err;
|
|
776
|
+
}
|
|
777
|
+
return data;
|
|
778
|
+
}
|
|
779
|
+
};
|
|
780
|
+
|
|
710
781
|
// src/sessions/index.ts
|
|
711
782
|
var SessionsNamespace = class {
|
|
712
783
|
constructor(config) {
|
|
@@ -1231,6 +1302,7 @@ var Cencori = class {
|
|
|
1231
1302
|
};
|
|
1232
1303
|
this.ai = new AINamespace(this.config);
|
|
1233
1304
|
this.vision = new VisionNamespace(this.config);
|
|
1305
|
+
this.documents = new DocumentsNamespace(this.config);
|
|
1234
1306
|
this.agents = new AgentsNamespace(this.config);
|
|
1235
1307
|
this.compute = new ComputeNamespace();
|
|
1236
1308
|
this.workflow = new WorkflowNamespace();
|
|
@@ -1657,6 +1729,7 @@ export {
|
|
|
1657
1729
|
Cencori,
|
|
1658
1730
|
CencoriError,
|
|
1659
1731
|
ComputeNamespace,
|
|
1732
|
+
DocumentsNamespace,
|
|
1660
1733
|
MemoryClient,
|
|
1661
1734
|
RateLimitError,
|
|
1662
1735
|
SafetyError,
|