Модуль OC AI Tool free (+oc_oct_blog) [Windows] AI генератор текста. AI переводчик.

  • Автор темы Автор темы wisma
  • Дата начала Дата начала

wisma

Продвинутый (IV)
Сообщения
68
Реакции
18
Баллы
547
wisma разместил(а) новый ресурс:

OC AI Tool free (+oc_oct_blog) [Windows] AI генератор текста. AI переводчик. - Ai помошник

OC AI Tool — автоматизация контента для OpenCart (OCT Blog)

Бесплатная консольная утилита для генерации, перевода и управления контентом OpenCart через AI.
Без GUI. Без лишнего. Для тех, кто хочет результат.

OC AI Tool — это инструмент для массовой работы с:
  • товарами
  • категориями
  • информационными страницами
  • OCT Blog статьями

Работает напрямую с базой данных OpenCart.

---

🔥 Основные...

Посмотреть страницу этого ресурса...
 
От лайка не откажусь. Сутки мучал чат :)))



Как начать использовать?
В папке _internal отредактировать файл .env
Там есть подсказки...
Код:
# ===== MySQL connection =====
# Вводить без кавычек DB_HOST=localhost
DB_HOST=
DB_USER=
DB_PASS=
DB_NAME=
DB_PORT=

# API KEY SK-....
OPENAI_API_KEY=sk-

Там есть промты для теста, уже готовые, правите сами:
_internal/prompts/default_promts.ini ->> Базовые системные промты для общения с AI
_internal/prompts/blog/любоеназвание.txt -> храним свои промты для name (заголовки статей) ВНИМАНИЕ!! ЕСТЬ РАЗДЕЛИТЕЛЬ!!! ------
Вот как должен выглядеть каждый промт (для масовой генерации)
Код:
Скрытая или наружная проводка: сравнение ВВГ, NYM и ШВВП
---
Как выбрать автомат и УЗО для квартиры
---
Медный или алюминиевый кабель: что лучше для дома

Написали бесплатному чату : Сгенерируй мне 1000 заголовков, вот шаблон как должны выглядеть и все....



Все баги пишите сюда. Буду исправлять )
 
Последнее редактирование:
Если это сообщене наберет 2 лайка :shablon-padonak-06:
Сделаем возможность работы с изображениями по фтп :))) загрузили в папку с прогой, нажали кнопочку в меню, все загрузилось на сервер.
 
за старания)))) Только зачем. Есть модули, все через админку, в не через cli
 
за старания)))) Только зачем. Есть модули, все через админку, в не через cli
Даже тот же chatgpt pro в масовом режиме не потдерживает статьи, oc_blog..

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

А тут тот же по сути функционал только кнопками. Раз настроил и забыл скажем так.



В разработке альфы...
Код:
+ Возможность работы с несколькими магазинами [Режим переключения между магазинами]

Код:
+ Генерации коментариев к товарам и ocTemplate коментарии

При генерации коментариев будет возможность ставить товарам рейтинг 5.
Функция негативные отзывы тоже будет присутствовать
Если вы правильно заморочитесь с промтами, будет функция средний рейтинг от # до # прямо в промтах.
ocTemplate с голосовалкой по id


В планах:
Выставить всем товарам определеный рейтинг
Выставить всем товарам рандомный тейтинг от # до #
 
Последнее редактирование:
[seo_url]
system=You generate short URL slugs. Return ONLY JSON with key: keyword. No markdown.
user=Сгенерируй короткий seo-url (латиница, через дефис) для: {name}. Верни JSON {"keyword":"..."}.


Подскажи, проверка по БД на дубликат есть?
 
[seo_url]
system=You generate short URL slugs. Return ONLY JSON with key: keyword. No markdown.
user=Сгенерируй короткий seo-url (латиница, через дефис) для: {name}. Верни JSON {"keyword":"..."}.


Подскажи, проверка по БД на дубликат есть?
нет, для поисков дублей кучище сео программ, это чисто примочка для генерации url.
Seo url будет переделыватся. Будет генерация через программу а не через api. С проверками на дубли.
Дубли наверное будем подписывать по id языка.... я так думаю...
Словил дубль - Добавил просто префикс языка и погнал дальше. Но проще я думаю вам уже самим отсортировать сейчас дубли и изменить в ручном режиме, я не думаю что у вас там будет 10000 дублей..





Можно через базу данных:

Дубликаты товаров по name:
SQL:
SELECT name, COUNT(*) AS total
FROM oc_product_description
GROUP BY name
HAVING total > 1;
+id товаров:
SQL:
SELECT pd.name, GROUP_CONCAT(pd.product_id) AS product_ids, COUNT(*) AS total
FROM oc_product_description pd
GROUP BY pd.name
HAVING total > 1;


Дубликаты по SKU
SQL:
SELECT sku, COUNT(*) AS total
FROM oc_product
WHERE sku <> ''
GROUP BY sku
HAVING total > 1;

+id

SQL:
SELECT sku, GROUP_CONCAT(product_id) AS product_ids, COUNT(*) AS total
FROM oc_product
WHERE sku <> ''
GROUP BY sku
HAVING total > 1;


Дубликаты SEO URL
SQL:
SELECT keyword, COUNT(*) AS total
FROM oc_seo_url
GROUP BY keyword
HAVING total > 1;


Дубли товаров с id
Код:
SELECT keyword, GROUP_CONCAT(query) AS queries, COUNT(*) AS total
FROM oc_seo_url
WHERE query LIKE 'product_id=%'
GROUP BY keyword
HAVING total > 1;
 
Неплохо было бы прикрутить прокси. Кто то из России
да и выбор AI добавить, не только open.
Попробовал статьи, сгенерерил. Не плохо сделать так же список для статей, как для блога.
А так рабочее решение.

Стандартный блог встроенные в ocstore не поддерживается?
 
Последнее редактирование:
Неплохо было бы прикрутить прокси. Кто то из России
да и выбор AI добавить, не только open.
Попробовал статьи, сгенерерил. Не плохо сделать так же список для статей, как для блога.
А так рабочее решение.

Стандартный блог встроенные в ocstore не поддерживается?
Прокси вряд-ли.. с ними есть много гемора, задержки, пинги, проверки.... это долго допиливать, может когда нибудь.... и то если будет платная версия. А если она будет, то и прокси не нужны будут, работа будет производится через мой сервер. Да и vpn как бы можно поставить если что :)))))
Софт писался под клиента и дорабатывается просто для всех.


Стандартный блог... че-то я про него даже не подумал, так как в основном юзаю octemplates.

Добавлю в альфу.

Выбор AI, я думал.... Но вот какие? которые по api Работают, особено те что дают халявные токены, так как мне нужно же тестить как-то, а денег вливать не хочется)))
Но и опять-же нужно придумать логику и как это все работать будет, пока такая наработка:

Ruby:
Выберите язык для работы...
Выберите режим:
[Копирование полей name -> h1 + meta title]
[AI Переводчик]
[AI Генератор]
[AI Отзывы]
[Масовое добавление изображений]
[Поиск и очистка дублей]
[Удаление demo товары+категории+изображения]
[Настройки] ->



p.s. разрабатываю сейчас ocTemplate installer..... после него буду допиливать альфу этого продукта....
Пока собираю идеи что прикручивать.
p.s. я сравнивал кароче с chatgpt про , при одной и той-же модели у меня через софт дешевле, так как отправляется сразу 1 сообщением количество строк из конфига, в то время когда chatgpt про делает каждый запрос отдельно...
Для сравнения:
500 категорий перевел через chatgpt pro = 0.4$
Перевел 80к товаров = 1.5$ вроде, я уже не помню.
 
Последнее редактирование:
да тот же дипсик, токены могу отсыпать.
ну и стандартный блог нужен все же. Он в большинстве магазинов стоит думаю. И генерить как по списку или если есть пустые поля существующие.
 
да тот же дипсик, токены могу отсыпать.
ну и стандартный блог нужен все же. Он в большинстве магазинов стоит думаю
где-то в среду > четверг буду пилить. Свяжусь с тобой. Так как это думаю важно, многие люди не зациклены на одном AI, да и для работы проще.
 
Хорошо, пиши в личку тогда
Да. Не вопрос.


Что еще добавить? По сути я могу прикрутить что угодно, мне нужно только сам модуль или дамп его базы.


p.s. софт так же работает на локальном сервер. Host:localhost host:127.0.0.1

Если у вас все же localhost на хостинге, то нужно уточнять у хостера как извне подключится к базе....
 
Если у вас все же localhost на хостинге, то нужно уточнять у хостера как извне подключится к базе....
Галка же в phpmyadmin удаленное подключение.

Что еще добавить? По сути я могу прикрутить что угодно, мне нужно только сам модуль или дамп его базы.
Да вроде пока на широкую массу блог стандарт прикрутить.
Если будете прикручивать ИИ , можно еще наверно gemini или дипсик. Или какие лучше ИИ генерирую тексты?
 
Последнее редактирование:
Планируется ли возможность перевода характеристик (названий, и в идеале - значений?)
 
Если у вас все же localhost на хостинге, то нужно уточнять у хостера как извне подключится к базе....
Галка же в phpmyadmin удаленное подключение.

Что еще добавить? По сути я могу прикрутить что угодно, мне нужно только сам модуль или дамп его базы.
Да вроде пока на широкую массу блог стандарт прикрутить.
Если будете прикручивать ИИ , можно еще наверно gemini или дипсик. Или какие лучше ИИ генерирую тексты?
а нельзя ли сделать не подключение к базе. а выбор скачанной базы локально ? тут и вероятность косяков меньше и нет проблем с подключением. скачал на комп, выбрал, перевел и залил обратно

еще не совсем понятно по языкам. в файле
LANG_UA=3
LANG_RU=4
мне надо переводить с RU на CN
просто написать так
LANG_RU=3
LANG_CN=4
вряд ли принесет успеха думаю)
 
Последнее редактирование:
Планируется ли возможность перевода характеристик (названий, и в идеале - значений?)
времено забросил проект, так как функционал устраивает клиента и допольнительно он ничего покупать пока не хочет. Да и времени нет (
 
а нельзя ли сделать не подключение к базе. а выбор скачанной базы локально ? тут и вероятность косяков меньше и нет проблем с подключением. скачал на комп, выбрал, перевел и залил обратно

еще не совсем понятно по языкам. в файле
LANG_UA=3
LANG_RU=4
мне надо переводить с RU на CN
просто написать так
LANG_RU=3
LANG_CN=4
вряд ли принесет успеха думаю)
languages.json открываешь и....

JSON:
{
  "languages": [
    {
      "id": 1,
      "code": "ru-ru",
      "name_native": "Русский",
      "name_admin": "Русский (RU)",
      "prompt_from": "с русского языка",
      "prompt_to": "на русском языке",
      "prompt_name": "на русском языке"
    },
    {
      "id": 2,
      "code": "en-gb",
      "name_native": "English",
      "name_admin": "Английский (EN)",
      "prompt_from": "from English",
      "prompt_to": "in English",
      "prompt_name": "in English"
    },
    {
      "id": 3,
      "code": "uk-ua",
      "name_native": "Українська",
      "name_admin": "Украинский (UA)",
      "prompt_from": "с украинского языка",
      "prompt_to": "на украинском языке",
      "prompt_name": "на украинском языке"
    }
  ]
}
Добавлять до закрывающей ]
JSON:
   {

      "id": айди языка,

      "code": "какой код языка в админке",

      "name_native": "Название языка",

      "name_admin": "можно продублировать выше",

      "prompt_from": "с Китайского (CH) языка",

      "prompt_to": "на Китайском (CH) языке",

      "prompt_name": "на Китайском (CH) языке"

    }

Работает это так (ИИ вам в помощь):


Python:
# ===============================
#  ЯЗЫКИ (languages.json)
# ===============================

def load_languages_config(path: str):
    global LANG_CONFIG, LANG_BY_ID
    LANG_CONFIG = {}
    LANG_BY_ID = {}

    if not os.path.exists(path):
        print(f"⚠ Файл языков '{path}' не найден. Будут использованы дефолтные фразы.")
        log_root(f"Файл языков '{path}' не найден, используем дефолтные фразы.")
        return

    try:
        with open(path, "r", encoding="utf-8") as f:
            LANG_CONFIG = json.load(f)
    except Exception as e:
        print(f"⚠ Ошибка чтения файла языков '{path}': {e}. Будут использованы дефолтные фразы.")
        log_root(f"Ошибка чтения файла языков '{path}': {e}")
        LANG_CONFIG = {}
        return

    langs = LANG_CONFIG.get("languages") or []
    for lang in langs:
        lid = lang.get("id")
        if lid is not None:
            LANG_BY_ID[int(lid)] = lang


def get_language_for_prompts(db_language_id: int):
    if AI_LANGUAGE is not None:
        return AI_LANGUAGE
    if LANG_BY_ID:
        return LANG_BY_ID.get(int(db_language_id))
    return None


def get_language_phrase(language_id: int) -> str:
    """
    Фраза для "на украинском языке" и т.п., на основе languages.json
    """
    lang = get_language_for_prompts(language_id)
    if lang is not None:
        # Пытаемся использовать prompt_to или prompt_name
        phrase = (
            lang.get("prompt_to")
            or lang.get("prompt_name")
            or lang.get("name_admin")
            or lang.get("name_native")
        )
        if phrase:
            return phrase

    # Фоллбэк если файла нет / язык отсутствует
    if language_id == 3:
        return "на украинском языке"
    elif language_id == 1:
        return "на русском языке"
    elif language_id == 2:
        return "in English"
    return "на выбранном языке"


def debug_lang_name(lang: dict) -> str:
    if not lang:
        return "неизвестно"
    return f"{lang.get('name_admin') or lang.get('name_native') or lang.get('code') or '??'} (id={lang.get('id')})"



вообще советую если уже решили часто им пользоватся, то полазить по конфигам ) все файлы json это конфиги или настройки. И адаптируйте под себя )))

Ну, если надо что-то допилить кому либо , могу скинуть исходник. Но как пересобрать в утилиту это уже в гугл )
 
Последнее редактирование:
Назад
Верх