UNPKG

@convo-lang/convo-lang

Version:
93 lines 3.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.flattenConvoAsync = exports.callConvoFunctionWithSchemeAsync = exports.callConvoFunctionAsync = exports.getConvoJsonCompletionAsync = exports.getConvoUserMessageCompletionAsync = exports.getConvoTextCompletionAsync = exports.getConvoCompletionAsync = void 0; const common_1 = require("@iyio/common"); const Conversation_1 = require("./Conversation"); const convo_lib_1 = require("./convo-lib"); const getConvoCompletionAsync = (messagesOrOptions, conversationOptions) => { const conversation = new Conversation_1.Conversation(conversationOptions); return conversation.completeAsync(messagesOrOptions); }; exports.getConvoCompletionAsync = getConvoCompletionAsync; const getConvoTextCompletionAsync = async (messagesOrOptions, conversationOptions) => { const r = await (0, exports.getConvoCompletionAsync)(messagesOrOptions, conversationOptions); return r.message?.content; }; exports.getConvoTextCompletionAsync = getConvoTextCompletionAsync; const getConvoUserMessageCompletionAsync = async (userMessage, conversationOptions) => { const r = await (0, exports.getConvoCompletionAsync)(`> user\n${(0, convo_lib_1.escapeConvoMessageContent)(userMessage)}`, conversationOptions); return r.message?.content; }; exports.getConvoUserMessageCompletionAsync = getConvoUserMessageCompletionAsync; const getConvoJsonCompletionAsync = async (messagesOrOptions, conversationOptions) => { const c = await (0, exports.getConvoCompletionAsync)(messagesOrOptions, conversationOptions); if (c.message?.content === undefined) { return undefined; } try { return JSON.parse(c.message.content); } catch { return undefined; } }; exports.getConvoJsonCompletionAsync = getConvoJsonCompletionAsync; const callConvoFunctionAsync = async (messagesOrOptions, conversationOptions) => { if (messagesOrOptions === undefined) { messagesOrOptions = {}; } else if (typeof messagesOrOptions === 'string') { messagesOrOptions = { append: messagesOrOptions }; } messagesOrOptions.returnOnCall = true; const c = await (0, exports.getConvoCompletionAsync)(messagesOrOptions, conversationOptions); return c.message?.callParams; }; exports.callConvoFunctionAsync = callConvoFunctionAsync; const callConvoFunctionWithSchemeAsync = async (functionName, functionDescription, params, messagesOrOptions, conversationOptions) => { const conversation = new Conversation_1.Conversation(conversationOptions); conversation.defineFunction({ name: functionName, paramsType: params, description: functionDescription, }); return await conversation.callStubFunctionAsync(messagesOrOptions); }; exports.callConvoFunctionWithSchemeAsync = callConvoFunctionWithSchemeAsync; const flattenConvoAsync = async (code, options) => { try { const conversation = new Conversation_1.Conversation({ ...options, disableAutoFlatten: true }); const r = conversation.append(code); if (r.error || !r.result) { return { success: false, parsingResult: r, vars: {}, messages: [] }; } const flat = await conversation.flattenAsync(); return { success: true, flat, vars: flat.vars, messages: flat.messages, parsingResult: r, }; } catch (ex) { return { success: false, parsingResult: { error: { message: (0, common_1.getErrorMessage)(ex), index: 0, lineNumber: 0, col: 0, line: '', near: '', }, endIndex: 0, }, vars: {}, messages: [] }; } }; exports.flattenConvoAsync = flattenConvoAsync; //# sourceMappingURL=convo-helpers.js.map