- BrainTools - https://www.braintools.ru -
Все мы видели эти заголовки: «ИИ оставит программистов без работы», «Копирайтеры больше не нужны», «Завод — наше всё». Паника, хайп, мемы. Я решил не гадать на кофейной гуще, а спросить у самого виновника торжества.
У меня задержали рейс на самолёт, и за 2 часа я сделал шуточный сервис ai‑fire.ru [2], который показывает, отберёт ли у вас работу ИИ.
1️⃣ вводишь свою профессию
2️⃣ жмёшь кнопку
3️⃣ узнаёшь — пора паниковать или пока можно выдохнуть
Важно что пользователь получает честный (иногда жестокий) ответ от нейросети с процентом риска, списком задач, которые ИИ заберет первыми, и навыками, которые спасут твою карьеру.
💼 Бизнес база
Для любой компании важно сокращать расходы и увеличивать доходы, поэтому любая автоматизация должна приводить либо к увеличению доходов либо к сокращению расходов. Доходы увеличить обычно сложно, а вот сократить персонал — просто(внедрил агента, отчитался, сократил штатную должность).
Таким образом число резюме к числу вакансий увеличилось в 2 раза за 2025 год.
🧠 Мозги проекта: DeepSeek API
Для пет‑проекта, который может «выстрелить» (или лечь под хабраэффектом), платить по прайсу GPT-4o было больно, поэтому я подключил DeepSeek V3.
— Цена: В разы дешевле «больших братьев».
— Качество: В задачах на логику [4] и структурирование данных он показал себя блестяще.
— JSON Mode: Работает из коробки.
Промпт и JSON‑режим
Самое сложное в работе с LLM — заставить её отвечать стабильно. Мне не нужен был поток сознания, мне нужна была структура для фронтенда.
Вот как выглядит мой системный промпт (упрощенно):
```typescript:src/app/api/analyze/route.ts
const systemPrompt = `
You are an expert AI Job Market Analyst.
Analyze the user's profession and return a JSON object.
Language of response: ${locale}.
JSON Structure required:
{
"risk_score": (number 0-100),
"verdict": (short punchy title),
"reasoning": (2 sentences explanation),
"safe_skills": (array of 3 skills hard to automate),
"replaced_tasks": (array of 3 tasks AI will take over)
}
`;
```
А вот так мы делаем запрос. Обратите внимание [6] на response_format: { type: "json_object" }. Это магия, которая спасает от 99% ошибок парсинга.
```typescript:src/app/api/analyze/route.ts
const completion = await openai.chat.completions.create({
messages: [
{ role: "system", content: systemPrompt },
{ role: "user", content: `Profession: ${jobTitle}` }
],
model: "deepseek-chat",
response_format: { type: "json_object" }, // <--- Важно!
temperature: 0.7,
});
```
💾 Кэширование: Не будь жадным
Пользователи предсказуемы. 50 человек спросят про «Программиста», 30 про «Дизайнера» и 20 про «Маркетолога». Зачем каждый раз дергать платный API?
Я поднял простую MySQL базу. Перед тем как идти к DeepSeek, мы проверяем: «А не спрашивали ли это уже?».
Логика простая:
1. Нормализуем ввод (jobTitle.trim().toLowerCase()).
2. Ищем в базе.
3. Если нашли — отдаем готовый JSON и инкрементируем счетчик популярности (интересно же потом статистику глянуть).
4. Если нет — идем в API и сохраняем результат.
```typescript:src/app/api/analyze/route.ts
// ... подключение к БД ...
// 1. Проверяем кэш
const [rows] = await pool.execute<RowDataPacket[]>(
'SELECT analysis_json, request_count FROM profession_analysis WHERE profession = ? AND locale = ?',
[normalizedJobTitle, locale]
);
if (rows.length > 0) {
// Ура, экономия!
await pool.execute(
'UPDATE profession_analysis SET request_count = request_count + 1 WHERE profession = ? AND locale = ?',
[normalizedJobTitle, locale]
);
return NextResponse.json(rows[0].analysis_json);
}
// ... запрос к API ...
// 2. Сохраняем для потомков
await pool.execute(
'INSERT INTO profession_analysis (profession, locale, analysis_json) VALUES (?, ?, ?)',
[normalizedJobTitle, locale, JSON.stringify(data)]
);
```
Это снизило нагрузку на API процентов на 40% уже в первые часы тестов.
🏁 Что в итоге?
Проект ai‑fire.ru [7] живёт и здравствует.
Статистика с сайта отображается на дашборде Datalens [8].
Стек:
Frontend: Next.js
LLM: DeepSeek V3
Database: MySQL
Заходите, проверяйте свои профессии. Пишите в комменты, кого ИИ «уволил» с вероятностью 100%, а кто оказался незаменим.
P. S. Если введете «Professional Sleeper» (Профессиональный спящий), ИИ выдаст очень забавный вердикт. Попробуйте найти пасхалки! 😉
Жду вашего фидбека и звезд на GitHub [9].
А ещё у нас есть сообщество AI Founders [10], присоединяйся в telegram [11] — будем вместе постигать AI.
Автор: garbuzenko
Источник [12]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/25835
URLs in this post:
[1] интеллекта: http://www.braintools.ru/article/7605
[2] ai‑fire.ru: https://ai-fire.ru
[3] hh.ru: https://stats.hh.ru/moscow?salaryDynamicChartProfArea=information_technology&hhIndexProfArea=information_technology
[4] логику: http://www.braintools.ru/article/7640
[5] Image: https://sourcecraft.dev/
[6] внимание: http://www.braintools.ru/article/7595
[7] ai‑fire.ru: http://ai-fire.ru
[8] Datalens: https://datalens.yandex/iew9k9ycrsi02
[9] GitHub: https://github.com/Garbuzenko/aifire
[10] AI Founders: https://ai-founders.ru
[11] telegram: https://t.me/aifoundersru
[12] Источник: https://habr.com/ru/articles/1000816/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1000816
Нажмите здесь для печати.