Обучение ИИ векторному методу
Искусственный интеллект стал надёжным помощником в решении множества повседневных и профессиональных задач — от написания текстов до анализа данных. Наибольшую популярность обрели Генеративные модели ИИ благодаря своей способности создавать новые данные, опираясь на информацию, использованную в процессе их обучения. Объясняя простым языком, они могут создавать тексты, изображения, музыку или другие типы контента, имитируя стиль и структуру исходных данных, при этом формируя уникальные и оригинальные варианты ответа, не являющиеся дословным повторением исходного материала.
Одна из проблем, с которой часто сталкиваются пользователи, которые используют Генеративную модель ИИ – получение ложной или искаженной информации. Искусственный интеллект может "уверенно" отвечать неправильно, если не ограничен контекстом или не знает, где искать достоверный источник. Данное явление называют "галлюцинацией ИИ".
Такое поведение недопустимо, если мы работаем с технической, юридической документацией или другими материалами, где чрезвычайно важна точность ответа.
Решением становится метод подбора — подход, при котором ИИ не "выдумывает" ответ, а выбирает наиболее релевантный фрагмент из заранее подготовленной базы знаний.
В данной инструкции мы подробно рассмотрим процесс обучения ИИ методу подбора.
hashtag Что такое метод подбора?
hashtag Для обучения нам понадобятся следующие платформы и сервисы:
NocoDB
n8n
Pinecone
OpenAI
hashtag Формирование базы данных
В первую очередь нам необходимо подготовить данные для загрузки в ИИ и сформировать базу данных в формате вопрос-ответ. Сделать это можно на платформе NocoDB, однако быстрее и проще будет создать подходящий список в Google Sheets.
Перерабатываем материал в вопрос-ответы
Берём интересующий материал и формируем вопросы и ответы.

Чем больше будет синонимичных вопросов, тем более точно ИИ будет подбирать ответ. Рекомендуется минимум 10 вопросов на каждый ответ. Один вопрос — одна строка.
Рекомендуемая длина листа в Google Sheets — не более 150 строк, чтобы потом не возникло проблем при импорте в NocoDB.
Добавляем дополнительные колонки
Добавляем ещё 4 колонки (к уже переименованной Title), итого должно получиться 5 колонок:
question — Field type: Long text
answer — Field type: Long text
embedded — Field type: Checkbox
to_embed — Field type: Checkbox (значение Default value должно быть включено)
to_delete — Field type: Checkbox
Импортируем CSV в NocoDB
Нажимаем на три вертикальных точки → Upload → Upload CSV.
Перетягиваем CSV или загружаем из файловой системы.
Важно: названия колонок в CSV и таблице NocoDB должны совпадать. Либо вручную сопоставьте столбцы.
Нажмите Import.
После успешного импорта вы увидите таблицу с загруженными строками.
hashtag Создание индексов в Pinecone
Pinecone — облачная векторная база данных. При передаче текста в ИИ он преобразуется в вектор (массив чисел), отражающий смысл текста. Для эффективного поиска похожих векторов используют индекс — структуру, оптимизированную для быстрого поиска.
hashtag Обучение ИИ по базе знаний (загрузка эмбеддингов в Pinecone через n8n)
Создаём Workflow в n8n
В n8n создаём новый Workflow.
Цепочка узлов будет выглядеть так (схема в оригинале):
Краткое описание узлов:
Schedule Trigger — триггер по расписанию.
NocoDB — получает строки (вопросы/ответы) из таблицы.
HTTP Request — запрос к OpenAI для генерации эмбеддингов.
Embeddings — формирует массив векторов.
50 Vectors — формирует пакет из 50 векторов для загрузки.
Upsert — загружает векторы в Pinecone.
Mark as Embedded — помечает записи в NocoDB как обработанные.
NocoDB (получение данных)
В узле выбираем Credential (NocoDB и Pinecone должны быть настроены в n8n как Credentials).
Указываем Project Name и Table name.
В Options → Fields указываем: - I d,question,answer
В поле Filter by Formula используем фильтр:
В n8n должны быть созданы Credentials для NocoDB (Name + API Token) и Pinecone (Name + API Key). Это требуется для доступа к сервисам.
Mark as Embedded (пометка записей в NocoDB)
URL: https://<Адрес_nocodb>/api/v2/tables/<айди_таблицы>/records
Method: PATCH
Authentication: Predefined (Credential Type: NocoDB API Token)
Header: accept: application/json
В Body (тип: Expression) указываем:
Сохраняем Workflow и запускаем вручную или по триггеру. После успешного выполнения в колонке embedded появятся галочки — данные загружены в Pinecone.
hashtag Настройка сценария в Smartbot
Войдите в личный кабинет Smartbot и перейдите в раздел "Сценарии".
Нажмите "Создать сценарий", задайте имя и создайте сценарий.
Схематически сценарий состоит из 7 блоков:
Нет подходящего сценария
Выполнить SmartQuery
Выполнить SmartQuery
Отправить HTTP-запрос
Webhook
Выполнить SmartQuery
Отправить сообщение
Краткая расшифровка блоков:
Блок 1: Нет подходящего сценария — реагирует на любое сообщение пользователя, запускает цепочку.
Блок 2: Выполнить SmartQuery — техническая связка (промежуточный блок).
Блок 3: Выполнить SmartQuery — готовит URL и тело запроса.
Пример переменных и тела (в блоке 3):
%string_temp% — итоговый URL.
%body% — передаём вопрос и ID пользователя.
%n8n_url% — ссылка на ваш n8n сервер.
Важно: URL должен совпадать с Path вебхука в n8n.
Блок 4: Отправить HTTP-запрос — POST %string_temp% с телом {{ %body% | to_json }} и заголовком content-type: application/json.
Блок 5: Webhook — принимает ответ от n8n. Для работы создайте API-токен в Smartbot и выберите его в настройках Webhook.
Блок 6: Выполнить SmartQuery — извлекаем ответ из Webhook и сохраняем в переменную %bot_message%:
Блок 7: Отправить сообщение — выводим %bot_message% пользователю.
Проверка: is not empty
Code (успех) — формирование тела ответа
Пример кода для формирования тела ответа в случае совпадения:
Внимание: access_token, channel_id и block_id — примеры из инструкции. Используйте ваши реальные значения.
HTTP Request (успех) — отправка ответа в Smartbot
Method: POST
URL: https://api.smartbotpro.ru/blocks/execute
Authentication: None
Body Content Type: JSON
Body Parameters: {{ JSON.stringify($json.body) }}
Code1 (совпадений не найдено)
Пример тела для случая отсутствия совпадений:
HTTP Request1 (не найден ответ)
Method: POST
URL: https://api.smartbotpro.ru/blocks/execute
Authentication: None
Body Content Type: JSON
Body Parameters: {{ JSON.stringify($json.body) }}
Если нужно, могу:
Сгенерировать готовые JSON/пример конфигурации для узлов n8n (Webhook, HTTP Request, Upsert в Pinecone и т.п.).
Помочь адаптировать сценарий под ваши реальные access_token / channel_id / block_id (без публикации чувствительных данных — подскажу, где заменить).
Хотите, чтобы я подготовил экспорт n8n workflow (в виде JSON) под вашу конфигурацию?