diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz index 92c8ebe..4d93229 100644 Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ diff --git a/src/hh/scraper.ts b/src/hh/scraper.ts index 9bac49b..195b756 100644 --- a/src/hh/scraper.ts +++ b/src/hh/scraper.ts @@ -458,13 +458,15 @@ export async function applyToJobs( // console.log('[LetterDebug]:', '\nresume: ', resume.data, '\ndescription: ', description, '\nprompt: ', user!.prompt) await keep(`✍️ Генерирую письмо: ${vacancy.title}`) + let letterError: string | null = null const letterPromise = Promise.race([ createMessage(resume.data, description, user!.prompt), new Promise((_, reject) => - setTimeout(() => reject(new Error('Letter generation timeout (60s)')), 80000), + setTimeout(() => reject(new Error('Letter generation timeout (80s)')), 80000), ), ]).catch((err: Error) => { log.error('Letter Error:', err.message) + letterError = err.message return null }) @@ -500,6 +502,10 @@ export async function applyToJobs( await addLetter?.click() } const letter = await letterPromise + if (letterError) { + await keep(`❌ Ошибка генерации письма:\n${escapeHtml(letterError)}`) + break + } if (letter) { await keep(`✅ ${escapeHtml(vacancy.title)}\n\n${escapeHtml(letter)}`) const letterInput = await page.$('[data-qa="vacancy-response-popup-form-letter-input"]') @@ -508,9 +514,6 @@ export async function applyToJobs( await letterInput?.fill(letter) // await page.pause() } - else { - await keep(`Письмо не сгенерировано, ошибка`) - } await page.waitForTimeout(randomDelay()) @@ -531,6 +534,10 @@ export async function applyToJobs( log.debug(`single flow: ${chatId}`) const letter = await letterPromise + if (letterError) { + await keep(`❌ Ошибка генерации письма:\n${escapeHtml(letterError)}`) + break + } if (letter) { await keep(`✅ ${escapeHtml(vacancy.title)}\n\n${escapeHtml(letter)}`) diff --git a/src/openai.ts b/src/openai.ts index 9d10b31..65189a6 100644 --- a/src/openai.ts +++ b/src/openai.ts @@ -32,10 +32,13 @@ async function getClient() { hostname: '127.0.0.1', port: 4096, config: { - model: 'openrouter/deepseek/deepseek-v4-flash', + model: 'openrouter/openai/gpt-oss-120b:free', provider: { openrouter: { options: { apiKey: process.env.OPENROUTER_API_KEY }, + models: { + 'openai/gpt-oss-120b:free': {}, + }, }, }, agent: {