tbold/cli-ml-tools
1
1#!/usr/bin/env node2 3import clear from 'clear';4import { Command } from 'commander';5import chalk from 'chalk';6import figlet from 'figlet';7import ClassificationPipeline from './classificationPipeline.js';8import SummarizationPipeline from './summarizationPipeline.js';9 10clear();11console.log(12 chalk.red(13 figlet.textSync('cli summarize', { horizontalLayout: 'full' })14 )15);16 17const command = new Command();18command19 .version('1.0.0')20 .description("An mini-CLI for summarizing text input")21 .usage('[OPTIONS]...')22 .option('-s, --summarize <text>', 'create summary of text input')23 .option('-S, --score <text>', 'create sentiment score of text input')24 .parse(process.argv);25 26 27if (!process.argv.slice(2).length) {28 command.outputHelp();29}30 31const options = command.opts();32 33if (options.score) {34 getClassification(options.score);35}36 37if (options.summarize) {38 getSummary(options.summarize);39}40 41async function getClassification(input) {42 const classifier = await ClassificationPipeline.getInstance();43 const response = await classifier(input);44 console.log(`input: ${input} \n score: ${JSON.stringify(response)}`);45}46 47async function getSummary(input) {48 const summarizer = await SummarizationPipeline.getInstance();49 const response = await summarizer(input);50 51 console.log(`input: ${input} \n summary: ${JSON.stringify(response)}`);52}53 54 