UNPKG

@pipedream/agentset

Version:

Pipedream Agentset Components

101 lines (98 loc) 2.45 kB
import agentset from "../../agentset.app.mjs"; import { PAYLOAD_TYPE_OPTIONS } from "../../common/constants.mjs"; import { parseObject } from "../../common/utils.mjs"; export default { key: "agentset-create-ingest-job", name: "Create Ingest Job", description: "Create an ingest job for the authenticated organization. [See the documentation](https://docs.agentset.ai/api-reference/endpoint/ingest-jobs/create)", version: "0.0.1", type: "action", props: { agentset, namespaceId: { propDefinition: [ agentset, "namespaceId", ], }, payloadType: { type: "string", label: "Payload Type", description: "Type of payload for the ingest job", options: PAYLOAD_TYPE_OPTIONS, reloadProps: true, }, text: { type: "string", label: "Text", description: "The text to ingest", hidden: true, }, fileUrl: { type: "string", label: "File URL", description: "The URL of the file to ingest", hidden: true, }, urls: { type: "string[]", label: "URLs", description: "The URLs to ingest", hidden: true, }, name: { type: "string", label: "Name", description: "The name of the ingest job", optional: true, hidden: true, }, }, async additionalProps(props) { props.text.hidden = true; props.name.hidden = true; props.fileUrl.hidden = true; props.urls.hidden = true; switch (this.payloadType) { case "TEXT": props.text.hidden = false; props.name.hidden = false; break; case "FILE": props.fileUrl.hidden = false; props.name.hidden = false; break; case "URLS": props.urls.hidden = false; break; } return {}; }, async run({ $ }) { const payload = { type: this.payloadType, }; switch (this.payloadType) { case "TEXT": payload.text = this.text; payload.name = this.name; break; case "FILE": payload.fileUrl = this.fileUrl; payload.name = this.name; break; case "URLS": payload.urls = parseObject(this.urls); break; } const response = await this.agentset.createIngestJob({ $, namespaceId: this.namespaceId, data: { payload, }, }); $.export("$summary", `Ingest job created successfully: ID ${response.data.id}`); return response; }, };