Как автоматизировать Photoshop через кодинг
Когда говорят об автоматизации, чаще всего имеют в виду Python. Но важно понимать: Photoshop не выполняет Python-код напрямую.
Зато у него есть встроенная поддержка скриптов — Photoshop умеет исполнять код на JavaScript (ExtendScript).
Это не «JS как в браузере» и не замена Python. Это родной язык автоматизации Photoshop, с прямым доступом к:
- слоям
- тексту
- смарт-объектам
- экспорту файлов
- истории документа
Если задача — управлять самим Photoshop, то скрипты внутри Photoshop — самый надёжный путь.
Что это даёт на практике
Через код можно:
- массово менять текст в PSD
- генерировать сотни изображений из одного шаблона
- автоматизировать экспорт
- исключить Actions и Variables с их ограничениями
По сути, мы описываем действия, которые дизайнер делает руками, но в виде кода.
Пример задачи
Есть:
- один PSD
- текстовый слой
- значения
Нужно:
- автоматически подставить значения
- сохранить 100 PNG-файлов
- вернуть PSD в исходное состояние
Пример скрипта для Photoshop (JSX)
Как запускать
- Photoshop → Файл → Сценарии → Обзор…
- выбрать
- выбрать папку
- получить пачку файлов
Важный момент
Python здесь не «конкурент» JavaScript.
- Python — отличный оркестратор процессов
- Photoshop — отдельная среда выполнения
- ExtendScript — язык управления внутри неё
В реальных пайплайнах это часто комбинируется: Python → запускает процессы → Photoshop выполняет свои скрипты
Когда говорят об автоматизации, чаще всего имеют в виду Python. Но важно понимать: Photoshop не выполняет Python-код напрямую.
Зато у него есть встроенная поддержка скриптов — Photoshop умеет исполнять код на JavaScript (ExtendScript).
Это не «JS как в браузере» и не замена Python. Это родной язык автоматизации Photoshop, с прямым доступом к:
- слоям
- тексту
- смарт-объектам
- экспорту файлов
- истории документа
Если задача — управлять самим Photoshop, то скрипты внутри Photoshop — самый надёжный путь.
Что это даёт на практике
Через код можно:
- массово менять текст в PSD
- генерировать сотни изображений из одного шаблона
- автоматизировать экспорт
- исключить Actions и Variables с их ограничениями
По сути, мы описываем действия, которые дизайнер делает руками, но в виде кода.
Пример задачи
Есть:
- один PSD
- текстовый слой
- значения
1 м → 100 мНужно:
- автоматически подставить значения
- сохранить 100 PNG-файлов
- вернуть PSD в исходное состояние
Пример скрипта для Photoshop (JSX)
#target photoshop
var doc = app.activeDocument;
var layerName = "1 м"; // имя текстового слоя
var outputFolder = Folder.selectDialog("Выбери папку для сохранения");
if (!outputFolder) {
alert("Папка не выбрана");
exit();
}
function findTextLayer(layerSet) {
for (var i = 0; i < layerSet.layers.length; i++) {
var layer = layerSet.layers[i];
if (layer.kind == LayerKind.TEXT && layer.name == layerName) {
return layer;
}
if (layer.typename == "LayerSet") {
var found = findTextLayer(layer);
if (found) return found;
}
}
return null;
}
var textLayer = findTextLayer(doc);
if (!textLayer) {
alert("Текстовый слой не найден");
exit();
}
for (var i = 1; i <= 100; i++) {
textLayer.textItem.contents = i + " м";
var file = new File(outputFolder + "/pkabel_4x2_5_" + i + "m.png");
var opts = new PNGSaveOptions();
opts.compression = 9;
doc.saveAs(file, opts, true, Extension.LOWERCASE);
}
// откат без сохранения
doc.activeHistoryState = doc.historyStates[0];
alert("Готово!");
Как запускать
- Photoshop → Файл → Сценарии → Обзор…
- выбрать
.jsx- выбрать папку
- получить пачку файлов
Важный момент
Python здесь не «конкурент» JavaScript.
- Python — отличный оркестратор процессов
- Photoshop — отдельная среда выполнения
- ExtendScript — язык управления внутри неё
В реальных пайплайнах это часто комбинируется: Python → запускает процессы → Photoshop выполняет свои скрипты
🔥14❤5👍5❤🔥1🙉1
Бесплатная учительская подписка ChatGPT Plus 🎓
Что такое учительская подписка?
Это специальная образовательная версия ChatGPT Plus с полным доступом к GPT-4, расширенными возможностями и приоритетом в обработке запросов — все бесплатно для преподавателей.
Как получить бесплатно:
1. Переходим по ссылке https://em.bjedu.tech/en/ и создаем бесплатную образовательную почту (обязательно в зоне erzi.me)
2. Копируем полученный email адрес
3. Заходим в ChatGPT: https://chatgpt.com (Обязательно используйте VPN!)
4. Нажимаем "Зарегистрироваться" и вставляем образовательную почту
5. Придумываем надежный пароль и жмем "Продолжить"
6. Копируем код подтверждения из письма и вводим его
7. Заполняем данные регистрации
🎯 Важно: В поле "Роль" обязательно выбираем "Teacher" (Учитель)
8. Если после регистрации видите значок образовательной подписки — поздравляю, все получилось! 🎉
Что такое учительская подписка?
Это специальная образовательная версия ChatGPT Plus с полным доступом к GPT-4, расширенными возможностями и приоритетом в обработке запросов — все бесплатно для преподавателей.
Как получить бесплатно:
1. Переходим по ссылке https://em.bjedu.tech/en/ и создаем бесплатную образовательную почту (обязательно в зоне erzi.me)
2. Копируем полученный email адрес
3. Заходим в ChatGPT: https://chatgpt.com (Обязательно используйте VPN!)
4. Нажимаем "Зарегистрироваться" и вставляем образовательную почту
5. Придумываем надежный пароль и жмем "Продолжить"
6. Копируем код подтверждения из письма и вводим его
7. Заполняем данные регистрации
🎯 Важно: В поле "Роль" обязательно выбираем "Teacher" (Учитель)
8. Если после регистрации видите значок образовательной подписки — поздравляю, все получилось! 🎉
🔥15❤8👍6🍓1🎃1😘1
Бесплатный бизнес-аккаунт Gemini на месяц 🚀
Что дает бизнес-подписка Gemini?
Полный доступ к расширенным возможностям Google Gemini, включая продвинутые модели, инструменты для работы с данными, интеграцию с Google Workspace и новейшие фичи вроде Nano Babanana и генерации видео через Veo3.
Пошаговая инструкция:
1. Переходим на сайт временной почты: https://temp-mail.org/en
2. Копируем сгенерированный email адрес
3. Открываем страницу бизнес-регистрации Gemini: https://auth.business.gemini.google/login
4. Вставляем временную почту и продолжаем регистрацию
5. Копируем код подтверждения из письма и вводим его
6. Завершаем настройку аккаунта
Готово! Теперь целый месяц пользуетесь всеми премиум-инструментами Gemini абсолютно бесплатно 🎉
Что доступно:
✅ Продвинутые модели Gemini
✅ Nano Babanana
✅ Генерация видео через Veo3
✅ Расширенные лимиты запросов
✅ Интеграция с бизнес-инструментами
⏰ Важно: Не забудьте сохранить доступ к временной почте на весь период использования!
Что дает бизнес-подписка Gemini?
Полный доступ к расширенным возможностям Google Gemini, включая продвинутые модели, инструменты для работы с данными, интеграцию с Google Workspace и новейшие фичи вроде Nano Babanana и генерации видео через Veo3.
Пошаговая инструкция:
1. Переходим на сайт временной почты: https://temp-mail.org/en
2. Копируем сгенерированный email адрес
3. Открываем страницу бизнес-регистрации Gemini: https://auth.business.gemini.google/login
4. Вставляем временную почту и продолжаем регистрацию
5. Копируем код подтверждения из письма и вводим его
6. Завершаем настройку аккаунта
Готово! Теперь целый месяц пользуетесь всеми премиум-инструментами Gemini абсолютно бесплатно 🎉
Что доступно:
✅ Продвинутые модели Gemini
✅ Nano Babanana
✅ Генерация видео через Veo3
✅ Расширенные лимиты запросов
✅ Интеграция с бизнес-инструментами
⏰ Важно: Не забудьте сохранить доступ к временной почте на весь период использования!
2❤16👍5🔥4🕊2❤🔥1💯1
С наступившим 2026-м, друзья! 🎄✨
В прошлом году я появлялся здесь реже, чем хотелось бы — и вам, и мне самому. Практика, рабочие задачи, собственные проекты затянули с головой, и на статьи не всегда оставались силы и время. Но за это время я понял одну важную вещь: я действительно скучал.
Скучал по вам, по диалогу, по самому процессу — когда берёшь идею из реальной задачи и превращаешь её в понятный, живой материал.
А фактуры, к слову, накопилось немало. Реальная практика, настоящие кейсы: FastAPI, Aiogram, LangChain, LangGraph и ещё куча интересных находок.
Уже сейчас у меня готов материал для трёх больших статей на Хабр (написаны тексты и код, остается вычитать), и в этом году я хочу писать заметно чаще.
Идей много, проектов ещё больше — самое время возвращаться в активный ритм и делиться тем, что действительно работает.
Спасибо, что остаетесь здесь и не теряете канал из виду. Это очень мотивирует.
Пусть 2026-й станет для вас годом чистого кода, интересных задач и по-настоящему лёгких решений 🐍✨
В прошлом году я появлялся здесь реже, чем хотелось бы — и вам, и мне самому. Практика, рабочие задачи, собственные проекты затянули с головой, и на статьи не всегда оставались силы и время. Но за это время я понял одну важную вещь: я действительно скучал.
Скучал по вам, по диалогу, по самому процессу — когда берёшь идею из реальной задачи и превращаешь её в понятный, живой материал.
А фактуры, к слову, накопилось немало. Реальная практика, настоящие кейсы: FastAPI, Aiogram, LangChain, LangGraph и ещё куча интересных находок.
Уже сейчас у меня готов материал для трёх больших статей на Хабр (написаны тексты и код, остается вычитать), и в этом году я хочу писать заметно чаще.
Идей много, проектов ещё больше — самое время возвращаться в активный ритм и делиться тем, что действительно работает.
Спасибо, что остаетесь здесь и не теряете канал из виду. Это очень мотивирует.
Пусть 2026-й станет для вас годом чистого кода, интересных задач и по-настоящему лёгких решений 🐍✨
1🔥47👍18❤11🎉6🍾5👀1🙊1
🚀 5 января на Хабре выходит мой большой практический туториал «Как запустить 4 независимые нейросети на одном GPU (16 ГБ) под FastAPI»
Если вы когда-нибудь пытались запустить несколько AI-моделей на одном GPU и упирались в CUDA out of memory, костыли, докер-ад или облачные счета — этот материал точно для вас.
🧠 Что я показываю в статье (33 минуты на прочтение):
✔️ Как параллельно запустить 4 нейросети на одном GPU 16GB (RTX A4000)
✔️ Реальный FastAPI-пайплайн:
✔️ GPU memory tricks: torch.no_grad, lazy loading, fp16, освобождение VRAM
✔️ Продакшн без Docker: systemd, virtualenv, автозапуск
✔️ Почему VPS с GPU за ~12к/мес выгоднее облачных API
✔️ PyTorch + Transformers — hands-on, без воды
🔥 Какие модели используются:
* 🖼 DeepSeek OCR — распознавание текста
* 🎙 Whisper RU — ASR
* 🤖 Qwen2.5 — LLM
* 🗣 MMS-TTS (RU) — синтез речи
📡 Всё это объединено в FastAPI с отдельными эндпоинтами и общим GPU.
📦 Исходники уже открыты:
* код
* тесты
* конфиги
* systemd-сервисы
👉 GitHub: ССЫЛКА
Это не «посмотрите, как красиво», а реальный боевой сетап, который можно:
* развернуть на своём сервере
* доработать под продукт
* использовать как базу для AI-сервиса
📅 Публикация: 5 января на Хабре
⭐️ Если тема откликается — поставь звезду репозиторию, чтобы не потерять
💬 В комментариях к статье можно будет задать вопросы — отвечу👇
Если вы когда-нибудь пытались запустить несколько AI-моделей на одном GPU и упирались в CUDA out of memory, костыли, докер-ад или облачные счета — этот материал точно для вас.
🧠 Что я показываю в статье (33 минуты на прочтение):
✔️ Как параллельно запустить 4 нейросети на одном GPU 16GB (RTX A4000)
✔️ Реальный FastAPI-пайплайн:
OCR (DeepSeek) → ASR (Whisper RU) → LLM (Qwen2.5) → TTS (MMS RU)
✔️ GPU memory tricks: torch.no_grad, lazy loading, fp16, освобождение VRAM
✔️ Продакшн без Docker: systemd, virtualenv, автозапуск
✔️ Почему VPS с GPU за ~12к/мес выгоднее облачных API
✔️ PyTorch + Transformers — hands-on, без воды
🔥 Какие модели используются:
* 🖼 DeepSeek OCR — распознавание текста
* 🎙 Whisper RU — ASR
* 🤖 Qwen2.5 — LLM
* 🗣 MMS-TTS (RU) — синтез речи
📡 Всё это объединено в FastAPI с отдельными эндпоинтами и общим GPU.
📦 Исходники уже открыты:
* код
* тесты
* конфиги
* systemd-сервисы
👉 GitHub: ССЫЛКА
Это не «посмотрите, как красиво», а реальный боевой сетап, который можно:
* развернуть на своём сервере
* доработать под продукт
* использовать как базу для AI-сервиса
📅 Публикация: 5 января на Хабре
⭐️ Если тема откликается — поставь звезду репозиторию, чтобы не потерять
💬 В комментариях к статье можно будет задать вопросы — отвечу👇
3🔥79🎉6🤩3❤2❤🔥2👍2😘2🙏1🙉1🤷1
🚀 Заставляем работать ChatGPT, Claude, Copilot и Gemini в РФ — без VPN и платных прокси
Да, это реально. Достаточно поменять DNS — и большинство ИИ-сервисов, которые «не работают в России», снова открываются 👇
🔧 Что за магия и почему это работает
Comss.one DNS — публичные DNS-серверы на базе PowerDNS с поддержкой:
* 🔐 DNS-over-HTTPS (DoH)
* 🔐 DNS-over-TLS (DoT)
* 🔐 DNS-over-QUIC
* 🛡 Блокировка рекламы, трекеров, фишинга и вредоноса
💡 Фишка: через эти DNS снимаются региональные ограничения для ряда ИИ-сервисов — без VPN и туннелей.
🤖 Какие ИИ реально запускаются
По официальному списку и отзывам пользователей:
✅ ChatGPT — веб + приложения (Windows, macOS, Android, iOS)
✅ Claude AI — веб (включая Claude Code!)
✅ Google Gemini — веб, Android, Chrome
✅ Microsoft Copilot — веб, Windows, Android, iOS
✅ GitHub Copilot
✅ Google ImageFX, Sora, Designer, xAI Grok и др.
⚠️ Список периодически обновляется — актуальный всегда на сайте Comss.one
🌍 DNS-адреса Comss.one
Обычный DNS (IPv4):
DNS-over-HTTPS (DoH):
DNS-over-TLS (DoT):
🪟 Windows
🔹 Вариант 1: системный DNS (лучший)
1. Параметры → Сеть и Интернет → Свойства подключения
2. DNS → «Вручную»
3. Введите DNS:
4. Включите шифрование DNS (DoH)
5. Добавьте:
6. Переподключите сеть
🔹 Вариант 2: только в браузере
Подходит для Chrome / Edge / Brave / Opera:
* Настройки → Конфиденциальность → Безопасный DNS
* Пользовательский DNS:
Перезапустите браузер
🍏 macOS
🔹 Системный DNS
1. Системные настройки → Сеть
2. Подключение → Подробно → DNS
3. Удалите старые и добавьте:
4. Переподключите Wi-Fi
🔹 Через браузер (DoH)
Аналогично Windows — включаем «Безопасный DNS» и указываем:
🐧 Linux
🔹 Быстро (GUI)
В настройках сети → IPv4 → DNS:
🔹 Через systemd-resolved (DoT)
✅ Как проверить
* Зайдите на страницу проверки DNS от Comss.one
* Откройте:
* https://chatgpt.com
* https://claude.ai
* https://gemini.google.com
Если сервисы грузятся без региональных заглушек — всё работает 🔥
⚠️ Важно знать
* ❗️ Это не VPN — шифруется только DNS, не весь трафик
* ❗️ Некоторые API или студии могут всё ещё быть недоступны
* ✅ Зато работает быстро, стабильно и без подписок
👍 Сохраняйте, делитесь и не теряйте доступ к ИИ.
Да, это реально. Достаточно поменять DNS — и большинство ИИ-сервисов, которые «не работают в России», снова открываются 👇
🔧 Что за магия и почему это работает
Comss.one DNS — публичные DNS-серверы на базе PowerDNS с поддержкой:
* 🔐 DNS-over-HTTPS (DoH)
* 🔐 DNS-over-TLS (DoT)
* 🔐 DNS-over-QUIC
* 🛡 Блокировка рекламы, трекеров, фишинга и вредоноса
💡 Фишка: через эти DNS снимаются региональные ограничения для ряда ИИ-сервисов — без VPN и туннелей.
🤖 Какие ИИ реально запускаются
По официальному списку и отзывам пользователей:
✅ ChatGPT — веб + приложения (Windows, macOS, Android, iOS)
✅ Claude AI — веб (включая Claude Code!)
✅ Google Gemini — веб, Android, Chrome
✅ Microsoft Copilot — веб, Windows, Android, iOS
✅ GitHub Copilot
✅ Google ImageFX, Sora, Designer, xAI Grok и др.
⚠️ Список периодически обновляется — актуальный всегда на сайте Comss.one
🌍 DNS-адреса Comss.one
Обычный DNS (IPv4):
83.220.169.155
212.109.195.93
DNS-over-HTTPS (DoH):
https://dns.comss.one/dns-query
DNS-over-TLS (DoT):
dns.comss.one
🪟 Windows
🔹 Вариант 1: системный DNS (лучший)
1. Параметры → Сеть и Интернет → Свойства подключения
2. DNS → «Вручную»
3. Введите DNS:
83.220.169.155
212.109.195.93
4. Включите шифрование DNS (DoH)
5. Добавьте:
https://dns.comss.one/dns-query
6. Переподключите сеть
🔹 Вариант 2: только в браузере
Подходит для Chrome / Edge / Brave / Opera:
* Настройки → Конфиденциальность → Безопасный DNS
* Пользовательский DNS:
https://dns.comss.one/dns-query
Перезапустите браузер
🍏 macOS
🔹 Системный DNS
1. Системные настройки → Сеть
2. Подключение → Подробно → DNS
3. Удалите старые и добавьте:
83.220.169.155
212.109.195.93
4. Переподключите Wi-Fi
🔹 Через браузер (DoH)
Аналогично Windows — включаем «Безопасный DNS» и указываем:
https://dns.comss.one/dns-query
🐧 Linux
🔹 Быстро (GUI)
В настройках сети → IPv4 → DNS:
83.220.169.155, 212.109.195.93
🔹 Через systemd-resolved (DoT)
sudo nano /etc/systemd/resolved.conf
[Resolve]
DNS=83.220.169.155#dns.comss.one 212.109.195.93#dns.comss.one
DNSOverTLS=yes
sudo systemctl restart systemd-resolved
resolvectl status
✅ Как проверить
* Зайдите на страницу проверки DNS от Comss.one
* Откройте:
* https://chatgpt.com
* https://claude.ai
* https://gemini.google.com
Если сервисы грузятся без региональных заглушек — всё работает 🔥
⚠️ Важно знать
* ❗️ Это не VPN — шифруется только DNS, не весь трафик
* ❗️ Некоторые API или студии могут всё ещё быть недоступны
* ✅ Зато работает быстро, стабильно и без подписок
👍 Сохраняйте, делитесь и не теряйте доступ к ИИ.
www.comss.ru
Comss.one DNS
Comss.one DNS – быстрые и безопасные DNS-серверы на базе PowerDNS с доступом к ИИ сервисам, защитой от рекламы, трекинга, фишинга и вредоносных сайтов, и поддержкой шифрования запросов DNS-over-HTTPS, DNS-over-TLS и DNS-over-QUIC
1🔥37❤9👍7🤗2🥰1🤔1🎄1
🚀 Статья опубликована (да, с небольшим запозданием)
На Хабре вышел мой большой практический туториал:
👉 Как поднять мультимодальный AI-сервис (OCR, ASR, LLM, TTS) на одной GPU 16GB без облачных API
Это реальный продакшен-сетап, а не демо и не «игрушка».
🧠 4 нейросети на одном GPU (RTX A4000, 16GB)
OCR → ASR → LLM → TTS
Стек технологий:
FastAPI + PyTorch + Transformers
Используемые модели:
- 🖼 DeepSeek OCR
- 🎙 Whisper RU
- 🤖 Qwen2.5
- 🗣 MMS-TTS (RU)
Что внутри статьи
⚙️ Подготовка VPS: Ubuntu + CUDA + драйверы
🧮 Управление VRAM без CUDA OOM (fp16, lazy loading, torch.no_grad, освобождение памяти)
🚀 Продакшен без Docker: systemd, virtualenv, автозапуск
🌐 Nginx + HTTPS + домен
🧪 Тестирование через Swagger
Итог
Локальный AI-сервис «под ключ»:
- предсказуемые расходы (VPS с GPU ≈ 12к/мес)
- полная приватность данных
- база для AI-продукта или стартапа
📦 Полный исходный код проекта 👉 GitHUB
💬 Материал получился непростым, поэтому если остались вопросы — пишите тут 👇 или в комментариях на Хабре. По возможности всем отвечу.
P.S. Искренне постараюсь сделать всё, чтобы в 2026 году таких больших пауз по публикациям больше не было 🙂
Всех с прошедшими праздниками. Начинаем! 🚀
На Хабре вышел мой большой практический туториал:
👉 Как поднять мультимодальный AI-сервис (OCR, ASR, LLM, TTS) на одной GPU 16GB без облачных API
Это реальный продакшен-сетап, а не демо и не «игрушка».
🧠 4 нейросети на одном GPU (RTX A4000, 16GB)
OCR → ASR → LLM → TTS
Стек технологий:
FastAPI + PyTorch + Transformers
Используемые модели:
- 🖼 DeepSeek OCR
- 🎙 Whisper RU
- 🤖 Qwen2.5
- 🗣 MMS-TTS (RU)
Что внутри статьи
⚙️ Подготовка VPS: Ubuntu + CUDA + драйверы
🧮 Управление VRAM без CUDA OOM (fp16, lazy loading, torch.no_grad, освобождение памяти)
🚀 Продакшен без Docker: systemd, virtualenv, автозапуск
🌐 Nginx + HTTPS + домен
🧪 Тестирование через Swagger
Итог
Локальный AI-сервис «под ключ»:
- предсказуемые расходы (VPS с GPU ≈ 12к/мес)
- полная приватность данных
- база для AI-продукта или стартапа
📦 Полный исходный код проекта 👉 GitHUB
💬 Материал получился непростым, поэтому если остались вопросы — пишите тут 👇 или в комментариях на Хабре. По возможности всем отвечу.
P.S. Искренне постараюсь сделать всё, чтобы в 2026 году таких больших пауз по публикациям больше не было 🙂
Всех с прошедшими праздниками. Начинаем! 🚀
Хабр
Как запустить 4 независимые нейросети на одном GPU (16 ГБ) под FastAPI
2024–2025 годы стали переломными для индустрии машинного обучения. Нейросети окончательно вышли за пределы исследовательских лабораторий и стали частью повседневных продуктов: от генерации текста и...
3🔥60❤13👍8⚡4🙉2🥰1🤔1🥱1
🚀 За 5 минут сделал свою базу знаний с ИИ на Python
Создал AI-блокнот, загрузил туда топовые книги по продуктивности и мотивации и написал простой Python-скрипт для чата с ними.
📸 На скрине — живой пример
Я задаю вопрос из терминала:
👉 «топ-10 основных принципов из книги “Атомные привычки”»
Скрипт в ответ:
- делает структурированную выжимку
- отвечает строго по загруженной книге
- показывает источники и конкретные фрагменты текста
По сути, это ChatGPT на моих книгах:
✅ без галлюцинаций
✅ с цитатами
✅ запускается одной командой
⬇️ Ниже — инструкция, как повторить это за 5 минут на любом наборе документов (PDF, видео, статьи, текстовые файлы). Понадобится аккаунт Google и VPN⬇️
Создал AI-блокнот, загрузил туда топовые книги по продуктивности и мотивации и написал простой Python-скрипт для чата с ними.
📸 На скрине — живой пример
Я задаю вопрос из терминала:
👉 «топ-10 основных принципов из книги “Атомные привычки”»
Скрипт в ответ:
- делает структурированную выжимку
- отвечает строго по загруженной книге
- показывает источники и конкретные фрагменты текста
По сути, это ChatGPT на моих книгах:
✅ без галлюцинаций
✅ с цитатами
✅ запускается одной командой
⬇️ Ниже — инструкция, как повторить это за 5 минут на любом наборе документов (PDF, видео, статьи, текстовые файлы). Понадобится аккаунт Google и VPN⬇️
2🔥20👍12🍌3❤2😍2🥱1😇1
🔹 ИНСТРУКЦИЯ: как повторить за 5 минут
📘 Что такое NotebookLM (коротко и по делу)
NotebookLM — это AI-блокнот от Google, в который ты загружаешь свои источники, а ИИ:
- отвечает строго по этим материалам
- показывает цитаты и источники
- не галлюцинирует
Поддерживаются:
- PDF, DOCX, Markdown
- статьи и сайты
- видео (ссылки)
Лимиты:
* 🆓 бесплатно — до 50 источников в одном блокноте
* ⭐️ Pro — до 300 источников
⚙️ Шаг 1. Подготовка окружения
🔐 Шаг 2. Авторизация в Google (один раз)
При первом запуске откроется браузер для входа в Google. После этого cookies сохраняются в
📚 Шаг 3. Проверяем доступ и смотрим свои блокноты
Создаём файл auth.py — он проверяет авторизацию и выводит все доступные блокноты.
После запуска ты увидишь список всех своих блокнотов и их ID — он понадобится дальше.
💬 Шаг 4. Чат с блокнотом (RAG без галлюцинаций)
Создаём chat.py — скрипт для общения с выбранным блокнотом.
Запуск:
📘 Что такое NotebookLM (коротко и по делу)
NotebookLM — это AI-блокнот от Google, в который ты загружаешь свои источники, а ИИ:
- отвечает строго по этим материалам
- показывает цитаты и источники
- не галлюцинирует
Поддерживаются:
- PDF, DOCX, Markdown
- статьи и сайты
- видео (ссылки)
Лимиты:
* 🆓 бесплатно — до 50 источников в одном блокноте
* ⭐️ Pro — до 300 источников
⚙️ Шаг 1. Подготовка окружения
mkdir my-knowledge-base && cd my-knowledge-base
python -m venv .venv && source .venv/bin/activate
pip install notebooklm-py==0.3.1 playwright==1.57.0
playwright install chromium
🔐 Шаг 2. Авторизация в Google (один раз)
notebooklm login
При первом запуске откроется браузер для входа в Google. После этого cookies сохраняются в
storage_state.json, и повторная авторизация не нужна.📚 Шаг 3. Проверяем доступ и смотрим свои блокноты
Создаём файл auth.py — он проверяет авторизацию и выводит все доступные блокноты.
# auth.py — сохрани и запусти
import asyncio
from notebooklm import NotebookLMClient
async def test_auth():
# from_storage() использует сохранённые куки
async with await NotebookLMClient.from_storage() as client:
print("✅ Авторизация успешна!\n")
notebooks = await client.notebooks.list()
print("📚 Твои блокноты:")
for nb in notebooks:
print(f" - {nb.title} (ID: {nb.id})")
asyncio.run(test_auth())
После запуска ты увидишь список всех своих блокнотов и их ID — он понадобится дальше.
💬 Шаг 4. Чат с блокнотом (RAG без галлюцинаций)
Создаём chat.py — скрипт для общения с выбранным блокнотом.
# chat.py — отправка запросов в NotebookLM
import asyncio
from notebooklm import NotebookLMClient
# ID блокнота для тестов
NOTEBOOK_ID = "NOTEBOOK_ID"
# Системный промпт для русского языка
SYSTEM_PROMPT = "Всегда отвечай на русском языке. Будь кратким и информативным."
async def ask_notebook(question: str, show_sources: bool = True):
"""Отправить вопрос в блокнот и получить ответ с информативными источниками"""
async with await NotebookLMClient.from_storage() as client:
print(f"📤 Вопрос: {question}")
print("-" * 50)
# Добавляем системный промпт к вопросу
full_question = f"{SYSTEM_PROMPT}\n\nВопрос: {question}"
result = await client.chat.ask(NOTEBOOK_ID, full_question)
print(f"📥 Ответ:\n{result.answer}")
# Выводим информативные источники
if show_sources and hasattr(result, 'references') and result.references:
# Получаем список источников блокнота для маппинга id -> title
sources = await client.sources.list(NOTEBOOK_ID)
source_map = {src.id: src for src in sources}
print("\n" + "=" * 50)
print("📚 ИСТОЧНИКИ:")
print("=" * 50)
# Группируем цитаты по номеру
seen_citations = set()
for ref in result.references:
if ref.citation_number in seen_citations:
continue
seen_citations.add(ref.citation_number)
source = source_map.get(ref.source_id)
source_title = source.title if source else "Неизвестный источник"
# Обрезаем цитату если слишком длинная
cited_text = ref.cited_text or ""
if len(cited_text) > 150:
cited_text = cited_text[:150] + "..."
print(f"\n[{ref.citation_number}] {source_title}")
print(f" 💬 \"{cited_text}\"")
return result
async def main():
# Тестовый запрос
question = input("Введите вопрос: ") if __name__ == "__main__" else "О чём этот блокнот?"
await ask_notebook(question, show_sources=False)
if __name__ == "__main__":
asyncio.run(main())
Запуск:
python chat.py
4❤33👍19🔥11🤔1👌1🥱1🎃1