UNPKG

retort-js

Version:

Intuitive, production-ready prompt chaining in Javascript

30 lines (29 loc) 1.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defineGeneration = void 0; const claude_chat_completion_1 = require("./claude-chat-completion"); const log_message_1 = require("./log-message"); const message_1 = require("./message"); const openai_chat_completion_1 = require("./openai-chat-completion"); function defineGeneration(conversation, role, push) { return function generation(generationSettings) { let settings = { ...conversation.settings, ...generationSettings }; let promises = conversation.messages.map((message) => message.promise); if (settings?.model?.startsWith("claude-")) { var stream = (0, claude_chat_completion_1.claudeChatCompletion)(settings, promises); } else { // Default to OpenAI. stream = (0, openai_chat_completion_1.openAiChatCompletion)(settings, promises); } let retortMessage = new message_1.RetortMessage({ stream, role, json: !!("parameters" in settings && settings.parameters) }); if (push) { conversation.messages.push(retortMessage); } retortMessage.promise.then((message) => { (0, log_message_1.logMessage)(message); }); return retortMessage.promise; }; } exports.defineGeneration = defineGeneration;