@convo-lang/convo-lang
Version:
The language of AI
93 lines • 3.98 kB
JavaScript
;
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