47 lines
4.1 KiB
JavaScript
47 lines
4.1 KiB
JavaScript
import { marked } from 'marked';
|
|
import { markedTerminal } from 'marked-terminal';
|
|
import * as path from 'node:path';
|
|
import { sync as write } from '@polymech/fs/write';
|
|
import { resolve } from '@polymech/commons';
|
|
import { dumpAsScript } from '../utils/script.js';
|
|
import { applyFilters } from '../filters.js';
|
|
import { variables } from '../variables.js';
|
|
export const onCompletion = async (result = "", options) => {
|
|
result = applyFilters(result, options.filters || []);
|
|
const vars = variables(options);
|
|
if (options.dst) {
|
|
const dstPath = path.resolve(resolve(options.dst, false, {
|
|
...vars,
|
|
MODEL: path.parse(options.model).name,
|
|
ROUTER: options.router,
|
|
}));
|
|
write(dstPath, result);
|
|
options.logger.debug(`Wrote completion result to ${dstPath} : ${options.dst}`);
|
|
}
|
|
else {
|
|
marked.use(markedTerminal({
|
|
emoji: false,
|
|
}));
|
|
const content = marked(result);
|
|
process.stdout.write(content);
|
|
}
|
|
dumpAsScript(options);
|
|
// process.exit(0)
|
|
return result;
|
|
};
|
|
export const runCompletion = async (client, params, options) => {
|
|
if (options.dry) {
|
|
options.logger.info('Dry run - skipping API call');
|
|
return false;
|
|
}
|
|
// await client.beta.chat.completions.parse
|
|
const completion = await client.chat.completions.create({
|
|
model: options.model,
|
|
messages: params.messages,
|
|
response_format: options.format,
|
|
});
|
|
let result = completion.choices[0].message.content;
|
|
result = await onCompletion(result, options);
|
|
return result;
|
|
};
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWNvbXBsZXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvcnVuLWNvbXBsZXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEQsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFHM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRzNDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsU0FBYyxFQUFFLEVBQUUsT0FBa0IsRUFBRSxFQUFFO0lBQ3pFLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMvQixJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRTtZQUN2RCxHQUFHLElBQUk7WUFDUCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSTtZQUNyQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07U0FDdkIsQ0FBQyxDQUFDLENBQUE7UUFDSCxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ3RCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhCQUE4QixPQUFPLE1BQU0sT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7SUFDaEYsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztZQUN4QixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQyxDQUFBO1FBQ0gsTUFBTSxPQUFPLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBVyxDQUFDO1FBQ2pELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFDRCxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDckIsa0JBQWtCO0lBQ2xCLE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxNQUFjLEVBQUUsTUFBVyxFQUFFLE9BQWtCLEVBQUUsRUFBRTtJQUNyRixJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoQixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO1FBQ2xELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUNELDJDQUEyQztJQUMzQyxNQUFNLFVBQVUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUN0RCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1FBQ3pCLGVBQWUsRUFBRSxPQUFPLENBQUMsTUFBYTtLQUN2QyxDQUFDLENBQUE7SUFDRixJQUFJLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUE7SUFDbEQsTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM1QyxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQSJ9
|