feat(src/hh/scraper.ts): добавляет обработку ошибок генерации письма и увеличивает таймаут до 80 секунд
All checks were successful
Deploy / deploy (push) Successful in 50s

 feat(src/openai.ts): обновляет модель OpenAI на 'openrouter/openai/gpt-oss-120b:free'
This commit is contained in:
Oscar
2026-06-15 15:55:59 +03:00
parent d2f99e99e3
commit 9603aed259
3 changed files with 15 additions and 5 deletions

BIN
.yarn/install-state.gz vendored

Binary file not shown.

View File

@@ -458,13 +458,15 @@ export async function applyToJobs(
// console.log('[LetterDebug]:', '\nresume: ', resume.data, '\ndescription: ', description, '\nprompt: ', user!.prompt) // console.log('[LetterDebug]:', '\nresume: ', resume.data, '\ndescription: ', description, '\nprompt: ', user!.prompt)
await keep(`✍️ Генерирую письмо: ${vacancy.title}`) await keep(`✍️ Генерирую письмо: ${vacancy.title}`)
let letterError: string | null = null
const letterPromise = Promise.race([ const letterPromise = Promise.race([
createMessage(resume.data, description, user!.prompt), createMessage(resume.data, description, user!.prompt),
new Promise<null>((_, reject) => new Promise<null>((_, reject) =>
setTimeout(() => reject(new Error('Letter generation timeout (60s)')), 80000), setTimeout(() => reject(new Error('Letter generation timeout (80s)')), 80000),
), ),
]).catch((err: Error) => { ]).catch((err: Error) => {
log.error('Letter Error:', err.message) log.error('Letter Error:', err.message)
letterError = err.message
return null return null
}) })
@@ -500,6 +502,10 @@ export async function applyToJobs(
await addLetter?.click() await addLetter?.click()
} }
const letter = await letterPromise const letter = await letterPromise
if (letterError) {
await keep(`❌ Ошибка генерации письма:\n${escapeHtml(letterError)}`)
break
}
if (letter) { if (letter) {
await keep(`✅ <b>${escapeHtml(vacancy.title)}</b>\n\n${escapeHtml(letter)}`) await keep(`✅ <b>${escapeHtml(vacancy.title)}</b>\n\n${escapeHtml(letter)}`)
const letterInput = await page.$('[data-qa="vacancy-response-popup-form-letter-input"]') 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 letterInput?.fill(letter)
// await page.pause() // await page.pause()
} }
else {
await keep(`Письмо не сгенерировано, ошибка`)
}
await page.waitForTimeout(randomDelay()) await page.waitForTimeout(randomDelay())
@@ -531,6 +534,10 @@ export async function applyToJobs(
log.debug(`single flow: ${chatId}`) log.debug(`single flow: ${chatId}`)
const letter = await letterPromise const letter = await letterPromise
if (letterError) {
await keep(`❌ Ошибка генерации письма:\n${escapeHtml(letterError)}`)
break
}
if (letter) { if (letter) {
await keep(`✅ <b>${escapeHtml(vacancy.title)}</b>\n\n${escapeHtml(letter)}`) await keep(`✅ <b>${escapeHtml(vacancy.title)}</b>\n\n${escapeHtml(letter)}`)

View File

@@ -32,10 +32,13 @@ async function getClient() {
hostname: '127.0.0.1', hostname: '127.0.0.1',
port: 4096, port: 4096,
config: { config: {
model: 'openrouter/deepseek/deepseek-v4-flash', model: 'openrouter/openai/gpt-oss-120b:free',
provider: { provider: {
openrouter: { openrouter: {
options: { apiKey: process.env.OPENROUTER_API_KEY }, options: { apiKey: process.env.OPENROUTER_API_KEY },
models: {
'openai/gpt-oss-120b:free': {},
},
}, },
}, },
agent: { agent: {