Обсуждение ChatGPT

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

akok

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

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

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

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

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

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

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

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

Также есть другие процедуры, которые работают с различными параметрами реестра и проверяют их наличие и целостность. Есть процедуры, которые проверяют существование ключей реестра и восстанавливают их, если они отсутствуют. В целом этот код выполняет множество операций по проверке и настройке реестра, которые могут потребоваться для правильной работы операционной системы.
 
Это ты ему подсунул код по фиксу записей из нашего с Drongo скрипта? )))
 
Да, описание попросил.
 
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.webp
 
Используй виртуальный номер.
 
@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$ за машину.
 
Последнее редактирование:
Нет, там
1677079513624.webp


 
О лимитах в chatgpt
Как я уже упоминал, мои лимиты зависят от доступных ресурсов и настроек, которые могут меняться со временем. Однако, в настоящее время мои лимиты включают:

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

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

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