Книга: ChatGPT для саморазвития: Освоения программирования, консалтинга и изучения иностранных языков
Назад: Шаг 4 Построение модели машинного обучения
Дальше: Сравнение версий

Дополнительные рекомендации

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

Задавайте вопросы о синтаксисе и основах Python:

Пример: "How do I create a list in Python?"

Получайте информацию о лучших практиках программирования на Python:

Пример: "What are some best practices for writing clean and efficient Python code?"

Запрос на объяснение определенных функций или библиотек для анализа данных:

Пример: "Can you explain how to use the Pandas library for data manipulation?"

Просьба о рекомендациях по оптимизации процессов анализа данных:

Пример: "How can I improve the performance of my data processing pipeline in Python?"

Запрос на решение распространенных проблем и ошибок:

Пример: "I'm having trouble with a ValueError in my Python code while using the NumPy library. Can you help me troubleshoot this issue?"

Получение информации об интеграции Python с другими системами или инструментами анализа данных:

Пример: "How can I use Python to interact with an SQL database?"

Запрос на обучающие материалы и ресурсы:

Пример: "Can you recommend any online resources or tutorials for learning data analysis with Python?"

Получение советов по использованию статистических методов и машинного обучения с Python: Пример: "How can I use the Scikit-learn library for creating a linear regression model in Python?"

Задавайте вопросы о визуализации данных с использованием Python:

Пример: "How can I create a bar chart using the Matplotlib library in Python?"

Получение информации о работе с большими наборами данных и параллельных вычислениях: Пример: "How can I use the Dask library in Python to process large datasets more efficiently?"

Общение с ChatGPT поможет вам получить информацию и советы, которые могут повыситить вашу производительность.

Внимание:

Хотя чат-бот может понимать и отвечать на русском языке, иногда лучше формулировать вопросы на английском языке. Это не только улучшает качество ответов, но и повышает эффективность работы чат-бота. Мы можем сформулировать вопрос на русском языке, перевести его на английский с помощью Яндекс.Переводчика, задать его чат-боту, получить ответ и затем, при необходимости, перевести его обратно на русский язык. Что касается консультаций по коду, который уже написан на английском языке, здесь нет необходимости в обратном переводе.

Изучаем

ABAP

– с

ChatGTP

На данном этапе мы предоставим чату описательную часть спецификации на разработку отчета по МВЗ и Заказам, а чат создаст ABAP-код, который мы будем параллельно тестировать в системе SAP. В случае возникновения ошибок мы будем уведомлять чат об их наличии для их последующего исправления. Это позволит нам симулировать работу консультанта SAP и разработчика. Консультант будет предоставлять инструкции, а разработчик будет писать код и отправлять его на тестирование. В конце мы посмотрим, как чат справляется с анализом дампов, какие рекомендации он дает, как он анализирует чужой код и предоставляет подробные комментарии его предназначения, а также как он выполняет оптимизацию кода для работы с большим объемом данных.

Реализация отчета на

ABAP

Пользователь:

Дано следующие таблицы COVP-OBJNR = AUFK-OBJNR Covp-KOKRS=aufk-KOKRS COVP-OBJNR = CSKS-OBJNR COVP-KOKRS = CSKS-KOKRS COBK-KOKRS = COVP-KOKRS COBK-BELNR = COVP-BELNR COBK-GJAHR = COVP-GJAHR На селекционный экран выведи следующие переменные с возможностью выбора диапазона значений KOKRS AUFNR AUART KOSTL PERIO GJAHR Отчет представить в формате Alv gride. Код оптимизируй под SAP ERP NETWEAVER 7.4

Чат:

Для выполнения этого задания сначала создадим выборочный экран (selection screen) с указанными параметрами. Затем используем JOIN для объединения таблиц COVP, AUFK и CSKS, а затем используем функциональный модуль для вывода ALV Grid. Вот пример кода в ABAP:









Создайте структуру zyour_output_structure в Data Dictionary (SE11) со следующими полями:

AUFNR (type AUFK-AUFNR)

AUART (type AUFK-AUART)

KOSTL (type CSKS-KOSTL)

KOKRS (type COVP-KOKRS)

PERIO (type COVP-PERIO)

GJAHR (type COVP-GJAHR)

Эта структура будет использоваться для хранения результатов выборки и отображения их в ALV Grid.

Замените 'zyour_output_structure' на имя вашей структуры в коде выше.

Теперь у вас есть полный код ABAP-отчёта, который выполняет выборку данных с использованием указанных параметров и отображает результаты в ALV Grid.

Обратите внимание, что возможны некоторые синтаксические ошибки из-за различий в версии вашей системы SAP ERP и используемом языке программирования ABAP. Если вы столкнетесь с проблемами при компиляции, попробуйте адаптировать код с учетом конкретных особенностей вашей системы.

Чтобы создать структуру zyour_output_structure в Data Dictionary (SE11), выполните следующие шаги:

Войдите в SAP GUI и введите транзакцию SE11 (Data Dictionary).

Выберите радиокнопку "Data type" и введите имя структуры, которую хотите создать, например, zyour_output_structure, в поле "Object Name". Нажмите кнопку "Create".

Введите краткое описание структуры в поле "Short description".

В разделе "Fields" введите имена и типы полей для структуры:

AUFNR (type AUFK-AUFNR)

AUART (type AUFK-AUART)

KOSTL (type CSKS-KOSTL)

KOKRS (type COVP-KOKRS)

PERIO (type COVP-PERIO)

GJAHR (type COVP-GJAHR)

Введите имя поля в столбце "Component" и тип данных в столбце "Data type". Значения в столбце "Data type" должны соответствовать типам полей, указанным выше.

После добавления всех полей нажмите кнопку "Save" (Сохранить) для сохранения структуры.

Введите пакет (например, $TMP для локального объекта) и нажмите Enter. В появившемся диалоговом окне подтвердите сохранение структуры в выбранный пакет.

Нажмите кнопку "Activate" (Активировать) для активации структуры. Если активация прошла успешно, вы увидите сообщение "Object activated" в статусной строке.

Теперь у вас есть структура zyour_output_structure в вашей системе SAP. Вы можете использовать её для хранения и отображения результатов выборки в вашем ABAP-отчете. Не забудьте заменить 'zyour_output_structure' на имя вашей структуры в коде, который был предоставлен ранее.

Обратите внимание, что название структуры начинается с буквы 'z', чтобы указать, что это пользовательский объект. В реальных проектах рекомендуется выбирать более осмысленные имена, чтобы легче было понять их назначение.

Внимание:

Как мы уже заметили, чат не только предоставил нам код, но также подробно объяснил, как создать структуру в словаре ABAP пошагово.

Мы можем использовать эту информацию в будущем, чтобы узнать, как создать что-то или где разместить наш код, как запустить и протестировать его.

Результат:

Выполняем все рекомендации Чата и посмотрим смотрим что из этого получилось.







Итого:

При создании и активации структуры – синтактических ошибок обнаружено не было.







При проверке предоставленного кода в среде разработки SAP были выявлены синтаксические ошибки, следовательно идем и указываем на это чату выполняя Ctrl+C(скопировать) – Ctrl+V(вставить) в част ошибку

Пользователь:

При проверке синсаксиса в SAP возникла ошибка После "COVP-KOKRS" ожидалось "."

Чат:

Извините за ошибку в коде. Я дам исправленную версию кода с использованием внутренних таблиц для объявления параметров. Это устранит ошибку синтаксиса.















Теперь код исправлен и синтаксические ошибки устранены. Я заменил объявления параметров на внутренние таблицы с использованием SELECT-OPTIONS. В результате код будет работать корректно в вашей системе SAP. Выполните проверку синтаксиса, и код должен быть успешно проверен без ошибок.

Результат:

Выполняем все рекомендации Чата и посмотрим смотрим что из этого получилось.







Итого:

Новая синтаксическая ошибка, которую мы также отправляем в чат для устранения

Пользователь:





Опять ошибка Неизвестное поле "GS_LAYOUT". Оно не содержится ни в одной из указанных таблиц, не определено через оператор "DATA"

Чат:

Извините за упущение.

Вам нужно объявить переменную gs_layout с типом slis_layout_alv для хранения настроек макета ALV Grid.

Вот исправленный код:











код исправлен, и переменная gs_layout была объявлена с типом slis_layout_alv. Выполните проверку синтаксиса, и код должен быть успешно проверен без ошибок. Теперь этот код должен работать корректно в вашей системе SAP. Когда вы запустите отчет, параметры выбора будут отображаться на селекционном экране, а результаты выборки будут показаны в ALV Grid.

Если вы хотите настроить макет ALV Grid, вы можете изменить значения полей структуры gs_layout. Например, вы можете изменить режим отображения колонок или включить/отключить функциональные кнопки, добавив соответствующий код перед вызовом функции 'REUSE_ALV_GRID_DISPLAY'.

Результат:

Выполняем все рекомендации Чата и посмотрим смотрим что из этого получилось.







Итого:

Синтаксических ошибок не обнаружено, можно переходить к пользовательскому тестированию отчета

Результат:

Выполняем пользовательское тестирование и смотрим что из этого получилось.

Запустили отчет







Переходим к следующему шагу – запуску отчета. Не забываем заполнить данные на селекционном экране произвольными значениями, чтобы ограничить выборку. Дампы и ошибки не появились на предыдущем этапе.







Итого:

Возникла ошибка, информацию по ошибке мы отправляем в чат для анализа и исправления.

Пользователь:

При запуске отчета возникает ошибка – Невозможно определить каталог полей. № сообщения 0K530 Diagnosis The field catalog cannot be determined because the output table structure name was not specified

Чат:

Извините за проблему. Ошибка возникает из-за того, что параметр i_internal_tabname неправильно указан в функции 'REUSE_ALV_FIELDCATALOG_MERGE'. Чтобы исправить ошибку, измените значение параметра i_internal_tabname на 'LT_OUTPUT', который является именем внутренней таблицы с результатами выборки. Вот исправленный код:







Теперь ваш отчет должен работать без ошибок. Замените вызов функции 'REUSE_ALV_FIELDCATALOG_MERGE' в вашем коде на исправленный вызов, и отчет должен корректно отображать результаты выборки в ALV Grid.

Результат:

Выполняем все рекомендации Чата и посмотрим смотрим что из этого получилось.







Итого:

Ошибок не обнаружено, активируем программу и идем повторно тестировать.

Результат:

Выполняем пользовательское тестирование и смотрим что из этого получилось.





Пользователь







Итого:

Опять ошибка, о которой мы как и в прошлый раз оповещаем чат

Пользователь:

Ошибку не исправили таже ошибка – Невозможно определить каталог полей. № сообщения 0K530 Diagnosis The field catalog cannot be determined because the output table structure name was not specified.

Чат:

Извините за ошибку. Давайте попробуем использовать структуру zyour_output_structure для параметра i_structure_name в функции 'REUSE_ALV_FIELDCATALOG_MERGE'. Вот исправленный вызов функции:







Замените вызов функции 'REUSE_ALV_FIELDCATALOG_MERGE' в вашем коде на исправленный вызов и проверьте, устранена ли ошибка. Теперь отчет должен корректно отображать результаты выборки в ALV Grid без ошибок.

Результат:

Выполняем все рекомендации Чата и посмотрим смотрим что из этого получилось.







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

Результат:

Выполняем пользовательское тестирование и смотрим что из этого получилось.

Запускаем отчет и заполняем данные селекционного экрана







Нажимаем кнопку выполнить







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

Пользователь:

Все запустилось, но выводится пустой отчет хотя данные в системе есть.

Чат:

Если результат отчета пустой, несмотря на наличие данных в системе, это может быть связано с некорректными условиями выбора или с тем, что данные не соответствуют указанным условиям. Чтобы убедиться, что запрос выбирает данные, давайте проверим его с использованием транзакции SE16N или SE16 для просмотра содержимого таблиц.

Запустите транзакцию SE16N (или SE16) и откройте таблицу COVP.

Введите условия выбора, аналогичные тем, что вы использовали в отчете, и проверьте, есть ли записи, соответствующие этим условиям.

Повторите этот процесс для таблиц AUFK, CSKS и COBK.

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

Итого:

При написании кода на ABAP, мы можем заметить, что чат иногда допускает ошибки. Это еще раз подчеркивает важность тестирования и проверки всего кода. Более качественный код на ABAP чат пишет только в версии 4.0 , в отличие от версии 3.5, которая имеет больше ошибок и более простой код.

Как можно дополнительно улучшить качество ответов чата?

Когда мы просим чат написать нам код ABAP, он выполняет задание, но не всегда с высоким качеством. Однако, если мы предоставим чату более конкретные инструкции, то он сможет выполнить задание более профессионально.

Например, если мы сообщим чату- Вы эксперт по чистому коду, у меня есть следующий код, пожалуйста, переработайте его более чистым и кратким способом, чтобы моим коллегам было легче поддерживать код. Кроме того, объясните, почему вы хотите провести рефакторинг кода, чтобы я мог добавить объяснение к запросу на извлечение. [прикрепить код] .

Стоит помнить, что нейросеть – это всё ещё машина, и она плохо понимает общие запросы.

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

Примеры таких промтов можно найти в разделе данной книги – Секреты и рекомендации.

Внимание:

На конец марта 2023г версия чата 4.0 доступна только в платной версии, стоимость которой составляет 20 долларов в месяц, при ограничении в 25 запросов в час.

Назад: Шаг 4 Построение модели машинного обучения
Дальше: Сравнение версий