UNPKG

@iyio/convo-lang

Version:

A conversational language.

51 lines 2.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createConvoVisionFunction = void 0; const zod_1 = require("zod"); const convo_lib_1 = require("./convo-lib"); const paramsType = zod_1.z.object({ query: zod_1.z.string().describe('The question or request made by the user.'), supportInfo: zod_1.z.string().optional().describe("Any supporting information required to answer the user's question or complete their request. This can include information from previous messages."), imageUrls: zod_1.z.string().array().describe('URLs of referenced images') }); const createConvoVisionFunction = ({ ...defaults } = {}) => { return { ...defaults, name: convo_lib_1.convoFunctions.queryImage, description: 'Queries an image based on a user request', paramsType, scopeCallback: async (scope, ctx) => { const { query, supportInfo, imageUrls } = paramsType.parse((0, convo_lib_1.convoLabeledScopeParamsToObj)(scope)); const srcConvo = ctx.convo.conversation; if (!srcConvo) { return { error: 'no parent conversation found' }; } const convo = srcConvo?.createChild({ capabilities: [], serviceCapabilities: ['vision'], }); const varMsg = ctx.getVar(convo_lib_1.convoVars.__visionServiceSystemMessage, scope); if (typeof varMsg === 'string') { convo.append(/*convo*/ ` > system ${(0, convo_lib_1.escapeConvoMessageContent)(varMsg)} `); } convo.append(/*convo*/ ` > user ${(supportInfo ? (0, convo_lib_1.escapeConvoMessageContent)(supportInfo) + '\n\n' : '') + imageUrls.map(i => `![](${i})`).join('\n')} ${(0, convo_lib_1.escapeConvoMessageContent)(query)} `); convo.unregisteredVars['__debug'] = true; const completion = await convo.completeAsync(); const response = completion.message?.content; if (response !== undefined) { return { result: response }; } const d = ctx.getVar(convo_lib_1.convoVars.__defaultVisionResponse, scope); return { result: (typeof d === 'string') ? d : convo_lib_1.defaultConvoVisionResponse }; } }; }; exports.createConvoVisionFunction = createConvoVisionFunction; //# sourceMappingURL=createConvoVisionFunction.js.map