@gravityai-dev/openai
Version:
OpenAI integration for Gravity workflow system
51 lines • 1.79 kB
JavaScript
/**
* 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
;