Skip to content

Commit b399a2a

Browse files
✨ add support for rag param in workflow executions (#349)
1 parent eb7d676 commit b399a2a

File tree

5 files changed

+25
-24
lines changed

5 files changed

+25
-24
lines changed

src/client.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ export interface WorkflowOptions extends BaseOptions {
7979
* A unique, encrypted URL for accessing the document validation interface without requiring authentication.
8080
*/
8181
publicUrl?: string;
82+
/**
83+
* Whether to enable Retrieval-Augmented Generation.
84+
*/
85+
rag?: boolean;
8286
}
8387

8488
/**

src/http/httpParams.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ export interface WorkflowParams extends HTTPParams {
1616
alias?: string;
1717
priority?: ExecutionPriority;
1818
publicUrl?: string;
19+
rag?: boolean;
1920
}

src/http/workflowEndpoint.ts

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import { BaseEndpoint, EndpointResponse } from "./baseEndpoint";
22
import { ApiSettings } from "./apiSettings";
3-
import { InputSource } from "../input";
3+
import { InputSource, LocalInputSource } from "../input";
44
import { URLSearchParams } from "url";
55
import FormData from "form-data";
6-
import { LocalInputSource } from "../input";
76
import { RequestOptions } from "https";
87
import { isValidSyncResponse } from "./responseValidation";
98
import { handleError } from "./error";
@@ -35,13 +34,7 @@ export class WorkflowEndpoint extends BaseEndpoint {
3534
if (params.pageOptions !== undefined) {
3635
await super.cutDocPages(params.inputDoc, params.pageOptions);
3736
}
38-
const response = await this.#workflowReqPost(
39-
params.inputDoc,
40-
params.alias,
41-
params.priority,
42-
params.fullText,
43-
params.publicUrl
44-
);
37+
const response = await this.#workflowReqPost(params);
4538
if (!isValidSyncResponse(response)) {
4639
handleError(this.urlRoot, response, response.messageObj?.statusMessage);
4740
}
@@ -51,20 +44,18 @@ export class WorkflowEndpoint extends BaseEndpoint {
5144

5245
/**
5346
* Make a request to POST a document for workflow.
54-
* @param input Input document.
55-
* @param alias Alias for the document.
56-
* @param priority Priority for the document.
57-
* @param fullText Whether to include the fulltext in the response.
58-
* @param publicUrl Optional verification Url.
47+
*
48+
* @param {WorkflowParams} params parameters relating to prediction options.
5949
*/
60-
#workflowReqPost(
61-
input: InputSource,
62-
alias: string | null = null,
63-
priority: ExecutionPriority | null = null,
64-
fullText: boolean = false,
65-
publicUrl: string | null = null
66-
): Promise<EndpointResponse> {
67-
return this.sendFileForPrediction(input, alias, priority, fullText, publicUrl);
50+
#workflowReqPost(params: WorkflowParams): Promise<EndpointResponse> {
51+
return this.sendFileForPrediction(
52+
params.inputDoc,
53+
params.alias,
54+
params.priority,
55+
params.fullText,
56+
params.publicUrl,
57+
params.rag
58+
);
6859
}
6960

7061
/**
@@ -81,6 +72,7 @@ export class WorkflowEndpoint extends BaseEndpoint {
8172
priority: ExecutionPriority | null = null,
8273
fullText: boolean = false,
8374
publicUrl: string | null = null,
75+
rag: boolean | null = null,
8476
): Promise<EndpointResponse> {
8577
return new Promise((resolve, reject) => {
8678
const searchParams = new URLSearchParams();
@@ -89,6 +81,10 @@ export class WorkflowEndpoint extends BaseEndpoint {
8981
searchParams.append("full_text_ocr", "true");
9082
}
9183

84+
if (rag) {
85+
searchParams.append("rag", "true");
86+
}
87+
9288
const form = new FormData();
9389
if (input instanceof LocalInputSource && input.fileObject instanceof Buffer) {
9490
form.append("document", input.fileObject, {

tests/data

tests/workflows/workflow.integration.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ describe("Workflow calls", () => {
1616
const response = await client.executeWorkflow(
1717
sample,
1818
process.env["WORKFLOW_ID"] ?? "",
19-
{ alias: `node-${currentDateTime}`, priority: ExecutionPriority.low });
19+
{ alias: `node-${currentDateTime}`, priority: ExecutionPriority.low, rag: true });
2020
expect(response.execution.priority).to.equal(ExecutionPriority.low);
2121
expect(response.execution.file.alias).to.equal(`node-${currentDateTime}`);
2222
}).timeout(60000);

0 commit comments

Comments
 (0)