UNPKG

@just-every/ensemble

Version:

LLM provider abstraction layer with unified streaming interface

59 lines (57 loc) 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.verifyOutput = verifyOutput; const ensemble_request_js_1 = require("../core/ensemble_request.cjs"); 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'], }, }, }; try { const stream = (0, ensemble_request_js_1.ensembleRequest)(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