Плагин ChatGPT для CRM "Руководитель"

Установка

  1. Установите плагин в папку plugins/ (у вас должен появиться путь plugins/ChatGPT).

  2. Перейдите в папку /config/server.php, в файле добавьте плагин. У вас должно получиться так:

define('AVAILABLE_PLUGINS', 'ext,ChatGPT');
  1. Проверьте корректность отображения плагина в CRM.

Создайте таблицу в БД вашей CRM. Нажмите на кнопку "Создать таблицу" и программа автоматически это сделает.

В итоге должно получится так:

Настройка

Перед использованием плагина его нужно настроить: получить API ключ, создать ассистента, если ChatGPT не доступен в вашем регионе, настроить прокси-сервер.

  1. Зарегистрируйтесь на сайте https://platform.openai.com/playground (если еще нет учетной записи) и создайте новый проект

  1. После создания проекта, перейдите на вкладку API keys и создайте ключ. Запишите его в секретное место

  1. Перейдите на вкладку "assistants" и создайте его. Вы также можете написать для него инструкции по его поведению. Установите ползунок в положение "on" для разрешения искать ответы в ваших файлах. Так же нам необходимо скопировать имя ассистента.

  1. Для обучения ассистента нам понадобится узнать ID адрес его хранилища файлов. Сделать это можно следующим образом:

Переходим во вкладку storage

Далее vector stores и создаем его

После создания, нам нужно привязать нашего ассистента и скопировать ID VECTOR STORE

  1. При успешных действиях у нас должна быть информация по API ключу, ID ассистента, ID VECTOR STORE.

  2. Если на вашей территории ChatGPT не доступен, воспользуйтесь при регистрации VPN. Для дальнейшего использования плагина вам также понадобится прокси-сервер. (я использовал этот ресурс https://panel.proxyline.net/ IPv4 )

  3. Получите ключ плагина.

  4. Настройка плагина. Заполните поля во кладке настройка плагина в вашей CRM. Вводим только настройки, поля в "Обучении модели" оставляем не заполненными

  1. Проверяем результат: если номер ассистента оставить незаполненным, программа будет использовать общую модель ChatGPT-4; в случае, если номер ассистента присутствует, программа будет обращаться к вашему ассистенту.

Обучение

Для примера я создал сущность "Табель рабочих" и добавил туда записи

Далее переходим в раздел Настройки -> Обучение модели. Заполняем поля: Наименование файла (который передастся в vector store), Номер сущности в нашей CRM системе (по умолчанию данные выбираются из всей таблицы сущности; если требуются определенные поля, зайдите в plugins/ChatGPT/classes/EntityHandler.php и настройте нужный параметр запроса).

// Some code
public function getEntityData($entity_number)
{
    $table_name = "app_entity_" . (int)$entity_number;
    $query = "SELECT * FROM $table_name"; // Укажите какие данные нужно выбирать из таблицы сущности 
    $result = db_query($query);
    $data = [];

    if ($result) {
        while ($row = mysqli_fetch_assoc($result)) {
            $data[] = $row;
        }
        return $data;
    } else {
        throw new Exception("Не удалось получить данные из таблицы $table_name");
    }
}

Отправляем данные

Проверяем результат. Видим что обучение ассистента прошло и он выдает ответы основываясь на данных в сущности "Табель рабочих"

Настройка доступа групп пользователей

Зайдите в файл plugins/ChatGPT/menu.php и укажите какие группы будет иметь доступ к разделу меню.

// Some code
<?php

$submenu = array();
//Укажите группы доступа к меню чата
if (in_array($app_user['group_id'], [0, 4])) {
    $submenu[] = array(
        'title' => 'ChatGPT',
        'url' => url_for('ChatGPT/page_chatgpt/gpt'),
        'class' => 'fa-comments'
    );
}
//Укажите группы доступа к настройкам чата
if ($app_user['group_id'] == 0) {
    // Администратор
    $submenu[] = array(
        'title' => 'Настройки',
        'url' => url_for('ChatGPT/page_chatgpt/settings'),
        'class' => 'fa-cogs'
    );
}

if (!empty($submenu)) {
    $app_plugin_menu['menu'][] = array(
        'title' => 'OpenAI',
        'url' => url_for(''),
        'class' => 'fa-rocket',
        'submenu' => $submenu
    );
}

В данных настройках мы видим, что администратор имеет доступ ко всем вкладкам меню, а группа доступа 4 имеет доступ только к чату.

Так же в файле plugins/ChatGPT/modules/page_chatgpt/module_top.php укажите доступ к страницам.

// Some code
<?php

//Укажите группы доступа к плагину
if (!in_array($app_user['group_id'], [0, 4])) {
    redirect_to('dashboard/access_forbidden');
}

Плагин настроен и готов к работе. По вопросам настройки плагина обращайтесь в телеграм https://t.me/vertlm

Last updated