UNPKG

@just-every/ensemble

Version:

LLM provider abstraction layer with unified streaming interface

66 lines (64 loc) 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setEnsembleRequestFunction = setEnsembleRequestFunction; exports.verifyOutput = verifyOutput; let ensembleRequestFunction = null; function setEnsembleRequestFunction(fn) { ensembleRequestFunction = fn; } async function verifyOutput(verifier, output, originalMessages) { const verificationPrompt = `Please verify if the following output is correct and complete: ${output} Respond with JSON: {"status": "pass"} or {"status": "fail", "reason": "explanation of what is wrong"}`; const verificationMessages = [ ...originalMessages, { type: 'message', role: 'assistant', content: output, status: 'completed', }, { type: 'message', role: 'user', content: verificationPrompt, }, ]; const verifierWithSchema = { ...verifier, jsonSchema: { type: 'json_schema', name: 'verification_result', schema: { type: 'object', properties: { status: { type: 'string', enum: ['pass', 'fail'] }, reason: { type: 'string' }, }, required: ['status'], }, }, }; if (!ensembleRequestFunction) { throw new Error('Ensemble request function not set. This is a circular dependency issue.'); } try { const stream = ensembleRequestFunction(verificationMessages, verifierWithSchema); let fullResponse = ''; for await (const event of stream) { if (event.type === 'message_complete' && 'content' in event) { fullResponse = event.content; } } const jsonResponse = JSON.parse(fullResponse); return jsonResponse; } catch (error) { console.error('Verification failed:', error); return { status: 'fail', reason: 'Invalid verification response', }; } } //# sourceMappingURL=verification.js.map