Obsidian + AI + Telegram Bot: пошаговый гайд по созданию Телеграм-бота на базе личных заметок в Obsidian
Айдимиров Айдимир ЭльдаровичТелеграм: https://t.me/bim_koordinator

Идея «обучить» Telegram-бота разговаривать на основе наших корпоративных заметок родилась случайно — в переписке под постом Евгения Мишараева в Telegram-канале. Пост назывался «Почему лично мне не хватает Autodesk», и в комментариях развернулась дружелюбная дискуссия о том, как инженерам и BIM-специалистам в России живётся без привычного CAD-стека.
В какой-то момент Евгений задал мне два вопроса, которые и стали точкой отсчёта всего проекта:
1. «Не сталкивались ли вы с RAG-системами? Что-то вроде чатов, которые отвечают прямо из корпоративной базы знаний?»
2. «Хочу скормить ИИ Markdown-страницы (HTML / Obsidian), но не знаю, что лучше. Представляю себе локальную LLM через LM Studio, а вот как подтянуть туда базу — не понимаю 🙂».
Я сказал что сталкивался и сначала собрал прототип прямо в Obsidian, подключив плагин Smart Connections, который:
- Создаёт эмбеддинги заметок;
- Хранит их локально (Faiss под капотом);
- Запускает OpenAI или локальную модель через LM Studio.

Такой «встроенный чат» работал, но только внутри Obsidian. Удобно ли это? Нам же хотелось, чтобы любой сотрудник мог спросить что-то с мобильного — в дороге, на объекте, на совещании — и быстро получить ответ из корпоративной «вики».
Как сделать Telegram бота который соединен с базой Obsidian?
Дальше в статье я подробно, шаг за шагом, покажу, как из идеи «давайте-ка спросим нашу Obsidian-базу через Telegram» вырастает настоящий рабочий сервис. Мы пройдём весь цикл:
Выбор стека и архитектуры — объясняем, почему именно:
- Flowise — визуальный конструктор RAG-цепочек,
- Obsidian Vault — база / источник знаний,
- OpenAI / локальная LLM — движок генерации ответов,
- python-telegram-bot — коммуникационный слой, Телеграм.
По дороге я честно опишу все затыки, через которые прошёл: несовместимые версии Node / npm, «пропавшие» порты Prompt в узлах ChatOpenAI, «Expecting value: line 1 column 1» от Telegram-бота и др. Для каждой проблемы приведу конкретное решение, а не «погуглите».
Следуйте шагам ниже, чтобы повторить этот проект.
Шаг 1: Выбор инструментов
Прежде чем писать код, определимся с целью бота и подходящими инструментами:
- Идея: Бот в Telegram, который будет выполнять роль “второго мозга” – отвечать на вопросы, используя ваши собственные знания, сохраненные в виде заметок Obsidian. Вы пишете ему сообщение с вопросом, а он ищет ответ в ваших Markdown-записках и возвращает осмысленный ответ с помощью модели ИИ.
- FlowiseAI: визуальная платформа для создания AI-агентов и цепочек LLM. В ней мы настроим обработку наших данных (загрузку файлов, разбивку текста, векторное хранилище и т.д.) и получим API-эндпоинт для обращения к созданному агенту . Flowise избавляет от необходимости писать код для логики RAG (Retrieval-Augmented Generation).
- Obsidian: приложение для хранения и связи заметок (наш “второй мозг”). Наша база знаний – это папка с Markdown-файлами (Vault Obsidian). Flowise позволит подключить эту папку как источник данных.
- Модель LLM: нужна для генерации ответов. Flowise поддерживает как локальные модели (например, через LM-Studio или Ollama ), так и API OpenAI. В этом туториале для простоты используем OpenAI GPT-3.5: это требует доступного ключа API OpenAI.
- Python и Telegram Bot API: используем python-telegram-bot – популярную библиотеку для написания ботов. Она упростит прослушивание сообщений и отправку ответов. Бот будет на Python 3.
- Poetry: инструмент для управления зависимостями и виртуальным окружением. Мы создадим проект с помощью Poetry, чтобы легко установить библиотеки и управлять переменными окружения . Также убедитесь, что установлен Python 3 (рекомендуется не ниже 3.10).
Установить Python 3+ можно перейдя по ссылке: https://www.python.org/downloads/
Подготовьте API-ключи: Заранее получите необходимые ключи:
- Создайте бота через BotFather и получите токен Telegram (например, 123456:ABC-...).
- Получите OpenAI API Key из своего кабинета OpenAI (можно использовать любую ЛЛМку - DeepSeek, Claude, Grok или вообще локальную - нужен только ключ и название модели.
- Cгенерируйте API-ключ Flowise, после установки, запуска и регистрации Flowise у вас появится портал API Keys в меню Flowise. Но сначала установим и запустим Flowise.
Шаг 2: Установка и запуск Flowise
Начнем с установки Flowise – это Node.js приложение. Требуется Node.js и npm. Если у вас они не установлены, скачайте с официального сайта Node.js (https://nodejs.org/).
Node.js поставляется вместе с менеджером пакетов npm (Node Package Manager), поэтому достаточно установить сам Node.js — npm появится автоматически.
Проверка установки
После установки выполните проверку:
node -v # должен вывести версию Node.js, например v22.16.0 npm -v # должен вывести версию npm, например 10.8.2
Если обе версии отображаются без ошибок — установка прошла успешно, можно переходить к следующему шагу: установке и запуску Flowise.
Установка Flowise
1. Быстрый старт через npm (локально)
Перейдите к установке в контейнере докер если через npm не сработает.
# Устанавливаем Flowise глобально npm install -g flowise # Запускаем приложение npx flowise start
После запуска в терминале появится сообщение, что Flowise слушает порт 3000.
Откройте браузер и перейдите по адресу http://localhost:3000 — должна открыться панель управления Flowise.
2. Установка в контейнере Docker (рекомендуется)
2.1 Docker Compose
- Установите Docker Desktop: https://www.docker.com/products/docker-desktop
- Клонируйте репозиторий Flowise:
gh repo clone FlowiseAI/Flowise
- Перейдите в каталог docker в корне проекта.
- Скопируйте файл .env.example, переименуйте копию в .env и при необходимости отредактируйте переменные.
- Запустите:
docker compose up -d
2.2 Чистый Docker Image
# Cобираем образ docker build --no-cache -t flowise . # Запускаем контейнер docker run -d --name flowise -p 3000:3000 flowise # Останавливаем контейнер docker stop flowise
3. Проверка работы
Откройте http://localhost:3000. Если видите приветственный экран Flowise — установка прошла успешно и API доступно.
При ошибках убедитесь, что:
- установлен Node.js (для локального запуска);
- порт 3000 свободен;
- контейнер/процесс действительно запущен.
4. Полезно
Посмотрите раздел «❗️Частые ошибки при установке Flowise и их решения» в конце статьи — там разобраны самые типовые проблемы.
Шаг 3. Создание чат-агента в Flowise на основе базы знаний Obsidian
Retrieval-Augmented Generation (RAG) — это связка «поиск релевантных фрагментов ➜ генерация ответа с их учётом». В Flowise она собирается в виде «чатфлоу» (chatflow) — визуальной схемы из узлов.
1. Подготовьте базу знаний
- Соберите заметки Obsidian в одну папку-хранилище (Vault). Подойдут любые файлы .md; вложенные каталоги Flowise проиндексирует сам. Если вы уже пользуетесь Obsidian не нужно ничего менять, нужно только скопировать путь к этой папке.
- В примере путь к моему Vault — /Users/aydimir95/Desktop/Test. Замените на свой.
2. Создайте новый chatflow
- Откройте веб-интерфейс Flowise, пройдите локальную регистрацию — все введённые данные остаются только на вашем компьютере и никуда не отправляются — затем нажмите New Chatflow.
- Дайте потоку понятное имя, например ChatOpenAI.
- На появившемся пустом холсте будем добавлять узлы, формируя RAG-цепочку.
Формирование RAG-цепочки узлами ChatFlow:
3. Узел загрузки документов
- На боковой панели Nodes перейдите в категорию LangChain → Document Loader и нажмите “+”.
- Перетащите узел Folder with Files на холст.
В настройках узла:
- Recursive — поставьте галочку, чтобы обходить вложенные каталоги.
- Path — укажите путь к вашему Obsidian Vault. Flowise автоматически соберёт все *.md-файлы.
- Output — выберите Document.

После этого узел будет загружать и передавать в чатфлоу все Markdown-заметки из указанной папки.
4. Разбивка текста на фрагменты
Чтобы поиск работал точнее, длинные заметки стоит разрезать на небольшие, частично перекрывающиеся куски.
- На панели Nodes найдите Markdown Text Splitter и перетащите его на холст.
- В параметрах укажите:
- Chunk size — 300 (максимальная длина фрагмента в символах);
- Overlap — 20 (насколько следующие куски «заходят» на предыдущий).
- Это даст блоки ≈ 300 символов, при этом важные абзацы не разорвутся.
- Соедините узлы: вытяните стрелку из выхода Markdown Text Splitter в вход Folder with Files.

Теперь каждая загруженная Markdown-заметка сначала попадёт в сплиттер, а затем уже в следующие этапы пайплайна.
5. Эмбеддинги и векторное хранилище
Дальше нужно научить Flowise «понимать» текст: превратить каждый чанк в вектор и сложить эти векторы в быстрый поиск — Faiss. Для этого добавим два узла.
5.1 OpenAI Embeddings
- Перетащите узел OpenAI Embeddings на холст.
- В его настройках:
- Model — выберите, например, text-embedding-3-large (любая подходящая модель OpenAI).
- Connect Credential → Create New:
- Credential Name — произвольное, например Flowise.
- API Key — вставьте свой ключ с https://platform.openai.com/api-keys.
- (Опционально) Если хотите использовать локальный эмбеддер через LM Studio, выберите узел Nomic или другой локальный вариант и укажите Base Path до модели. В этом примере остаёмся на OpenAI, потому что ключ уже есть.
5.2 Faiss (Vector Store)
- Перетащите узел Faiss.
- Соедините стрелками:
- Folder with Files → Faiss (документы).
- OpenAI Embeddings → Faiss (векторы).
- В настройках Faiss в поле Base Path to Load введите следующую директорию:
./flowise_data/faiss_index

После сохранения и запуска Upsert узел Faiss создаст индекс и сохранит его по указанному пути. Теперь Semantic Search готов: Retriever будет искать близкие векторы, а LLM — формировать ответы.
6. Conversational Retrieval QA — «сердце» чат-агента
Этот узел объединяет retriever (поиск нужных фрагментов в Faiss-индексе) и LLM (генерацию ответа). Он находится в разделе LangChain → Chains.
6.1 Добавьте на холст узел
Conversational Retrieval QA Chain
- Retriever: сразу соедините выход Faiss c входом Retriever — так Chain будет знать, где искать документы.
- Chat Model: нужен отдельный узел ChatOpenAI. Перетащите его на холст и настро́йте:
- Connect Credential → выберите ранее созданный ключ (например Flowise).
- Model Name — gpt-3.5-turbo или, если доступен, gpt-4o.
- Temperature — 0.9 (больше креативности; 0 – точные ответы).
- Allow Image Upload / Image Resolution — включайте по необходимости.
- Additional Parameters → Reasoning Effort: High, чтобы модель тщательнее обдумывала ответы.
- Соедините выход ChatOpenAI с соответствующим входом Conversational Retrieval QA.
6.2 (Опция) Память диалога
Если нужно, чтобы агент «помнил» предыдущие сообщения, добавьте узел InMemory Cache и подключите его во вход Cache узла ChatOpenAI.
6.3 (Опция) Собственные промпты
В настройках Conversational Retrieval QA доступны поля Rephrase Prompt и Response Prompt. Здесь можно:
- заставить ИИ отвечать только на основе найденных заметок;
- задать тон ответа (например, обращаться к себе как «Second Brain»);
- запретить «выдумывать» факты при отсутствии контекста.
Стандартные значения работают из-коробки, но кастомные инструкции дают больше контроля.
После этих шагов цепочка выглядит так же, как мы описывали ранее; мы лишь добавили завершающий слой «поиск → ответ». Теперь можно нажать Save, открыть тестовую панель справа и задать вопрос: Flowise найдёт фрагменты в Obsidian-Vault и сгенерирует осмысленный ответ, учитывая историю вашего диалога.
7. Сохраните поток:
Проверьте связи между узлами. Конечная схема должна последовательно соединять, как на скриншоте:

Сохраните изменения:
Теперь нажмите кнопку Сохранить (в правом верхнем углу Flowise -> Save Chatflow). Это развернет ваш чатфлоу для использования.
8. Индексация данных (Upsert)
Перед тем как бот сможет отвечать, нужно «заправить» векторную базу: преобразовать все загруженные фрагменты в эмбеддинги и записать их в Faiss.
- На верхней панели чатфлоу нажмите Upsert Vector Database (иконка с коробкой и стрелкой вверх, расположена рядом с кнопкой запуска чата).
- Flowise выполнит цепочку целиком:
- Folder with Files читает Markdown-файлы.
- Markdown Text Splitter режет их на чанки.
- OpenAI Embeddings превращает чанки в векторы.
- Faiss сохраняет векторы в индекс.
- Следите за логами внизу экрана: там видно прогресс и сообщение “Finished upserting” после завершения.
- Время зависит от объёма Vault — пара секунд для десятков заметок и до нескольких минут для больших баз._
- Добавили новые файлы или изменили существующие? Просто нажмите Upsert ещё раз — Flowise обновит индекс.
Теперь агент готов. Нажмите значок чата (правый верхний угол холста), задайте вопрос, ответ на который есть в ваших заметках, и убедитесь, что бот цитирует именно вашу базу знаний.
Шаг 4: Настройка окружения для Телеграм Бота
Важный этап, чтобы впоследствии удобно запускать и отлаживать код.
0. Установка Poetry
Poetry — менеджер, который одновременно:
- создаёт виртуальное окружение (аналог venv);
- ведёт файл зависимостей (pyproject.toml);
- фиксирует версии в poetry.lock, чтобы «у меня работает» превратилось в «у всех работает».
Для начала нужно установить Poetry — менеджер зависимостей и виртуальных окружений для Python.
На macOS или Linux выполните в терминале следующую команду:
curl -sSL https://install.python-poetry.org | python3 -
Windows (PowerShell)
Скопируйте ту же команду, предварительно убедившись, что python доступен в PATH:
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
После установки проверьте версию Poetry командой:
poetry --version
Увидели что-то вроде Poetry version 1.8.3 — значит всё прошло успешно. Если команда не найдена, перезапустите терминал или добавьте в переменную PATH:
macOS / Linux
$HOME/.local/bin (Linux/macOS)
Windows (PowerShell)
%APPDATA%\Python\Scripts (Windows)
Что дальше?
- В корне проекта выполните poetry init (или poetry new bot, если хотите сразу каркас).
- Добавьте зависимости:
poetry add python-telegram-bot requests
- Активируйте окружение:
poetry shell
1. Создание нового Python-проекта c Poetry — пошагово
Шаг 1. Откройте IDE или редактор
- Используйте удобную среду — Visual Studio Code, PyCharm или любой другой редактор.
- В VS Code откройте папку проекта: встроенный терминал пригодится для всех команд.
Шаг 2. Перейдите в каталог, где будет храниться бот
cd /путь/к/папке # пример: cd ~/Flowise
Если каталога ещё нет — создайте его командой mkdir, затем зайдите внутрь через "cd":
mkdir Flowise # создать папку: Flowise cd Flowise # зайти в папку: cd ~/Flowise
Шаг 3. Сгенерируйте каркас проекта через Poetry
poetry new flowise_bot
Poetry создаст папку flowise_bot со стандартной структурой:
flowise_bot/ ├── flowise_bot/ # ваш исходный код ├── tests/ # тесты ├── pyproject.toml # конфигурация проекта и зависимостей ├── README.rst └── .gitignore
Перейдите в только что созданный каталог:
cd flowise_bot
pyproject.toml уже готов — в нём хранится всё, что нужно Poetry для установки пакетов и управления виртуальным окружением.
2. Устанавливаем зависимости
Нам понадобятся четыре основных пакета:
- python-telegram-bot — взаимодействие с Telegram-API;
- requests — синхронные HTTP-запросы к Flowise (если предпочитаете асинхронный стиль, можно заменить на aiohttp);
- python-dotenv — загрузка переменных окружения из файла .env;
- (необязательно) flowise SDK — собственный клиент от Flowise, но в этом руководстве мы будем отправлять запросы напрямую, чтобы видеть «под капотом», что происходит.
Установите всё одной командой:
poetry add python-telegram-bot python-dotenv requests
- На заметку: версии python-telegram-bot 20 и выше требуют Python ≥ 3.10.
- Если нужно зафиксировать минимальную версию интерпретатора, добавьте в pyproject.toml строку
- python = "^3.10".
Poetry скачает пакеты и автоматически создаст для проекта виртуальное окружение.
3. Настраиваем переменные окружения
Создайте в корне проекта файл .env и добавьте туда конфиденциальные данные:
TELEGRAM_TOKEN=<токен бота от BotFather> FLOWISE_HOST=http://localhost:3000 FLOWISE_CHATFLOW_ID=UUID вашего chatflow FLOWISE_API_KEY=API-ключ Flowise
- TELEGRAM_TOKEN — обязателен всегда.
- FLOWISE_HOST — адрес сервера Flowise; по умолчанию http://localhost:3000.
- FLOWISE_CHATFLOW_ID — UUID вашего Chatflow (виден в URL или во вкладке Settings).
- FLOWISE_API_KEY — нужен только в Flowise ≥ 1.0, если включена авторизация (Settings → API Keys).
Почему именно .env? Так токены не попадают в исходники, их легко менять под разные окружения и безопасно хранить локально.
Чтобы избежать случайной загрузки секретов в репозиторий, добавьте файл .env в .gitignore.
Это можно сделать прямо из терминала вашей IDE командой:
echo ".env" > .gitignore
На этом этапе зависимости установлены, окружение сконфигурировано — можно переходить к написанию кода бота.
Шаг 5: Написание кода Telegram-бота
Перейдем непосредственно к коду.
Начало кода:
- Создаем файл под названием "bot.py" в вашем Visual Studio или другом IDE
Полный код бот-скрипта (bot.py):
# flowise_telegram/bot.py
import os
import logging
from dotenv import load_dotenv
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, ContextTypes, filters
import httpx
# 1) Загрузка переменных окружения из файла .env
load_dotenv()
TELEGRAM_TOKEN = os.getenv("TELEGRAM_TOKEN")
FLOWISE_URL = os.getenv("FLOWISE_URL", "").rstrip("/") # например "http://localhost:3000"
FLOWISE_API_KEY = os.getenv("FLOWISE_API_KEY")
CHATFLOW_ID = os.getenv("CHATFLOW_ID")
# 2) Базовая настройка логирования
logging.basicConfig(
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
level=logging.INFO
)
logger = logging.getLogger(__name__)
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
"""
Обработчик команды /start: приветствует пользователя.
"""
user = update.effective_user
await update.message.reply_html(
rf"Привет {user.mention_html()}! Отправь мне любой вопрос, и я обращусь к твоим заметкам Obsidian через Flowise. 🙂"
)
async def chat_handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
"""
Обработчик текстовых сообщений: пересылает вопрос пользователя в Flowise и отвечает.
"""
question = update.message.text.strip()
if not question:
return
# Собираем URL для запроса к Flowise Prediction API
endpoint = f"{FLOWISE_URL}/api/v1/prediction/{CHATFLOW_ID}"
payload = {"question": question}
headers = {
"Content-Type": "application/json",
"x-api-key": FLOWISE_API_KEY or ""
}
try:
async with httpx.AsyncClient() as client:
resp = await client.post(endpoint, json=payload, headers=headers, timeout=30.0)
resp.raise_for_status()
data = resp.json()
# Пытаемся извлечь ответ из возможных форматов JSON
nested = data.get("data") or {}
answer = (
nested.get("text")
or nested.get("answer")
or data.get("text")
or data.get("answer")
or data.get("response")
)
if not answer:
answer = "❌ Flowise вернул пустой ответ."
except httpx.HTTPStatusError as hx:
status = hx.response.status_code
body = hx.response.text
logger.error(f"Flowise вернул HTTP {status}: {body}")
if status == 401:
answer = "🚨 Ошибка авторизации: проверьте FLOWISE_API_KEY и CHATFLOW_ID."
else:
answer = f"🚨 Ошибка Flowise {status}: {body}"
except Exception as e:
logger.error(f"Ошибка при обращении к Flowise: {e}")
answer = "🚨 Не удалось связаться с Flowise. Попробуйте позже."
# Отправляем ответ пользователю
await update.message.reply_text(answer)
def main():
"""
Инициализация и запуск Telegram-бота.
"""
if not TELEGRAM_TOKEN or not FLOWISE_URL or not CHATFLOW_ID:
logger.error("Отсутствуют обязательные переменные окружения. Проверьте файл .env.")
return
application = ApplicationBuilder().token(TELEGRAM_TOKEN).build()
application.add_handler(CommandHandler("start", start))
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, chat_handler))
logger.info("Бот запущен. Ожидание сообщений...")
application.run_polling()
if __name__ == "__main__":
main()
Код довольно компактный.
Этот бот написан в асинхронном стиле, то есть бот не «застревает» в ожидании ответа от сервера, а умеет выполнять несколько дел параллельно и быть более отзывчивым.
Шаг 6: Запуск и тестирование бота
Настало время запустить бота и посмотреть, как он отвечает.
1. Запуск бота:
Убедитесь, что Flowise все еще запущен и доступен на том хосте/порту, который вы указали. Активируйте виртуальное окружение Poetry, если оно не активно:
source $(poetry env info --path)/bin/activate
и выполните:
python bot.py
В консоли появится сообщение "Бот запущен. Ожидание сообщений...". Бот подключился к Telegram. Теперь откройте приложение Telegram, найдите своего бота (через его юзернейм, указанным при создании) и отправьте любое сообщение.
2. Тест диалога:
Напишите боту запрос, ответ на который точно содержится в ваших Obsidian заметках. Например: “Какие проекты у меня запланированы?” – если у вас есть заметка с планами. Бот должен некоторое время “думать” (появится статус “typing…”) и затем ответить текстом, извлекая факты из заметок.

Если ответ пришел – поздравляю, у вас работает AI-собеседник на базе ваших данных! Он будет отвечать на любые ваши вопросы, отправляя их через Flowise агенту, настроенному на работу с вашей базой знаний или "Вторым Мозгом".
3. Как остановить сервисы
- Бот — нажмите Ctrl + C в терминале, где он запущен.
- Flowise — то же самое: Ctrl + C в его окне или закройте вкладку/процесс.
- если работает в Docker — введите docker stop flowise или остановите контейнер через интерфейс Docker Desktop.
Все зависимости изолированы в poetry-окружении, так что после остановки ничего лишнего в системе не остаётся.
Шаг 7. Куда развивать проект дальше
- Наведи порядок в коде.
- Перенеси логику работы c Flowise в flowise_client.py, настройки ‒ в config.py, обработчики сообщений ‒ в bot.py. Чем крупнее проект, тем важнее делить его на модули.
- Храни секреты безопасно.
- В разработке удобно использовать .env, а в продакшене — переменные окружения или секрет-хранилища (Docker Secrets, Vault, etc.). Никогда не коммить токены.
- Проще запускать через Poetry.
- В pyproject.toml добавь:
[tool.poetry.scripts] run-bot = "bot:main"
Теперь бот стартует командой poetry run run-bot.
- Больше логов — меньше боли.
- Логируй входные вопросы, ответы AI и ошибки в файл. Оберни вызов ask_flowise в try/except, чтобы бот не падал из-за одной неудачи.
- Добавь память диалога.
- Сохраняй sessionId (или history) для каждого пользователя Telegram и передавай его в Flowise — бот будет помнить контекст.
- Используй возможности Telegram.
- Отправляй форматированный Markdown, кликабельные ссылки и картинки, если они есть в ответе Flowise.
- Разверни бот и Flowise на сервере.
- Самый простой путь — Docker-контейнеры и docker compose. Запусти их как сервисы или под Supervisor / systemd.
- Веди код под Git.
- Репозиторий помогает откатываться, обсуждать изменения и делиться проектом.
Экспериментируй с настройками Flowise, улучшай промпты и расширяй функциональность — твой бот станет полезнее и умнее.
❗️Частые ошибки при установке Flowise и их решения
🖥 macOS
- Puppeteer пытается скачать Chromium и установка рвётся
- Причина: зависимость Puppeteer по умолчанию грузит браузер, который на сервере не нужен.
- Исправление: перед установкой запретите скачивание и повторите команду.
export PUPPETEER_SKIP_DOWNLOAD=1 npm install -g flowise
- EACCES / EPERM: нет прав на /usr/local/...
- Причина: npm пытается писать в каталоги, которые принадлежат root.
- Исправление: один раз смените владельца, затем ставьте пакеты обычным пользователем.
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib/node_modules npm install -g flowise
🖥 Windows
node-gyp ругается на отсутствие Visual C++ Build Tools
- Причина: некоторые зависимости требуют компиляции C/C++.
- Исправление:
- Поставьте Build Tools for Visual Studio 2022 (или саму VS 2022 Community).
- В установщике Visual Studio отметьте нагрузку Desktop development with C++.
- Перезапустите терминал и повторите:
npm install -g flowise.
Сообщение «OMG CMake is not installed»
- Причина: пакет couchbase не находит cmake в PATH.
- Исправление (быстрый способ через Chocolatey, админ-PowerShell):
choco install cmake --installargs '"ADD_CMAKE_TO_PATH=System"' -y
Flowise установлен, но flowise --version падает с MODULE_NOT_FOUND
- Причина: предыдущая установка прервалась, остались «обломки».
- Исправление:
- Удалите остатки пакета и ярлыков:
rm "$env:APPDATA\npm\node_modules\flowise" -Recurse -Force del "$env:APPDATA\npm\flowise*" -Force -ErrorAction SilentlyContinue
2. Очистите кэш npm:
npm cache clean --force
3. Переустановите с «безопасными» флагами:
npm install -g flowise --unsafe-perm --legacy-peer-deps
Финальная проверка
flowise start # или npx flowise start
В терминале должна появиться строка:
[INFO]: ⚡️ [server]: Flowise Server is listening at :3000
Если по адресу http://localhost:3000 открывается интерфейс Flowise, установка прошла успешно.
Удачи 🙌
Автор:
Айдимиров Айдимир Эльдарович
Генеральный директор
ООО “Координатор"
Телеграм: https://t.me/bim_koordinator