@meldscience/meld
Version:
pipeable one-shot prompt scripting toolkit
36 lines • 1.35 kB
JavaScript
;
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,
max_tokens: 4096,
});
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