VLESS-агрегатор с AI-ментором NotebookLM: руководство для новичков | AiManual
AiManual Logo Ai / Manual.
16 Янв 2026 Гайд

Как новичок в программировании с температурой 40° написал VLESS-агрегатор с AI-ментором (NotebookLM)

История создания VLESS-агрегатора с температурой 40° с помощью AI-ментора NotebookLM. Полное руководство для начинающих программистов.

40 градусов, ноутбук и желание не тупить

Бывают дни, когда голова раскалывается, градусник показывает 40, а в горле будто наждачная бумага. Обычный человек ложится спать. Я решил написать VLESS-агрегатор. Почему? Потому что когда мозг затуманен жаром, он странным образом отключает фильтры "это невозможно" и оставляет только "а что если".

Мой опыт программирования на тот момент состоял из "Hello World" на Python и пары туториалов по JavaScript. Я знал, что VLESS - это протокол для обхода блокировок, что агрегатор собирает конфигурации из разных источников, и что я понятия не имею, как это сделать.

Не повторяйте этот эксперимент с температурой 40° - это опасно для здоровья. Но метод с AI-ментором работает и при нормальной температуре.

Почему NotebookLM, а не ChatGPT или Copilot?

Потому что NotebookLM - это не просто чат. Это исследовательский блокнот с памятью. Вы загружаете документацию, статьи, примеры кода, и он запоминает всё. Когда вы задаете вопрос, он отвежает не общими фразами, а конкретно по вашему материалу.

ChatGPT знает всё понемногу. NotebookLM знает глубоко то, что вы ему дали. Для новичка это разница между "вот общая идея" и "вот конкретная строчка кода из документации, которую ты сам загрузил".

💡
NotebookLM от Google работает бесплатно, не требует установки и сохраняет контекст между сессиями. Для обучения программированию это идеально - вы постепенно накапливаете знания в одном месте.

Что такое VLESS-агрегатор и зачем он нужен

VLESS - это протокол, который помогает обходить интернет-ограничения. Агрегатор автоматически собирает рабочие конфигурации из разных источников (Telegram-каналов, сайтов, API), проверяет их работоспособность и выдает готовый список.

Вместо того чтобы вручную искать и копировать десятки конфигураций каждый день, вы запускаете скрипт раз в час и получаете свежий список. Для новичка задача выглядит монструозной: нужно уметь парсить разные форматы, делать HTTP-запросы, обрабатывать ошибки, кешировать результаты.

1 Подготовка: что загрузить в NotebookLM перед началом

Первое правило работы с AI-ментором: дайте ему оружие. Я загрузил в NotebookLM:

  • Официальную документацию VLESS (все форматы конфигураций)
  • Три статьи про парсинг JSON и XML на Python
  • Примеры работы с библиотекой requests
  • Руководство по асинхронному программированию в Python
  • Мой собственный список Telegram-каналов с конфигурациями

На это ушло 20 минут. NotebookLM автоматически проиндексировал всё и создал "источники знаний". Теперь, когда я спрашивал про парсинг, он цитировал конкретные примеры из загруженных статей, а не общие советы.

2 Архитектура: как не утонуть в деталях

С температурой 40° архитектурное мышление работает странно. Вместо сложных диаграмм я нарисовал в блокноте:

1. Получить ссылки из источников
2. Скачать конфигурации
3. Распарсить (JSON/XML/текст)
4. Проверить работоспособность
5. Сохранить в файл

Каждый пункт стал отдельным вопросом к NotebookLM. "Как на Python получить список сообщений из Telegram-канала без API?". Ответ: использовать библиотеку telethon, вот пример из загруженной статьи.

Важный нюанс: NotebookLM не пишет код за вас полностью. Он дает куски, объясняет логику, предлагает альтернативы. Вы собираете пазл, но он показывает картинку на коробке.

Не просите написать весь скрипт сразу. Разбейте на маленькие задачи по 5-10 строк кода. Иначе AI начнет галлюцинировать и предложит неработающее решение.

Код, который родился в лихорадке

Вот как выглядел первый работающий фрагмент. NotebookLM объяснил каждую строчку:

# Получение конфигураций из Telegram-канала
import asyncio
from telethon import TelegramClient

async def get_configs_from_telegram():
    client = TelegramClient('session', API_ID, API_HASH)
    await client.start()
    
    channel = await client.get_entity('@vless_configs')
    messages = await client.get_messages(channel, limit=50)
    
    configs = []
    for msg in messages:
        if 'vless://' in msg.text:
            configs.append(msg.text)
    
    await client.disconnect()
    return configs

Почему asyncio? Потому что проверка десятков конфигураций занимает время. Асинхронность позволяет проверять несколько одновременно. NotebookLM показал разницу между синхронным и асинхронным кодом на примере из загруженной статьи.

3 Парсинг: когда форматы разные, а результат нужен один

VLESS-конфигурации приходят в разных форматах: чистый текст, JSON, XML, base64. Мой AI-ментор предложил создать универсальный парсер:

def parse_config(raw_text):
    # Пытаемся найти VLESS-ссылку в тексте
    import re
    
    vless_pattern = r'vless://[^\s]+'
    match = re.search(vless_pattern, raw_text)
    
    if match:
        return match.group(0)
    
    # Если не нашли, пробуем декодировать base64
    try:
        import base64
        decoded = base64.b64decode(raw_text).decode('utf-8')
        match = re.search(vless_pattern, decoded)
        if match:
            return match.group(0)
    except:
        pass
    
    return None

NotebookLM объяснил, почему регулярные выражения - не лучший выбор для сложного парсинга, но для новичка они подойдут. Позже, когда я стал разбираться лучше, заменил их на специализированные библиотеки.

Проверка работоспособности: самый сложный этап

Собрать конфигурации - полдела. Нужно проверить, какие из них работают. Здесь я столкнулся с проблемой: проверка требует установки клиента VLESS и тестовых запросов. NotebookLM предложил элегантное решение:

async def check_config(config_url, timeout=5):
    # Упрощенная проверка через ping
    import aiohttp
    from urllib.parse import urlparse
    
    try:
        parsed = urlparse(config_url)
        # Извлекаем хост из конфигурации
        host = parsed.netloc.split('@')[1].split(':')[0]
        
        async with aiohttp.ClientSession() as session:
            try:
                async with session.get(f'http://{host}', timeout=timeout) as resp:
                    return resp.status < 500
            except:
                return False
    except Exception as e:
        print(f"Ошибка проверки {config_url}: {e}")
        return False

Это не идеальная проверка (не тестирует сам протокол VLESS), но для агрегатора достаточно. NotebookLM объяснил, что полноценная проверка потребовала бы интеграции с VLESS-клиентом, что сложно для новичка.

💡
AI-ментор хорош тем, что знает ваши ограничения. Вместо того чтобы предлагать "правильное, но сложное" решение, он предлагает "работающее, но простое". Для обучения это идеально - вы получаете результат, а потом улучшаете.

Сборка всего вместе: когда куски кода становятся программой

Температура не спадала, но код рос. NotebookLM помог собрать все функции в единый скрипт:

import asyncio
import json
from datetime import datetime

class VlessAggregator:
    def __init__(self):
        self.sources = [
            'https://api.vless-provider.com/configs',
            '@telegram_channel_1',
            '@telegram_channel_2'
        ]
        
    async def run(self):
        all_configs = []
        
        # Сбор из всех источников
        for source in self.sources:
            configs = await self.fetch_from_source(source)
            all_configs.extend(configs)
        
        # Проверка работоспособности
        working_configs = []
        tasks = [self.check_config(cfg) for cfg in all_configs]
        results = await asyncio.gather(*tasks, return_exceptions=True)
        
        for config, is_working in zip(all_configs, results):
            if is_working and isinstance(is_working, bool):
                working_configs.append(config)
        
        # Сохранение результата
        self.save_results(working_configs)
        return len(working_configs)
    
    def save_results(self, configs):
        output = {
            'updated_at': datetime.now().isoformat(),
            'count': len(configs),
            'configs': configs
        }
        
        with open('vless_configs.json', 'w', encoding='utf-8') as f:
            json.dump(output, f, ensure_ascii=False, indent=2)

За 6 часов работы с перерывами на жаропонижающее я получил работающий агрегатор. Он собирал 50-70 конфигураций в час, проверял их и сохранял в JSON. Для новичка - невероятный результат.

Чему научил этот эксперимент

1. AI-ментор не заменяет обучение, а ускоряет его. Я не просто копировал код - я понимал каждую строчку, потому что NotebookLM объяснял её на примерах из загруженных материалов.

2. Контекст - всё. Когда AI знает конкретную документацию и ваши цели, он дает в 10 раз более полезные ответы, чем общий ChatGPT.

3. Лихорадка отключает перфекционизм. С температурой 40° вы не будете неделю выбирать идеальную архитектуру. Вы сделаете работающий прототип, а потом улучшите его.

4. Программирование - это не магия. Это последовательность маленьких задач, каждая из которых решается за 10-15 минут с помощью правильных вопросов.

Что делать, если вы новичок без температуры

Начните с малого. Не пытайтесь написать агрегатор за день.

  1. Зарегистрируйтесь в NotebookLM (бесплатно)
  2. Найдите документацию по тому, что хотите сделать
  3. Загрузите её в качестве источника
  4. Сформулируйте первую микро-задачу ("как открыть файл в Python" вместо "как написать агрегатор")
  5. Просите объяснять каждую строчку кода, а не просто давать готовое решение
  6. Собирайте проект по кусочкам, тестируя каждый этап

Самая частая ошибка новичков - пытаться понять всё сразу. NotebookLM помогает разбить сложное на простое, но вам всё равно нужно задавать правильные вопросы. Чем конкретнее вопрос, тем полезнее ответ.

Альтернативы NotebookLM для локальной разработки

Если вам не нравится облачное решение или нужны более продвинутые возможности, посмотрите на локальные мульти-агентные IDE. Они работают полностью на вашем компьютере, не отправляют код в облако и предлагают схожий функционал.

Для сложных проектов с AI-агентами изучите архитектуру современных AI-агентов. Это следующий уровень после простого менторства.

Если интересно, как работают AI-кодинг-агенты под капотом, у нас есть подробный разбор их архитектуры и ограничений.

Что получилось в итоге

Через 8 часов у меня был работающий VLESS-агрегатор на Python. Он:

  • Собирал конфигурации из 5 источников
  • Проверял их работоспособность асинхронно
  • Сохранял в JSON с временными метками
  • Имел простой конфиг для добавления новых источников
  • Логировал ошибки (спасибо NotebookLM за объяснение try-except)

Код не идеален. В нём нет тестов, обработка ошибок базовая, архитектура могла бы быть лучше. Но он работает. И я понимаю каждую его строчку.

Температура спала через день. VLESS-агрегатор работает до сих пор.

Главный секрет обучения с AI-ментором

Не спрашивайте "как написать X". Спрашивайте "как решить конкретную подзадачу Y в контексте X". NotebookLM знает ваши источники - используйте это. Вместо "как парсить JSON" спросите "как парсить JSON в соответствии с документацией VLESS, которую я загрузил".

Разница в ответах колоссальная. В первом случае вы получите общую теорию. Во втором - конкретный код, который работает с вашими данными.

И ещё: сохраняйте диалоги. Через неделю вернитесь к ним и попробуйте улучшить код без помощи AI. Так вы поймёте, что действительно научились, а не просто скопировали.

💡
Температура 40° - это экстремальный способ отключить внутреннего критика. Но вы можете достичь похожего эффекта, установив жёсткий дедлайн. "Сделать работающий прототип за 4 часа" работает не хуже жаропонижающего.

Теперь у вас нет оправданий. У вас есть AI-ментор, который знает вашу документацию. У вас есть конкретная задача. Осталось начать с первого вопроса. Не "как написать программу", а "как открыть файл в Python для чтения JSON". Ответ уже ждёт в NotebookLM.