"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Ingeniería rápida (para programadores perezosos): obtener exactamente el código que desea (y aún más, de ChatGPT)

Ingeniería rápida (para programadores perezosos): obtener exactamente el código que desea (y aún más, de ChatGPT)

Publicado el 2024-11-08
Navegar:941

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

Bill Gates lo ha dicho todo... ¡sé un programador vago!.

Como programador, no hay nada mejor que un código que funcione desde el principio: sin errores ni depuraciones interminables. Si sigue ciertas técnicas de indicaciones, puede lograr que ChatGPT escriba no solo código, sino código optimizado, completamente funcional y documentado, completo con casos extremos, pruebas e incluso optimizaciones de rendimiento.

Pero primero...

¿Qué es la ingeniería rápida?

La inteligencia artificial, en particular ChatGPT, se ha convertido en una poderosa herramienta para la creación de contenido, asistencia en codificación y respuesta a preguntas complejas. Sin embargo, muchas personas no aprovechan todo su potencial. La magia radica en cómo expresa sus solicitudes: lo que llamamos ingeniería rápida. En este artículo, exploraremos técnicas que pueden hacer que tu experiencia ChatGPT sea más fructífera, destacando algunos trucos que pueden hacer que tus indicaciones pasen de ser promedio a ser brillantes, como programador de software.

¿Por qué es importante la ingeniería rápida?

ChatGPT se entrena con grandes cantidades de datos, pero sus respuestas están determinadas por la calidad del mensaje que usted le brinda. Las indicaciones vagas o mal redactadas pueden dar lugar a respuestas irrelevantes o genéricas. Por el contrario, las indicaciones bien estructuradas pueden generar respuestas reflexivas, precisas y creativas.

Esta guía ayudará a los programadores perezosos (¿como yo?) a obtener código de alta calidad, optimizado e incluso más funcional de ChatGPT mediante ingeniería rápida. Estos harán exclusivamente que ChatGPT haga el trabajo pesado: automatizar la generación de código, mejorarlo e incluso sugerir optimizaciones y pruebas. A continuación, también incluí ejemplos que comparan las indicaciones normales con las optimizadas y los resultados que generan.

¡Así que comencemos!.

Activación de refinamientos automáticos para un mejor código

Pídale a ChatGPT que refine automáticamente sus respuestas incorporando activadores para detectar ineficiencias, sugerir optimizaciones o agregar funciones.

Mensaje básico: "Escribe una función de Python para invertir una cadena".

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

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

Mensaje optimizado: "Escribe una función de Python para invertir una cadena. Si la entrada es demasiado grande o ineficiente, sugiere una mejor manera de manejar cadenas grandes de manera eficiente".

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))
  • La función básica es simple y funciona para entradas pequeñas.

  • La versión optimizada presenta una solución eficiente basada en fragmentos para revertir cadenas grandes sin consumir demasiada memoria.

Memoria contextual para proyectos de varios pasos

Cuando necesitas código para proyectos de varios pasos, ChatGPT puede recordar los pasos anteriores. Esto es ideal para flujos de trabajo más complejos en los que se construye una capa encima de otra.

Mensaje básico: "Escribe una función de Python para crear un perfil de usuario".

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)

Mensaje optimizado: "Escribe una función de Python para crear un perfil de usuario. Ahora, amplía esto para almacenar también las preferencias del usuario y conectarlo con una base de datos para guardar los perfiles".

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)

  • La primera función del mensaje básico crea un perfil de usuario simple.

  • El segundo mensaje crea un administrador de perfiles de usuario conectado a una base de datos con funcionalidad extendida para guardar datos.

Solicitar modo de depuración para código sin errores

Puedes pedirle a ChatGPT que actúe como si se estuviera ejecutando en modo de depuración, donde verifica y corrige posibles problemas en el código antes de entregar el resultado final.

Ejemplo de mensaje simple: "Escribe una función de Python para calcular la raíz cuadrada de un número".

import math

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

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

El truco: "Escribe una función de Python para calcular la raíz cuadrada de un número. Activa el modo de depuración para comprobar si hay errores como entradas negativas y reescribe la función si es necesario".

import math

def square_root(n):
    if n 



  • La función básica funciona bien para entradas válidas pero falla con números negativos.

  • El mensaje optimizado garantiza el manejo de errores para entradas negativas, devolviendo un mensaje personalizado en lugar de descifrar el código.

Juego de roles: actuar como revisor de código

Puedes pedirle a ChatGPT que actúe como revisor de código senior para proporcionar comentarios y sugerir mejores prácticas para tu código.

Ejemplo de mensaje: "Actuar como desarrollador senior y revisar mi función de Python que verifica si un número es primo. Sugerir mejoras para el rendimiento y la legibilidad".

def is_prime(n):
    if n 



El mensaje ofrece una versión más optimizada, solo verifica los números impares hasta la raíz cuadrada, lo que mejora drásticamente el rendimiento.

Utilice indicaciones en capas para salidas multifunción

Puedes acumular capas de funcionalidad en un solo mensaje y pedirle a ChatGPT que maneje múltiples tareas relacionadas de una sola vez.

Mensaje básico: "Escribe una función de Python para generar una contraseña aleatoria".

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

Versión optimizada: "Escribe una función de Python para generar una contraseña aleatoria. La contraseña debe cumplir con los siguientes criterios: al menos 12 caracteres, contiene mayúsculas, minúsculas, números y caracteres especiales. Además, escribe una función de validación para comprobar si la contraseña es segura."

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) 



  • El mensaje básico genera una contraseña aleatoria.

  • El optimizado ofrece un generador de contraseñas complejo e incluye una función de validación para comprobar la seguridad de la contraseña.

Desarrollo basado en pruebas: genere un conjunto de pruebas completo

Puedes pedirle a ChatGPT que escriba el código junto con un conjunto de pruebas completo de una sola vez, asegurando que tu código esté listo para producción con el mínimo esfuerzo. (Si debes pedir ayuda, ¿asegúrate de pedir mucha?).

Mensaje básico: "Escribe una función de Python para comprobar si una cadena es un palíndromo".

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

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

Obteniendo más: "Escribe una función de Python para verificar si una cadena es un palíndromo. Además, escribe un conjunto de pruebas completo usando pytest con casos extremos como cadenas y espacios vacíos".

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
  • La versión básica busca palíndromos pero omite los casos extremos.

  • El truco oculto no solo refina la función al ignorar los espacios y la puntuación, sino que también proporciona un conjunto de pruebas completo utilizando pytest.

Al dominar estas técnicas, puedes extraer código de alto rendimiento, libre de errores y listo para producción de ChatGPT, todo mientras haces menos trabajo. Con refinamientos automáticos, activadores de memoria, manejo de errores y conjuntos de pruebas completos, codificará de manera más inteligente, no más difícil.

Declaración de liberación Este artículo se reproduce en: https://dev.to/jamesbright/prompt-engineering-for-lazy-programmers-getting-exactly-the-code-you-want-and-even-more-out-of-chatgpt- 3plf? 1Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3