import 'dotenv/config';
import { accessible_summarizer as nerd } from '../../build/src/prebuilt/index.js';
import { readFileSync, writeFileSync, readdirSync } from 'fs';
import path from 'path';
async function main(book) {
const boundNerd = await nerd.bindToModel('gemini-1.5-pro-latest');
const source_path = path.join('.', 'sources', 'dewart', book);
const e_and_c = readdirSync(source_path);
const texts = e_and_c.map((file) => {
const book_path = path.join(source_path, file);
const text = readFileSync(book_path, 'utf-8');
return {
text,
file,
};
});
const output_path = path.join('.', 'demos', 'dewart', book, 'summaries');
for (const { text, file } of texts) {
console.log(`Summarizing ${book}/${file}`);
const summary = await boundNerd.invoke(text);
const summary_path = path.join(output_path, file);
writeFileSync(summary_path, summary);
}
}
const book_name = process.argv[2] || 'evolution_and_consciousness';
if (
book_name !== 'evolution_and_consciousness' &&
book_name !== 'humes_challenge'
) {
console.log(
"Invalid book name. Please choose either 'evolution_and_consciousness' or 'humes_challenge'",
);
process.exit(1);
}
main(book_name);