Обсуждение ChatGPT

akok

Команда форума
Администратор
Ассоциация VN
Сообщения
24,704
Реакции
13,562
Решил поиграться, впечатлен. Ответы осмысленные, анализ, написание кода по описанию, переводы или написание текста по описанию. Отдельно стоит отметить внятные выжимки из большого объема текста.

Поиграться можно здесь => https://chat.openai.com/chat

Или установить локально на ПК, но нужно подключать API и бонусом создать команду.
 
Последнее редактирование:
Предлагаешь попробовать скрипты лечения писать с его помощью? На киберфоруме в разделах по программированию "умники" уже с его помощью выдают программы и комментарии к ним под видом своих. И попадают в бан (по крайней мере такие предложения поступали).
 
Боже спаси. Для начала нужно долго и нудно тренировать модель (я не уверен, что такие данные есть в модели в полном объеме), потом что-то пытаться без уверенности в успех. А вот попросить сеть проанализировать текущие самописные скрипты, и выдать рекомендации по улучшению, или чего, по мелочи, то почему бы и нет. Мелкие программы на php пишет неплохо... ну по крайней мере на мой взгляд обывателя. Что-то крупное, упирается в ограничения на количество символов, и приходится просить сеть продолжить код.

Что-то более конкретно сказать не могу, "щупать" начал только сегодня.

Этот код на Delphi. В основном он содержит определения процедур и функций, некоторые из которых выполняют изменения в реестре Windows.

Приложение, к которому относится этот код, скорее всего, имеет дело с настройкой и/или восстановлением настроек служб в операционной системе Windows.

Каждая процедура или функция имеет свою собственную задачу, и они вызываются друг из друга для выполнения целого набора задач. Процедуры и функции названы в соответствии со своей задачей, например, CheckAndRestoreStrParam проверяет наличие строкового параметра в реестре и, если его нет, восстанавливает его.

Одна из процедур, ImagePathFix, исправляет значение параметра ImagePath для служб 'wuauserv' и 'BITS'. Процедура проверяет, существует ли заданный ключ реестра, и, если да, изменяет значение параметра ImagePath на значение, которое определено в глобальной переменной ImagePathStr.

Также есть другие процедуры, которые работают с различными параметрами реестра и проверяют их наличие и целостность. Есть процедуры, которые проверяют существование ключей реестра и восстанавливают их, если они отсутствуют. В целом этот код выполняет множество операций по проверке и настройке реестра, которые могут потребоваться для правильной работы операционной системы.
 
ChatGPT нужно огромное количество уточняющих параметров для улучшения или анализа кода ибо порой сам путается особенно если код где-то нужно подправить или улучшить. Так же он плохо работает с отдельными сегментами кода и ему проще дать ВЕСЬ код да бы он что-то попытался улучшить. Например я начал С++ изучать и просто для практической работы я ему предоставил свой код и спросил варианты его улучшить.
Код:
#include <iostream>
#include <ctime>
#include <conio.h>
using namespace std;

void main()
{
    setlocale(LC_ALL, "Rus");   // Локаль Русский
    srand(time(NULL));
    bool AlreadyUse;
    int Visota;
    int Shirina;
    int NewGenerate;

    cout << "Введите высоту: " << endl;
    cin >> Visota;
    cout << "Введите ширину: " << endl;
    cin >> Shirina;
    cout << endl;

    int SizePole = Visota * Shirina;

    
        int* Pole = new int[SizePole];

        for (int i = 0; i < SizePole;)
        {
            AlreadyUse = false;
            NewGenerate = rand() % SizePole;

            for (int j = 0; j < i; j++)
            {
                if (Pole[j] == NewGenerate)
                {
                    AlreadyUse = true;
                }
            }

            if (!AlreadyUse)
            {
                Pole[i] = NewGenerate;
                i++;
            }
        }

        cout << "--------------------------" << endl;

        for (int a = 0, i = 1; a < SizePole; a++, i++)
        {
            cout << Pole[a] << "\t";

            if (i % Shirina == 0)
            {
                cout << endl;
            }
        }

        cout << "--------------------------" << endl << endl;

        int MinValue = Pole[0];

        for (int i = 1; i < SizePole; i++)
        {
            if (Pole[i] < MinValue)
            {
                MinValue = Pole[i];
            }
        }

        cout << "Минимальное значение в массиве: " << MinValue << endl;

        delete[] Pole;    // Освободим память. (Мусор если мы с ним ничего не делаем).

        cout << "Память освобождена." << endl;

    cout << endl;

    cout << "Проверка кнопок. Нажимайте стрелочки." << endl
        << "Нажмите P (англ) - чтобы выйти" << endl << endl;

    bool Refresh = true;

    do
    {
        int move = static_cast<int> (_getch()); // UP = 72, DOWN = 80, RIGHT = 77, LEFT = 75, P(EN) = 112

        switch (move)
        {
            case 72:
            {
                cout << "Вверх" << endl;
                Refresh = true;
                break;
            }

            case 80:
            {
                cout << "Вниз" << endl;
                Refresh = true;
                break;
            }

            case 77:
            {
                cout << "Вправо" << endl;
                Refresh = true;
                break;
            }

            case 75:
            {
                cout << "Влево" << endl;
                Refresh = true;
                break;
            }

            case 112:
            {
                cout << "ИНИЦИАЛИЗАЦИЯ ВЫХОДА" << endl;
                Refresh = false;
                break;
            }
        }
    } while (Refresh);

    system("Pause");
}

Этот код я делал знакомому по простому чтобы сделать игру "Пятнашки", но я решил делать без ограничений чтобы понять что и как будет работать при таких условиях.
В ответ от GPT я получил следующее.
Этот код создает массив случайных целых чисел размера, определяемого пользователем, затем находит минимальное значение массива и выводит его. Затем он ждет, пока пользователь нажмет стрелки или P, и выводит соответствующую стрелку.

Вот несколько предложений для улучшения этого кода:

В C++ функция main() должна возвращать int вместо void.
Использование "using namespace std" обычно не рекомендуется, так как это может привести к конфликтам имен. Вместо этого используйте полное имя объекта, например "std::cout" вместо "cout".
Переменная "Refresh" используется для определения момента выхода из цикла, более понятно было бы использовать переменную "continueLoop" или подобную.
Функция _getch() не является частью стандартной библиотеки C++, это функция из библиотеки C conio.h и она не портабельна. Чтобы сделать ваш код более портабельным, используйте функцию cin.get() из стандартной библиотеки C++ вместо нее.
5. Команда "system("Pause")" не портабельна, это специфичная команда Windows. Чтобы сделать ваш код более портабельным, используйте cin.get() или cin.ignore() для паузы программы.

Массив создается с использованием rand(), однако rand() имеет плохие статистические свойства, более безопасно было бы использовать лучший генератор случайных чисел, такой как <random> из C++11.
Вы можете использовать 2D массив вместо 1D, это было бы более интуитивно для пользователя.
Было бы более читабельно, если вы использовали более значимые имена переменных.
После я попросил его улучшить код согласно его же словам. Вышло следующее.
Код:
#include <iostream>
#include <algorithm>
#include <random>

int main()
{
    std::setlocale(LC_ALL, "Rus");   // Локаль Русский
    std::mt19937 generator(std::time(nullptr)); // seed the generator
    std::uniform_int_distribution<int> distribution(1, 100000); // define the range

    int height;
    int width;
    std::cout << "Введите высоту: " << std::endl;
    std::cin >> height;
    std::cout << "Введите ширину: " << std::endl;
    std::cin >> width;

    int sizePole = height * width;
    int* pole = new int[sizePole];
    std::fill_n(pole, sizePole, 0); // fill the array with 0s

    for (int i = 0; i < sizePole; i++)
    {
        int newNum;
        do {
            newNum = distribution(generator);
        } while (std::find(pole, pole + sizePole, newNum) != pole + sizePole);
        pole[i] = newNum;
    }

    std::cout << "--------------------------" << std::endl;

    for (int a = 0, i = 1; a < sizePole; a++, i++)
    {
        std::cout << pole[a] << "\t";
        if (i % width == 0)
        {
            std::cout << std::endl;
        }
    }

    std::cout << "--------------------------" << std::endl << std::endl;

    int minValue = *std::min_element(pole, pole + sizePole);
    std::cout << "Минимальное значение в массиве: " << minValue << std::endl;

    delete[] pole;
    std::cout << "Память освобождена." << std::endl;

    std::cout << "Проверка кнопок. Нажимайте стрелочки." << std::endl
        << "Нажмите P (англ) - чтобы выйти" << std::endl << std::endl;

    bool continueLoop = true;

    do
    {
        char move = std::getchar();
        switch (move)
        {
        case 'w':
            std::cout << "Вверх" << std::endl;
            break;
        case 's':
            std::cout << "Вниз" << std::endl;
            break;
        case 'd':
            std::cout << "Вправо" << std::endl;
            break;
        case 'a':
            std::cout << "Влево" << std::endl;
            break;
        case 'p':
            std::cout << "ИНИЦИАЛИЗАЦИЯ ВЫХОДА" << std::endl;
            continueLoop = false;
            break;
        }
    } while (continueLoop);

    return 0;
};

И это при второй генерации ответа. В первой были проблема что вместо функции или библиотеки для нажатия стрелок он просто сделал !KBhit. Что является переменной, но она нигде не объявлена. GPT просто сказал что он виноват и вы можете использовать #include <conio.h>. Что было изначально.
Да и сам его код по итогу сделал немного не то, что было изначально в коде не то, что от него требовалось. Однако если спрашивать его в плане обучения, то идеально.
 
Спрашивал вопросы по языку VB6, и удивился, ChatGPT его знает.
Попросил даже написать BluePrint скрипт для движка Unreal Engine, и чёрт, он даже это знает ))
Попросил на C++ написать редкий код по настройке политик, который я ну наверное 1 час искал вручную, и ёмаё, он выдал именно тот самый правильный вариант, который днём с огнём не сыщешь. Жуть, а не машина.
И да, объясняет весьма подробно, близко к человеческому языку. Умеет учиться на ошибках, о которых ему сообщаешь.

@thyrex, @akok, а вы его спросите, может ли он выучить новый язык... Интересно, шо ответит ))
 
@thyrex, @akok, а вы его спросите, может ли он выучить новый язык... Интересно, шо ответит ))
Как модель искусственного интеллекта, я не "выучиваю" языки в традиционном смысле. Однако я могу обрабатывать и генерировать текст на многих языках благодаря своему обучению на больших объемах текстовых данных на разных языках.

Если вам нужна помощь с переводом или общением на другом языке, я могу использовать свои языковые знания, чтобы помочь вам в выполнении задач, которые связаны с языком. Однако я не могу гарантировать, что мой языковой уровень будет идеальным, поскольку моя работа основана на статистических моделях и алгоритмах машинного обучения, а не на непосредственном опыте общения на разных языках.
 
А неплохо гороскопы выдумывает
Конечно, вот гороскоп на завтра, 21 февраля, для дев:

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

Сегодня также будет хорошее время для общения с близкими и друзьями, особенно если у вас есть какие-то нерешенные проблемы. Обратитесь к своим близким за советом или поддержкой, если вам это необходимо.

В целом, день обещает быть удачным, но не забывайте о себе и своем здоровье. Найдите время для отдыха и релаксации, чтобы сохранить баланс между работой и личной жизнью.

И инструкции пишет, иногда нужно задавать вопросы или указывать на неточности, выглядит неплохо.
Конечно, я с радостью предоставлю вам более подробную иллюстрированную инструкцию по подготовке лога GetSystemInfo и его автоматическому анализу на сайте GetSystemInfo:

  1. Скачайте и установите GetSystemInfo с официального сайта: https://www.kaspersky.com/ru/downloads/thank-you/system-info
  2. Запустите GetSystemInfo.
  3. В верхнем правом углу нажмите кнопку "Создать отчет".
  4. В появившемся окне выберите опции "Краткий" или "Подробный" отчет, в зависимости от того, какую информацию вы хотите получить, и нажмите кнопку "Создать".
  5. В следующем окне выберите место, где вы хотите сохранить файл лога, введите имя файла и нажмите кнопку "Сохранить". Файл будет сохранен в формате .zip.
  6. Перейдите на сайт GetSystemInfo (GetSystemInfo (GSI) Parser: PC Compatibility Checker).
  7. Нажмите на кнопку "Анализатор лога".
  8. Нажмите на кнопку "Выберите файл", выберите файл лога, который вы сохранили на шаге 5, и нажмите кнопку "Открыть".
  9. Нажмите кнопку "Анализировать".
  10. Подождите несколько минут, пока сайт GetSystemInfo проанализирует ваш файл лога.
  11. После завершения анализа вы увидите страницу с подробной информацией о вашей системе.
  12. Чтобы сохранить результаты анализа, нажмите на кнопку "Экспортировать" и выберите формат, в котором вы хотите сохранить результаты анализа (например, PDF или HTML).
Это должно помочь вам подготовить лог GetSystemInfo и проанализировать его на сайте GetSystemInfo. Если у вас возникнут какие-либо трудности или вопросы в ходе выполнения инструкции, пожалуйста, не стесняйтесь обратиться ко мне за помощью.
 
Поиграться можно здесь => https://chat.openai.com/chat
не пускает... скрываешь айпи просит привязку...

2023-02-21_10-21-02.png
 
@machito, я юзал Free virtual numbers for receiving SMS, receiving activation of services and renting a mobile phone но нужно немножко денюжку заплатить. Публичные детектятся как уже юзаные.
Страну лучше выбирать что-то вроде Германия, Испания, Франция. В других может быть блокировка тоже. США не берите, там много внутренних виртуальных номеров (не знаю как это правильно называется), они не полноценные.
При выборе типа номера, нужно в списке поиском выбрать конкретно сервис OpenAI ChatGPT.
 
Последнее редактирование:
Ключевая фраза, чтобы заставить ChatGPT правильно решать математические задачи, когда условие представлено в виде нескольких предложений: "Think about it step by step". Иначе машина включит не шибко умный параллелизм.

но нужно подключать API и бонусом создать команду.
слышал, что этот API стоит 15-25$ за машину.
 
Последнее редактирование:
О лимитах в chatgpt
Как я уже упоминал, мои лимиты зависят от доступных ресурсов и настроек, которые могут меняться со временем. Однако, в настоящее время мои лимиты включают:

  1. Максимальная длина текста: я могу генерировать текст длиной до 2048 символов за один запрос.
  2. Ограничения на количество запросов: я могу выполнять до 100 запросов в минуту.
  3. Максимальное количество результатов: я могу вернуть до 4 результатов за один запрос.
  4. Ограничения на генерацию нежелательного или ненадлежащего контента: я работаю с технологией OpenAI, которая настроена на предотвращение генерации контента, который является нежелательным или ненадлежащим.
Учитывая эти лимиты, я буду стараться предоставлять максимально полезные и информативные ответы на ваши вопросы в рамках доступных мне ресурсов. Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь спросить меня!
 
Запись вебинара "Не шути с ChatGPT" от Касперских.
Очень содержательно на 50 минут, советую посмотреть, весьма любопытная инфа.

 
Ощущение двоякое. Любой инструмент можно использовать во зло, а так довольно познавательно.
 
Заметка на полях, что фразы которые помогают работа с чатом. Часть информации получил сам во время работы, часть подсмотрел в интернете.

  • Продолжи написание с строки "" - помогает а случае если написание текста прерывается, а продолжение оторвано от предыдущего текста логически или с большим "пробелом"
  • Продолжи код - если раздражает, когда продолжение идет как текст и без форматирования
  • Обдумай ответ пошагово - в случае если есть когнитивные проблемы в ответе.
 
Назад
Сверху Снизу