-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcreate_dataset.js
More file actions
31 lines (24 loc) · 1.56 KB
/
create_dataset.js
File metadata and controls
31 lines (24 loc) · 1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// create_dataset.js
import fs from 'fs/promises';
// --- НАСТРОЙКИ ---
const INPUT_FILE = './data/input.txt'; // Наш "учебник"
const OUTPUT_FILE = './data/shakespeare_train.jsonl'; // Куда складывать примеры
const SEQUENCE_LENGTH = 100; // Длина одного примера (промпт + 1 символ)
async function createDataset() {
console.log(`[Библиотекарь] Читаю учебник из ${INPUT_FILE}...`);
const text = await fs.readFile(INPUT_FILE, 'utf-8');
console.log(`[Библиотекарь] Учебник загружен. Всего ${text.length} символов.`);
const examples = [];
console.log(`[Библиотекарь] Нарезаю текст на примеры длиной ${SEQUENCE_LENGTH} символов...`);
// Идем по тексту и создаем примеры
for (let i = 0; i < text.length - SEQUENCE_LENGTH; i++) {
const sequence = text.substring(i, i + SEQUENCE_LENGTH);
const prompt = sequence.substring(0, sequence.length - 1);
const completion = sequence.charAt(sequence.length - 1);
examples.push(JSON.stringify({ prompt, completion }));
}
console.log(`[Библиотекарь] Создано ${examples.length} примеров. Записываю в файл ${OUTPUT_FILE}...`);
await fs.writeFile(OUTPUT_FILE, examples.join('\n'));
console.log(`[Библиотекарь] ✅ Готово! Новый набор данных создан.`);
}
createDataset().catch(console.error);