UNPKG

@gravityai-dev/openai

Version:

OpenAI integration for Gravity workflow system

51 lines 1.79 kB
"use strict"; /** * OpenAI Node Executor * Handles text generation using OpenAI's GPT models */ Object.defineProperty(exports, "__esModule", { value: true }); const plugin_base_1 = require("@gravityai-dev/plugin-base"); const queryChatGPT_1 = require("../service/queryChatGPT"); const validation_1 = require("../util/validation"); // Get platform dependencies const { PromiseNode } = (0, plugin_base_1.getPlatformDependencies)(); class OpenAIExecutor extends PromiseNode { constructor() { super("OpenAI"); } async validateConfig(config) { return (0, validation_1.validateOpenAIConfig)(config); } async executeNode(inputs, config, context) { // Build credential context for the service const credentialContext = this.buildCredentialContext(context); // Call completion service with logger and execution context const result = await (0, queryChatGPT_1.queryChatGPT)(config, credentialContext, this.logger, { workflowId: context.workflowId || context.workflow?.id || "", executionId: context.executionId, nodeId: context.nodeId, }); return { __outputs: { text: result.text, usage: result.usage, }, }; } /** * Build credential context from execution context */ buildCredentialContext(context) { const { workflowId, executionId, nodeId } = this.validateAndGetContext(context); return { workflowId, executionId, nodeId, nodeType: this.nodeType, config: context.config, credentials: context.credentials || {}, }; } } exports.default = OpenAIExecutor; //# sourceMappingURL=executor.js.map