и развлечение для всей семьи!

Поскольку я пропустил нынешний золотой век использования ChatGPT для выполнения скучных домашних заданий в старшей школе более чем на десять лет, я пытался заставить его выполнять свою повседневную работу. Как бы то ни было… Я, конечно, шучу насчет списывания в школе (я не предлагаю и не оправдываю это), но когда дело доходит до работы, речь идет не о том, чтобы делать меньше, а о том, чтобы делать намного больше и получать от этого удовольствие! Один из самых интересных аспектов, которые я обнаружил до сих пор, — это то, как это можно интегрировать в рабочий процесс программирования, и насколько это может быть полезно с некоторыми сложными аспектами СДВГ. В этой статье мы обсудим эту технологию и предоставим некоторые, надеюсь, поучительные и полезные методы, которые я считаю особенно полезными не только для увеличения моей производительности, но и для сохранения заинтересованности и вдохновения. Вот некоторые из стратегий на основе ChatGPT, которые я начал разрабатывать, чтобы улучшить свой рабочий процесс и превратить мой СДВГ из контрольно-пропускного пункта в бонус.
Возможно, на этом этапе стоит остановиться и напомнить себе, что никакие сообщения или коды ChatGPT (или любой другой модели) не могут быть гарантированно правильными или безопасными.* Всегда внимательно читайте и тестируйте код.

1. Преодоление исполнительной дисфункции

В то время как каждый может страдать от этого в той или иной степени, исполнительная дисфункция может быть исключительно изнурительной для людей с СДВГ. Вероятно, для каждого из нас это разный опыт, но его часто описывают как неспособность приступить к делу или чувство полной ошеломленности при мысли о том, чтобы начать даже простые вещи. Начало работы над проектом кодирования может потребовать больших усилий, и ChatGPT может снизить этот порог. Несмотря на то, что я люблю писать код, бывает очень сложно записать первые несколько строк; Однако, как только я уйду, у меня есть приличный шанс попасть в ситуацию потока (или гиперфокуса), и дополнительная «удача» от начала с ChatGPT может иметь значение. Использование кода из ChatGPT по-прежнему требует много времени и усилий для понимания, тестирования и отладки, но это помогает мне преодолеть пропасть, образовавшуюся из-за исполнительной дисфункции.

Итак, с чегоначать работу?
Хитрость заключается в том, чтобы почувствовать масштаб и тип задачи, с которой ChatGPT может быть наиболее полезен. Мне в любом случае полезно написать пару предложений, описывающих мою задачу по программированию, и это может быть идеальной отправной точкой для ChatGPT. (Если вам нужен целый проектный документ, чтобы сформулировать ваш проект, то его следует разбить на более мелкие задачи — еще одна стратегия, которая может помочь как в проектировании в целом, так и при СДВГ). Эффективное общение с моделями GPT — это скорее искусство, чем наука, поэтому к этому нужно привыкнуть. В то время как ChatGPT, кажется, хорошо справляется со сложными подсказками для кода, длинные и сложные фрагменты вывода могут быть довольно сложными для отладки и с самого начала влекут за собой большой технический долг. Это одна из ловушек при создании кода таким образом: если вы не ознакомитесь с ним в процессе написания, непрозрачность может действительно отнять время во время тестирования и отладки. Как и при написании кода вручную, лучше сначала сгенерировать небольшое количество кода и подвергнуть его некоторым тестам. ChatGPT может «запоминать» то, что вы сказали во время чата, поэтому легко продолжать добавлять и настраивать свой код. Давайте рассмотрим пример, основанный на нескольких недавних проектах, которые у меня были на работе. Мне часто приходится создавать простые серверы для прототипирования конвейеров данных, поэтому в качестве примера я здесь использовал вопрос: «Можете ли вы написать код Python для готового к работе REST API, который запрашивает базу данных Mongo со строкой из POST-запроса?» и вот что мы получаем:

from flask import Flask, request, jsonify
from pymongo import MongoClient

app = Flask(__name__)

# Connect to MongoDB
client = MongoClient(“mongodb://localhost:27017/”)
db = client[“mydatabase”]
collection = db[“mycollection”]

@app.route(“/query”, methods=[“POST”])
def query_database():
  data = request.get_json()
  query_string = data[“query_string”]

  # Query the MongoDB database
  results = collection.find({“field”: {“$regex”: query_string}})

  # Convert results to a list
  output = []
  for result in results:
    output.append({“field”: result[“field”], “value”: result[“value”]})
  
  return jsonify({“results”: output})

if __name__ == “__main__”:
 app.run(debug=True)

Хорошо, не плохо. Довольно легко начать заполнять некоторые пробелы. Но есть и потенциально серьезная проблема. Вы можете видеть, что в этом ответе используется среда Flask, популярный и замечательный сервер разработки для Python… но не готовый к работе вариант. Итак, давайте запросим перезапись с помощью FastAPI, спросив Хорошо, вы можете переписать это с помощью FastAPI?
И мы получим:

from fastapi import FastAPI, HTTPException
from pymongo import MongoClient

app = FastAPI()

# Connect to MongoDB
client = MongoClient(“mongodb://localhost:27017/”)
db = client[“mydatabase”]
collection = db[“mycollection”]

@app.post(“/query”)

async def query_database(query_string: str):

 # Query the MongoDB database
 results = collection.find({“field”: {“$regex”: query_string}})

 # Check if no results found
 if results.count() == 0:
   raise HTTPException(status_code=404, detail=”No matching records found”)

 # Convert results to a list
 output = []
 for result in results:
   output.append({“field”: result[“field”], “value”: result[“value”]})

return {“results”: output}

Прохладный! Предстоит много модификаций и тестов, но для меня этот рывок может иметь большое значение для вовлеченности и моей последующей продуктивности. Кроме того, мы можем поддерживать чат, пока тестируем код, и просто вставлять загадочные исключения или ошибки непосредственно в качестве подсказки, что мы обсудим подробнее в следующем разделе.
Совет DevOps. Вы можете задать такие вопросы, как «Можете ли вы написать файл dockerfile, чтобы настроить среду контейнера для этого сервера» или «Какие параметры необходимы в файле конфигурации myNGINX, чтобы настроить его в качестве шлюза API». ", или "Можете ли вы добавить возможность кэширования Redis в этот API и обновить файл dockerfile, включив в него эти зависимости"

2. «Робот» — отладка утки

Если вы писали код вместе с другими, у вас, вероятно, был опыт обращения к другу или коллеге, чтобы задать вопрос, и вы поняли, что нашли ответ, просто объяснив им вопрос. Этот феномен поиска решения проблемы кодирования путем перефразирования проблемы на естественном языке часто называют отладкой резиновой утки. Лично мне трудно вступать в разговор с неодушевленными предметами, но обсуждение проблем с другими было для меня огромным подспорьем в том, чтобы не отвлекаться от задачи. ChatGPT, конечно, не может обеспечить какое-либо реальное социальное взаимодействие (не дайте себя одурачить!), происходящее от общения с другим человеком лично или через текст, но он может предоставить полезный интерактивный способ вовлечь другие части вашего мозга в попытку. чтобы объяснить вашу проблему. Я обнаружил, что обсуждение моего кода или работа над проблемами с коллегами или руководителями улучшают мою концентрацию и сосредоточенность примерно на 1000%. Я не думаю, что смог бы пройти какой-либо из моих курсов CompSci, если бы постоянно не приставал к группе замечательных ассистентов и не работал в тесном сотрудничестве с другими студентами над парными проектами. Однако может быть труднее попросить о помощи на рабочем месте — может быть, есть синдром самозванца (очень распространенный среди нейроотличных людей), может быть, ваши коллеги слишком заняты своей работой, может быть, вам просто сложнее вовлечься, если вы полностью удалены. ChatGPT может использоваться как своего рода ресурс для первого шага, например интерактивный StackOverflow, который можно адаптировать к вашему конкретному сценарию.

Как упоминалось ранее, ошибки, выводимые компилятором или средой выполнения, сами по себе могут быть довольно хорошими подсказками. Однако чем больше контекста вы можете дать ChatGPT, тем больше у вас шансов получить релевантный и полезный ответ. Попробуйте что-то вроде «Можете ли вы помочь мне отладить эту ошибку из моего приложения React» или «Как я могу решить эту ошибку с моего сервера Golang, работающего на Ubuntu 18», а затем вставьте несколько наиболее важных строк вывода ошибки. Если вы точно знаете, какие строки кода вызывают ошибку (возможно, надоедливое регулярное выражение), вы также можете вставить их напрямую (нет, вы не можете вставить весь код вашего приложения или трассировку стека из восьми миллиардов строк; как на момент написания этой статьи текущее ограничение составляет 4096 символов для быстрого ввода, хотя, возможно, это изменится в будущем…)

3. Уменьшение информационной перегрузки

Хотя ChatGPT еще не имеет полной возможности чтения мыслей, он может помочь вам получить больше того, что вы хотите, и меньше того, чего вы не хотите. Это удобно для того, чтобы сократить огромное количество информации, доступной в Интернете, и избежать кроличьих нор, старого врага СДВГ. Предположим, вы пытаетесь узнать об обработке естественного языка (NLP) и хотите создать прототип API, который можно использовать для анализа тональности новостных статей о вашей компании. Если вы гуглите «NLP API», чтобы начать работу, у вас, вероятно, есть несколько часов (если не дней), которые стоит прочитать, прежде чем вы найдете правильное решение, и может быть довольно сложно понять, с чего начать ( исполнительная функция RIP).
Вместо того, чтобы пролистывать миллион платных статей в блоге под названием «7 лучших моделей НЛП для маркетинга», давайте попросим ChatGPT отфильтровать часть этой информации и помочь нам найти продуктивную отправную точку. Может быть, нам нужно, чтобы это было что-то, что мы можем интегрировать в инфраструктуру Ruby-on-Rails нашей компании, и было бы здорово, если бы это было с открытым исходным кодом… поэтому подсказка может выглядеть так: «Каковы лучшие модели НЛП с открытым исходным кодом для настроений?» анализ, который можно интегрировать с Ruby-on-Rails?»

Я воздержусь от вставки полного вывода (попробуйте сами!), но я получил 5 предложений библиотек НЛП с обсуждением особенностей каждого и кратким абзацем, в котором обсуждаются плюсы и минусы вариантов в отношении интеграции с Rails. Вставив это точно такое же приглашение в Google, мы получим сначала рекламу службы, которая поможет вам научиться использовать ChatGPT (смеется), затем еще одну рекламу другой платной службы интеграции ИИ, а затем ссылки на некоторые, возможно, релевантные, но кликбейтные, и -расплывчатые статьи в блогах и репозиторий Github для библиотеки НЛП на Ruby, которая не обновлялась годами.
Например, большинству программистов знакома боль при чтении страниц ответов StackOverflow только для того, чтобы обнаружить, что единственное функциональное решение, запрятавшее шесть ответов глубоко в ответ на вопрос 2009 года, больше не работает в самых последних обновлениях их среды. ChatGPT не следует считать более надежным, чем пользователи StackOverflow (возможно, гораздо менее, будьте осторожны), но он может помочь вам не тратить время на чтение ответов, которые просто оказываются неактуальными.

От блокпоста к усилению

Хорошо, я не готов на 100% поддержать утверждение, что такого рода инструменты языковой модели сделают нейродивергенцию сверхсилой (если только). Я очень сомневаюсь, что какая-либо технология «ИИ» приблизится к панацее от любого набора личных проблем, но я надеюсь, что они могут помочь укрепить слабые стороны и, возможно, что более важно, подчеркнуть и усилить сильные стороны. Эта статья на самом деле не затрагивала эти способы использования ChatGPT, поскольку потребность в усилении сильных сторон кажется менее острой, чем преодоление барьеров. Но возможности точно есть. Пожалуй тема для отдельной статьи!

*Добавлено: попробуйте плагин Github Copilot для IDE! Это не бесплатно, но если вы пишете много кода, оно того стоит. Это, вероятно, удвоило мой вывод и сделало мой код намного чище и организованнее, что затем еще больше увеличивает мой вывод и сокращает время, затрачиваемое на отладку. Как и другие инструменты, это не заменит доскональное знание того, что вы пытаетесь написать, но это абсолютный турбокомпрессор, который помогает вам оставаться в зоне потока. Так весело!

Я уверен, что стратегии, которые я описал здесь, — это только начало, поскольку все мы учимся использовать эти новые технологии для ускорения разработки и борьбы с огромными объемами данных. Если вы нашли другие способы использования ChatGPT для улучшения нейроотличного рабочего процесса, не стесняйтесь делиться ими и комментировать ниже! Работать в другой сфере? Как это помогает вам?

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

*Тестовые тесты OpenAI показывают фактическую точность ответов ChatGPT на уровне 60–70 %, а технический отчет GPT-4 (предупреждение — большой PDF-файл) описывает, как он галлюцинирует факты и делает ошибки в рассуждениях. Хотя это, возможно, лучше, чем ваш надоедливый коллега, это все же довольно ненадежно. Кроме того, нет никаких гарантий, что он следует лучшим практикам (или любым другим практикам), когда речь идет о кибербезопасности или эффективности, когда вы используете его для написания кода.