UNPKG

@meldscience/meld

Version:

pipeable one-shot prompt scripting toolkit

36 lines 1.42 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenAIProvider = void 0; const openai_1 = __importDefault(require("openai")); const errors_1 = require("../errors"); class OpenAIProvider { constructor(apiKey) { if (!apiKey) { throw new errors_1.ToolError('OpenAI API key is required', 'MISSING_API_KEY'); } this.client = new openai_1.default({ apiKey }); } async sendPrompt({ model, systemPrompt, userPrompt }) { try { const messages = []; if (systemPrompt) { messages.push({ role: 'system', content: systemPrompt }); } messages.push({ role: 'user', content: userPrompt }); const response = await this.client.chat.completions.create({ model: model, messages: messages, ...(model.startsWith('o1-') ? { max_completion_tokens: 32768 } : { max_tokens: 50000 }), }); return response.choices[0].message.content || ''; } catch (error) { throw new errors_1.ToolError(`OpenAI API error: ${error.message}`, 'API_ERROR', error); } } } exports.OpenAIProvider = OpenAIProvider; //# sourceMappingURL=openai.js.map