Добавить в корзинуПозвонить
Найти в Дзене
pov.tems-цепляет

Как я создал умного автопостера для IT-паблика ВК на нейросетях: Гайд для разработчика

Привет, Хабр... ой, Дзен! Сегодня я расскажу, как автоматизировать ведение IT-сообщества ВКонтакте, чтобы оно само наполнялось актуальным контентом, пока вы пьете кофе. Мы соберем систему, которая парсит новости, рерайтит их с помощью нейросети и постит в группу по одной кнопке. Нам нужно где-то хранить посты и настройки доступа. Используем PostgreSQL и Drizzle для описания таблиц: export const posts = pgTable("posts", {id: serial("id").primaryKey(),sourceTitle: text("source_title").notNull(),rewrittenContent: text("rewritten_content"),status: text("status").default("draft"), // draft, postedvkPostId: text("vk_post_id"),});export const settings = pgTable("settings", {id: serial("id").primaryKey(),vkToken: text("vk_token").notNull(),vkGroupId: text("vk_group_id").notNull(),}); Самая важная часть — превратить сухой заголовок из RSS в пост, который дочитают до конца. Мы используем промпт, который заставляет ИИ добавлять эмодзи и структуру. const prompt = `Перепиши новость для IT-паблика В
Оглавление

Привет, Хабр... ой, Дзен! Сегодня я расскажу, как автоматизировать ведение IT-сообщества ВКонтакте, чтобы оно само наполнялось актуальным контентом, пока вы пьете кофе. Мы соберем систему, которая парсит новости, рерайтит их с помощью нейросети и постит в группу по одной кнопке.

Что нам понадобится?

  1. Node.js + Express для бэкенда.
  2. React для удобной админки.
  3. OpenAI API (через Replit AI) для «умного» рерайта.
  4. VK API для публикации на стену.

Шаг 1: Схема данных (Drizzle ORM)

Нам нужно где-то хранить посты и настройки доступа. Используем PostgreSQL и Drizzle для описания таблиц:

export const posts = pgTable("posts", {id: serial("id").primaryKey(),sourceTitle: text("source_title").notNull(),rewrittenContent: text("rewritten_content"),status: text("status").default("draft"), // draft, postedvkPostId: text("vk_post_id"),});export const settings = pgTable("settings", {id: serial("id").primaryKey(),vkToken: text("vk_token").notNull(),vkGroupId: text("vk_group_id").notNull(),});

Шаг 2: Магия нейросетей (Рерайт)

Самая важная часть — превратить сухой заголовок из RSS в пост, который дочитают до конца. Мы используем промпт, который заставляет ИИ добавлять эмодзи и структуру.

const prompt = `Перепиши новость для IT-паблика ВК. Сделай текст вовлекающим, добавь эмодзи и структуру.Заголовок: ${news.title}Описание: ${news.description}`;const aiResponse = await openai.chat.completions.create({model: "gpt-4o", // или gpt-5messages: [{ role: "user", content: prompt }],});

Шаг 3: Публикация в ВК

Чтобы отправить пост, используем метод wall.post. Важно: для групп ID должен быть отрицательным.

const params = new URLSearchParams({owner_id: `-${settings.vkGroupId}`,from_group: "1",message: post.rewrittenContent,access_token: settings.vkToken,v: "5.131"});await fetch(`https://api.vk.com/method/wall.post`, {method: 'POST',body: params});

Итог

Теперь у нас есть админка, где можно:

  1. Зайти в настройки и привязать группу.
  2. Нажать «Сгенерировать», и через 5 секунд получить готовый пост.
  3. Нажать «Опубликовать», и пост улетает в ВК.
а полный код потом)
а полный код потом)