«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Быстрое проектирование (для ленивых программистов): получение именно того кода, который вам нужен (и даже больше, из ChatGPT)

Быстрое проектирование (для ленивых программистов): получение именно того кода, который вам нужен (и даже больше, из ChatGPT)

Опубликовано 8 ноября 2024 г.
Просматривать:680

Prompt Engineering (For Lazy Programmers): Getting Exactly the Code You Want (and Even More, Out of ChatGPT)

Билл Гейтс все сказал... будь ленивым программистом!.

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

Но сначала...

Что такое оперативный инжиниринг?

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

Почему важно быстрое проектирование?

ChatGPT обучен работе с огромными объемами данных, но его ответы зависят от качества подсказки, которую вы ему даете. Плохо сформулированные или расплывчатые подсказки могут привести к неуместным или общим ответам. И наоборот, хорошо структурированные подсказки могут генерировать продуманные, точные и творческие ответы.

Это руководство поможет ленивым программистам (таким как я?) получить качественный, оптимизированный и еще более функциональный код из ChatGPT с помощью быстрого проектирования. Они будут заставлять ChatGPT выполнять тяжелую работу — автоматизировать генерацию кода, улучшать его и даже предлагать оптимизации и тесты. Ниже я также привел примеры, в которых сравниваются обычные и оптимизированные запросы, а также результаты, которые они генерируют.

Итак, давайте начнем!.

Запуск автоуточнений для улучшения кода

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

Основное приглашение: «Напишите функцию Python для обращения строки».

def reverse_string(s):
    return s[::-1]

# Example usage:
print(reverse_string("hello"))  # Output: "olleh"

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

def reverse_string(s):
    return s[::-1]

# Trigger: Refining for large strings
def reverse_large_string(s):
    # Handle large strings in chunks for efficiency
    chunk_size = 100000  # Process in 100k chunks
    return ''.join(s[i:i chunk_size][::-1] for i in range(0, len(s), chunk_size))

# Example usage:
large_string = "a" * 1000000  # 1 million characters
print(reverse_large_string(large_string))
  • Базовая функция проста и работает для небольших входных данных.

  • Оптимизированная версия представляет собой эффективное решение на основе фрагментов для обращения больших строк без потребления слишком большого количества памяти.

Контекстная память для многоэтапных проектов

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

Основное приглашение: «Напишите функцию Python для создания профиля пользователя».

def create_user_profile(name, age, email):
    return {"name": name, "age": age, "email": email}

# Example usage:
user_profile = create_user_profile("Alice", 30, "[email protected]")
print(user_profile)

Оптимизированная подсказка: «Напишите функцию Python для создания профиля пользователя. Теперь расширьте ее, чтобы она также сохраняла пользовательские настройки и подключила ее к базе данных для сохранения профилей».

def create_user_profile(name, age, email, preferences):
    return {"name": name, "age": age, "email": email, "preferences": preferences}

# Extend with a database connection
import sqlite3

def save_user_profile(profile):
    conn = sqlite3.connect('users.db')
    cursor = conn.cursor()
    cursor.execute('''CREATE TABLE IF NOT EXISTS users
                      (name TEXT, age INTEGER, email TEXT, preferences TEXT)''')
    cursor.execute('''INSERT INTO users (name, age, email, preferences)
                      VALUES (?, ?, ?, ?)''', 
                   (profile['name'], profile['age'], profile['email'], str(profile['preferences'])))
    conn.commit()
    conn.close()

# Example usage:
user_profile = create_user_profile("Alice", 30, "[email protected]", {"theme": "dark"})
save_user_profile(user_profile)

  • Первая функция основной строки создает простой профиль пользователя.

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

Запросить режим отладки для безошибочного кода

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

Пример простой подсказки: «Напишите функцию Python для вычисления квадратного корня числа».

import math

def square_root(n):
    return math.sqrt(n)

# Example usage:
print(square_root(16))  # Output: 4.0

Хитрость: «Напишите функцию Python для вычисления квадратного корня числа. Активируйте режим отладки, чтобы проверить наличие ошибок, таких как отрицательные входные данные, и перепишите функцию, если необходимо».

import math

def square_root(n):
    if n 



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

  • Оптимизированное приглашение обеспечивает обработку ошибок для отрицательных входных данных, возвращая специальное сообщение вместо нарушения кода.

Ролевая игра: выступайте в роли рецензента кода

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

Пример приглашения: «Действуйте как старший разработчик и просмотрите мою функцию Python, которая проверяет, является ли число простым. Предложите улучшения для производительности и читабельности».

def is_prime(n):
    if n 



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

Используйте многоуровневые подсказки для многофункциональных выходов

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

Основная подсказка: «Напишите функцию Python для генерации случайного пароля».

import random
import string

def generate_password(length):
    return ''.join(random.choices(string.ascii_letters   string.digits, k=length))

# Example usage:
print(generate_password(10))  # Output: Random 10-character password

Оптимизированная версия: «Напишите функцию Python для генерации случайного пароля. Пароль должен соответствовать следующим критериям: не менее 12 символов, содержать прописные и строчные буквы, цифры и специальные символы. Также напишите функция проверки, проверяющая надежность пароля."

import random
import string
import re

def generate_password(length):
    characters = string.ascii_letters   string.digits   string.punctuation
    password = ''.join(random.choices(characters, k=length))
    return password

def validate_password(password):
    # Check length
    if len(password) 



  • Базовое приглашение генерирует случайный пароль.

  • Оптимизированная версия содержит сложный генератор паролей и включает функцию проверки надежности пароля.

Разработка через тестирование: создание полного набора тестов

Вы можете попросить ChatGPT написать код вместе с полным набором тестов за один раз, чтобы ваш код был готов к работе с минимальными усилиями. (Если вам необходимо попросить о помощи, обязательно просите много?).

Основная подсказка: «Напишите функцию Python, проверяющую, является ли строка палиндромом».

def is_palindrome(s):
    return s == s[::-1]

# Example usage:
print(is_palindrome("madam"))  # Output: True
print(is_palindrome("hello"))  # Output: False

Дополнительно: «Напишите функцию Python, чтобы проверять, является ли строка палиндромом. Кроме того, напишите полный набор тестов, используя pytest, с пограничными случаями, такими как пустые строки и пробелы».

def is_palindrome(s):
    s = ''.join(c.lower() for c in s if c.isalnum())  # Remove non-alphanumeric characters
    return s == s[::-1]

# Test suite
def test_is_palindrome():
    assert is_palindrome("madam") == True
    assert is_palindrome("hello") == False
    assert is_palindrome("A man, a plan, a canal, Panama") == True
    assert is_palindrome("") == True  # Edge case: empty string
    assert is_palindrome(" ") == True  # Edge case: only spaces

# Example usage:
print(is_palindrome("A man, a plan, a canal, Panama"))  # Output: True
  • Базовая версия проверяет палиндромы, но пропускает крайние случаи.

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

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

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/jamesbright/prompt-engineering-for-lazy-programmers-getting-exactly-the-code-you-want-and-even-more-out-of-chatgpt- 3plf? 1Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3