Instrucciones del sistema

En este documento, se describen las instrucciones del sistema y las prácticas recomendadas para escribir instrucciones del sistema eficaces. Para aprender cómo agregar instrucciones del sistema a sus indicaciones, consulte Utilice las instrucciones del sistema en su lugar.

Las instrucciones del sistema son un conjunto de instrucciones que el modelo procesa antes de procesar las instrucciones. Te recomendamos que uses instrucciones del sistema para indicarle al modelo cómo quieres que se comporte y responda a las instrucciones. Por ejemplo, puedes incluir elementos como una persona a la que imitar, información contextual e instrucciones de formato.

Las instrucciones del sistema son especialmente útiles en los casos en los que deseas proporcionarle al modelo información que un usuario final no puede ver ni cambiar, lo que puede ayudarte a darle al modelo contexto adicional para comprender la tarea, proporcionar respuestas más personalizadas y cumplir con lineamientos específicos sobre la interacción completa del usuario con el modelo. Además, las instrucciones del sistema son beneficiosas cuando deseas ejecutar varias instrucciones con el mismo conjunto de instrucciones.

Cuando se establecen instrucciones del sistema, se aplican a toda la solicitud. Las instrucciones del sistema funcionan en varios turnos de usuarios y del modelo cuando se incluyen en la instrucción. Aunque las instrucciones del sistema son independientes del contenido de la instrucción, siguen siendo parte de las instrucciones generales y, por lo tanto, están sujetas a las políticas de uso de datos estándar.

Casos de uso

En general, recomendamos utilizar las instrucciones del sistema para realizar una o más de las siguientes acciones:

  • Define un arquetipo o un rol
  • Define el formato de salida
  • Define el estilo y el tono de salida
  • Define objetivos o reglas para la tarea
  • Proporciona contexto adicional para la instrucción

Arquetipo o rol

Puedes influir en la forma en que un modelo responde a las instrucciones definiendo un arquetipo o un rol en las instrucciones del sistema.

Por ejemplo, supongamos que quieres utilizar un modelo para ayudar a enseñar a los estudiantes a escribir trabajos académicos. Compare la diferencia en las respuestas del modelo cuando defina los siguientes roles:

  • Eres un bot, encargado de enseñar a estudiantes universitarios cómo escribir un trabajo sobre un tema determinado.
  • Eres un bot, cuya tarea es ayudar a los estudiantes de primaria a escribir un trabajo sobre un tema determinado.
Instrucciones del sistema Bot para estudiantes universitarios Bot para estudiantes de primaria
Eres un bot cuya tarea es enseñar a estudiantes universitarios a escribir un trabajo sobre un tema determinado. Eres un bot, encargado de ayudar a los estudiantes de primaria sobre cómo escribir un trabajo sobre un tema determinado.
Instrucción Tema: Fotosíntesis Tema: Fotosíntesis
Respuesta

Cómo escribir un trabajo sobre la fotosíntesis: una guía para estudiantes universitarios

La fotosíntesis es un proceso fascinante y complejo que constituye la base de la vida en la Tierra. Escribir un trabajo sobre el tema puede ser una experiencia gratificante, ya que te permite profundizar en sus complejidades y comprender su importancia. Aquí tienes un desglose de cómo abordar esta tarea:

  1. Cómo elegir un enfoque:
    • Descripción general: Podrías proporcionar una descripción general completa de la fotosíntesis, que abarque sus etapas, requisitos, subproductos y su función en el ecosistema.
    • Aspecto específico: Elige un aspecto específico de la fotosíntesis para explorar en detalle, como los siguientes:
      • El papel de la luz en la fotosíntesis.
      • Los diferentes tipos de fotosíntesis (C3, C4 y CAM)
      • El impacto de los factores ambientales en la fotosíntesis.
      • La evolución de la fotosíntesis
      • Las aplicaciones de la fotosíntesis en la biotecnología
    • Estudio comparativo: Comparar y contrastar diferentes aspectos de la fotosíntesis en diferentes organismos (plantas, algas, bacterias).
  2. Investigación y recopilación de información:
    • Fuentes confiables: Usa revistas académicas, fuentes en línea confiables y libros de texto. Evita depender únicamente de Wikipedia o de sitios web generales.
    • Búsqueda por palabras clave: utilice palabras clave como "fotosíntesis", "cloroplastos", "clorofila", "reacciones dependientes de la luz", "ciclo de Calvin", etc.
    • Toma notas: Organiza tu investigación tomando notas detalladas y resumiendo los puntos clave. Asegúrate de citar las fuentes correctamente.
  3. Cómo estructurar tu trabajo:
    • Introducción:
      • Presenta brevemente la fotosíntesis y su importancia.
      • Indica tu tesis, en la que se describa claramente el argumento principal de tu trabajo.
    • Párrafos del cuerpo:
      • Desarrolla tus puntos en una secuencia lógica y usa evidencia de tu investigación.
      • Usa encabezados y subtítulos para organizar tu trabajo y facilitar su lectura.
      • Cada párrafo debe enfocarse en una sola idea y proporcionar evidencia de respaldo.
    • Conclusión:
      • Resume tus puntos principales y reafirma tu tesis.
      • Analiza las implicaciones de tus hallazgos y sugiere direcciones para futuras investigaciones.
  4. Redacción y edición:
    • Lenguaje claro y conciso: Usa un lenguaje claro y conciso, y evita la jerga, a menos que sea necesario.
    • Argumentos basados en evidencia: Respalda tus afirmaciones con evidencia de tu investigación.
    • Cita adecuada: Usa un estilo de cita coherente (MLA, APA, Chicago) en todo el documento.
    • Revisión y edición: Revisa y edita cuidadosamente tu trabajo para detectar errores gramaticales, ortográficos y de puntuación.
  5. Sugerencias adicionales:
    • Ayudas visuales: Usa diagramas, gráficos o tablas para ilustrar conceptos complejos.
    • Estudios de caso: Si procede, incluya estudios de caso relevantes para demostrar las aplicaciones prácticas de la fotosíntesis.
    • Conexión personal: Busca una forma de conectar tu tema con tus propios intereses o experiencias.

Ejemplos de títulos de documentos:

  • El papel de la intensidad de la luz en la fotosíntesis: un estudio comparativo.
  • La evolución de la fotosíntesis: desde la vida primitiva hasta las plantas modernas
  • Aprovechamiento de la fotosíntesis: el potencial de la biotecnología
  • El impacto del cambio climático en la fotosíntesis: una perspectiva global

Recuerda que un trabajo bien escrito sobre la fotosíntesis debe ser claro, informativo y atractivo. Si sigues estos pasos y utilizas una base sólida de investigación, podrás producir un trabajo exitoso que demuestre tu comprensión de este proceso biológico esencial.

¡Ese es un tema estupendo! La fotosíntesis es muy importante para la vida en la Tierra. Aquí te indicamos cómo puedes escribir un trabajo sobre el tema:

  1. Piensa en lo que ya sabes:
    • ¿Qué es la fotosíntesis?
    • ¿Qué necesita una planta para realizar la fotosíntesis?
    • ¿Qué produce una planta durante la fotosíntesis?
    • ¿Conoces algún dato interesante sobre la fotosíntesis?
  2. Investiga y aprende más:
    • Libros: Consulta en tu biblioteca si hay libros sobre plantas, naturaleza o ciencia.
    • Sitios web: Busca sitios web para niños que expliquen la fotosíntesis de forma sencilla. Asegúrate de que los sitios web sean fiables (como los de National Geographic o la NASA).
    • Pídele ayuda a un adulto: Pídele a tu profesor, madre, padre o bibliotecario que te ayude a encontrar información.
  3. Organiza tus ideas:
    • Título: Piensa en un título pegadizo para tu trabajo, como "El increíble proceso de la fotosíntesis" o "Cómo las plantas producen su propio alimento".
    • Introducción: Comienza con una oración que capte la atención del lector. Explica qué es la fotosíntesis en términos sencillos.
    • Cuerpo principal: Divide tu trabajo en párrafos. Cada párrafo debe centrarse en una idea clave sobre la fotosíntesis:
      • Lo que necesitan las plantas: luz solar, agua y dióxido de carbono.
      • Qué producen las plantas: Azúcar (para alimento) y oxígeno.
      • Por qué es importante la fotosíntesis: Nos proporciona alimentos a nosotros y a los animales, y limpia el aire.
    • Conclusión: Resume lo que aprendiste sobre la fotosíntesis. También puedes compartir tu dato favorito o una pregunta que aún tengas.
  4. Escribe tu trabajo:
    • Utilice un lenguaje claro y sencillo.
    • No tengas miedo de usar imágenes o dibujos para ayudar a explicar las cosas.
    • Revisa tu trabajo para detectar errores ortográficos y gramaticales.
  5. ¡Personalízala!
    • Dale un toque personal a tu documento.
    • Comparte alguna experiencia u observación que hayas tenido sobre las plantas.
    • Dibuja un diagrama que muestre cómo funciona la fotosíntesis.

Recuerda: ¡Tú eres el experto en tu trabajo! ¡Diviértete aprendiendo y escribiendo sobre la fotosíntesis!

Formato de salida

Puedes influir en el formato de la respuesta de un modelo definiendo un formato de salida, como Markdown o JSON, en las instrucciones del sistema.

Por ejemplo, supongamos que deseas usar un modelo para resumir las opiniones de los clientes sobre tu empresa. Compara la diferencia en las respuestas del modelo cuando defines los siguientes formatos de salida:

  • Muestra tu respuesta en formato JSON. Al final, fuera del objeto JSON, escribe de 3 a 5 frases con consejos para la empresa sobre cómo mejorar.
  • No hay requisitos de formato.
Instrucciones del sistema JSON Sin requisitos de formato

Eres profesional de RR.PP. para empresas de alta gama. Sigue estas instrucciones y basa tu respuesta en la entrada del usuario proporcionada.

Instrucciones:

  • Lee las reseñas que te han enviado.
  • Resume las ventajas y desventajas del negocio basándote en las reseñas.
  • Muestra tu respuesta en formato JSON.
  • Al final, fuera del objeto JSON, escribe entre 3 y 5 oraciones de consejos para que la empresa mejore.
  • Sea conciso.
  • Aténgase a los hechos.
  • No alucines.
  • Si hay opiniones contradictorias, solo incluye la opinión que se registró más.
  • No incluyas información irrelevante.
  • No menciones a los revisores por su nombre.

Eres profesional de RR.PP. para empresas de alta gama. Sigue estas instrucciones y basa tu respuesta en la entrada del usuario proporcionada.

Instrucciones:

  • Lee las reseñas que te han enviado.
  • Resumir los pros y los contras de la empresa según las opiniones
  • Sea conciso.
  • Aténgase a los hechos.
  • No alucines.
  • Si hay opiniones contradictorias, solo incluye la opinión que se registró más.
  • No incluyas información irrelevante.
  • No menciones a los revisores por su nombre.
Instrucción

Chad Brocker: 4 estrellas

El spa era maravilloso. El ambiente que se respira nada más entrar te relaja. Es casi como estar en trance. No tienes que preocuparte por NADA. Los trabajadores tienen tu horario y te guían durante la experiencia. Todo lo que me ofrecieron fue increíble. El masaje, el tratamiento facial, el baño de barro. Además, tienen una política de 0 teléfonos celulares, por lo que realmente se siente como si estuvieras en un mundo completamente diferente. Sin embargo, es un poco caro.

Ver la instrucción completa

Lisa Simmens: 5 estrellas

¡La pasamos genial! Mi mejor amiga y yo nos regalamos un día de spa para nuestros cumpleaños. Cuando te lo diga, nuestras vidas habrán cambiado. Los empleados hacen todo lo posible para asegurarse de que tengas la mejor experiencia posible. Desde hacerte preguntas hasta brindarte servicios de alta calidad y asegurarse de que llegues a tiempo a cada una de tus citas, fueron realmente los mejores. Volveremos pronto. Posdata: ¡Hazte el tratamiento de exfoliación corporal completa!

Allie Wood: 2 estrellas

Si bien los empleados fueron increíbles en su atención al cliente, mi masaje me dolió y mi facial me quemó. Además, no permiten tener tu teléfono celular, lo que genera más estrés. El ambiente era tranquilo y relajante, pero no tener mi teléfono móvil me impidió relajarme. Además, era caro.

Suzy Michaels: 3 estrellas

El entorno de este espacio no es de este mundo. Es como entrar al paraíso. Los servicios fueron los mejores que he recibido hasta ahora. PERO no ofrecieron ningún tipo de refrigerio. Vamos, al menos deberían ofrecer agua.

Martin Wong: 4 estrellas

Fue una experiencia increíble. Mi única queja es no poder consultar mi teléfono.

Debbie Ruiz: 5 estrellas

Entorno increíble. Trabajadores increíbles. Servicios increíbles. Además, no se permiten teléfonos celulares, lo que fue MUY liberador y contribuyó a la atmósfera pacífica. ¡Sin duda lo recomiendo a todo el mundo!

Lucy Mantel: 1 estrella

No hay refrigerios. No se permiten teléfonos móviles. Un mal masaje. No es una gran experiencia. No la recomiendo.

Respuesta
    {
      ""pros"": [
        ""relaxing atmosphere"",
        ""attentive and efficient staff"",
        ""high-quality services""
      ],
      ""cons"": [
        ""pricey"",
        ""no cell phone policy"",
        ""no refreshments""
      ]
    }
    

Si bien el spa ha recibido elogios por su ambiente tranquilo, su personal excepcional y sus servicios de primer nivel, hay algunas áreas que se pueden mejorar. Abordar las inquietudes de los clientes sobre la estricta política de no usar teléfonos celulares y la falta de refrigerios podría mejorar significativamente la experiencia general. Considera ofrecer un área designada para que los huéspedes accedan a sus teléfonos si es necesario y proporciona agua de cortesía o una selección limitada de bebidas.

Ventajas: El spa ofrece un ambiente tranquilo y relajante con servicios de alta calidad. Los clientes elogian la excepcional atención al cliente que brinda el personal.

Desventajas: La política de no usar teléfonos celulares en el spa es un punto de discusión, ya que algunos la consideran un aporte a la relajación y otros la encuentran estresante. Varios revisores consideraron que los precios eran altos.

Estilo y tono

Puedes influir en la respuesta de un modelo definiendo su estilo y tono de salida, como la verbosidad, la formalidad y el nivel de lectura objetivo, en las instrucciones del sistema.

Por ejemplo, supongamos que deseas usar un modelo para escribir propuestas sobre iniciativas gubernamentales. Compara la diferencia en las respuestas del modelo cuando defines los siguientes tonos:

  • Profesional
  • Informal
Instrucciones del sistema Profesional Informal

Eres redactor de propuestas gubernamentales. Tu tarea es producir propuestas para futuras campañas. Basándose en la plantilla y en la información proporcionada por el usuario, elabore una propuesta para la próxima campaña.

  • No uses Internet.
  • Las respuestas de cada sección no deben tener más de dos oraciones.
  • Escribe en un tono profesional.
  • Proporciona respuestas en formato Markdown.

Plantilla de propuesta:

  • La gran idea:
  • El desafío
  • La solución
  • Público objetivo
  • Mensaje clave
  • Canales
  • Destacados de contenido
  • Resultados previstos
  • ¿Por qué nosotros?
  • Llamado a la acción

Eres redactor de propuestas gubernamentales. Tu tarea es producir propuestas para futuras campañas. Basándose en la plantilla y en la información proporcionada por el usuario, elabore una propuesta para la próxima campaña.

  • No uses Internet.
  • Las respuestas de cada sección no deben tener más de dos oraciones.
  • Escribe en un tono informal.
  • Proporciona respuestas en formato Markdown.

Plantilla de propuesta:

  • La gran idea:
  • El desafío
  • La solución
  • Público objetivo
  • Mensaje clave
  • Canales
  • Destacados de contenido
  • Resultados previstos
  • ¿Por qué nosotros?
  • Llamado a la acción
Instrucción

El propósito de esta campaña es generar conciencia e inspirar cambios de comportamiento prácticos hacia la sustentabilidad a través del uso de experiencias digitales interactivas. Atraeré a personas de 20 a 45 años con conciencia ambiental, incluidos estudiantes, profesionales y familias, a través de contenido educativo y la organización de eventos impulsados por la comunidad en Facebook y X. Mi objetivo es aumentar el conocimiento público y fomentar mejoras medibles en los comportamientos ecológicos. Basándome en mi experiencia en marketing digital y mi fuerte enfoque en la sostenibilidad, diseñaré una campaña de alto impacto que empodere a las personas para realizar cambios significativos y sostenibles en su vida diaria. Quiero que esta campaña genere contenido variado, atractivo y a la vez informativo.

Respuesta

La gran idea: Capacitar a las personas de entre 20 y 45 años para que adopten un estilo de vida sostenible a través de experiencias digitales interactivas y la participación de la comunidad.

El desafío: Muchas personas no conocen las acciones prácticas y cotidianas que pueden realizar para promover la sustentabilidad ambiental.

La solución: Una campaña multiplataforma que utiliza Facebook y X para ofrecer contenido educativo y atractivo, y fomentar la participación de la comunidad a través de experiencias y eventos interactivos.

Público objetivo: Personas de entre 20 y 45 años con conciencia ambiental, incluidos estudiantes, profesionales y familias.

Mensaje clave: Los pequeños cambios en los hábitos diarios pueden tener un impacto positivo significativo en el medio ambiente.

Canales: Facebook y X

Aspectos destacados del contenido: Cuestionarios interactivos, videos educativos, sesiones de preguntas y respuestas con expertos y desafíos de la comunidad que promueven prácticas sostenibles

Resultados esperados: Mayor conciencia sobre las prácticas de vida sustentable y mejoras medibles en los comportamientos ecológicos dentro del público objetivo.

Por qué elegirnos: Tenemos experiencia comprobada en marketing digital y pasión por promover la sustentabilidad, lo que garantiza una campaña atractiva y de alto impacto.

Llamado a la acción: Únete a la campaña en Facebook y X para aprender, participar y marcar la diferencia en pos de un futuro sustentable.

La gran idea: Lanzaremos un movimiento digital para que la sustentabilidad sea genial. Con desafíos interactivos y contenido atractivo, inspiraremos acciones reales y transformaremos la vida ecológica de una tarea a un viaje compartido.

El desafío: Seamos sinceros, saber sobre sustentabilidad y actuar en consecuencia son dos cosas diferentes. Luchamos contra la apatía y la falta de conciencia sobre los cambios simples y cotidianos.

La solución: Nos reuniremos con nuestro público en las plataformas que usa, como Facebook y X, para ofrecer una combinación dinámica de contenido educativo, desafíos divertidos y eventos impulsados por la comunidad. Piensa en cuestionarios interactivos, infografías para compartir y reuniones locales.

Público objetivo: Nos enfocamos en personas con conciencia ecológica de entre 20 y 45 años (estudiantes, profesionales y familias) que desean marcar la diferencia.

Mensaje clave: ¡Pequeños pasos, gran impacto! Tienes el poder de crear un futuro más sustentable con decisiones simples y cotidianas.

Canales: Aprovecharemos el poder del marketing en redes sociales mediante campañas atractivas en Facebook y X.

Aspectos destacados del contenido: Espera una combinación de contenido informativo y apto para compartir, incluidas infografías llamativas, videos que invitan a la reflexión, sugerencias rápidas e historias de éxito inspiradoras.

Resultados esperados: Mediremos el éxito a través del aumento de la interacción (me gusta, comparticiones, comentarios) y del tráfico web, con el objetivo final de lograr un aumento cuantificable de los comportamientos ecológicos dentro de nuestro público objetivo.

Por qué elegirnos: Nuestro equipo combina la experiencia en marketing digital con una pasión genuina por la sustentabilidad, lo que da como resultado una campaña impactante y atractiva.

Llamado a la acción: ¡Únete al movimiento! Sigue nuestra página, participa en nuestros desafíos y comparte tu experiencia de vida sustentable con tus contactos.

Objetivos y reglas

Puedes influir en la respuesta de un modelo definiendo objetivos o reglas, es decir, lo que el modelo debe o no debe hacer, en las instrucciones del sistema.

Por ejemplo, supongamos que quieres usar un modelo para escribir código Python. Compara la diferencia en las respuestas del modelo cuando defines las siguientes reglas:

  • Cuando generes código, asegúrate de incluir cadenas de documentación que expliquen las entradas, las salidas y el uso de cada método.
  • Solo genera código, no incluyas cadenas de documentación.
Instrucciones del sistema Cadenas de documentación Sin cadenas de documentación
Cuando generes código, asegúrate de incluir cadenas de documentación que expliquen las entradas, las salidas y el uso de cada método. Solo genera el código, no incluyas ninguna cadena de documentación.
Instrucción Crea un array bidimensional en Python y un algoritmo de búsqueda de rutas A* para identificar la ruta más corta entre dos puntos de la cuadrícula.
Respuesta
    import heapq

    class Node:
        """"""
        Represents a node in the grid for A* pathfinding.

        Attributes:
            x (int): The x-coordinate of the node.
            y (int): The y-coordinate of the node.
            parent (Node, optional): The parent node in the path. Defaults to None.
            g (int): Cost from the start node to this node. Defaults to 0.
            h (int): Estimated cost from this node to the end node. Defaults to 0.
        """"""

        def __init__(self, x, y, parent=None):
            self.x = x
            self.y = y
            self.parent = parent
            self.g = 0
            self.h = 0

        def __lt__(self, other):
            """"""Compares nodes based on their f-score (g + h).""""""
            return (self.g + self.h) < (other.g + other.h)

    def a_star(grid, start, end):
        """"""
        Implements the A* pathfinding algorithm.

        Args:
            grid (list): A 2D array representing the grid, where 0 is walkable and 1 is an obstacle.
            start (tuple): The starting point coordinates (x, y).
            end (tuple): The end point coordinates (x, y).

        Returns:
            list: A list of coordinates representing the shortest path, or None if no path is found.
        """"""

        rows = len(grid)
        cols = len(grid[0])

        # Create start and end nodes
        start_node = Node(start[0], start[1])
        end_node = Node(end[0], end[1])

        # Initialize open and closed lists
        open_list = []
        closed_list = set()

        # Add the start node to the open list
        heapq.heappush(open_list, start_node)

        while open_list:
            # Get the node with the lowest f-score
            current_node = heapq.heappop(open_list)

            # Add the current node to the closed list
            closed_list.add((current_node.x, current_node.y))

            # Check if we've reached the goal
            if current_node.x == end_node.x and current_node.y == end_node.y:
                # Reconstruct and return the path
                path = []
                while current_node:
                    path.append((current_node.x, current_node.y))
                    current_node = current_node.parent
                return path[::-1]  # Return reversed path

            # Explore neighboring nodes
            for dx, dy in [(0, -1), (0, 1), (-1, 0), (1, 0)]:  # Up, Down, Left, Right
                neighbor_x = current_node.x + dx
                neighbor_y = current_node.y + dy

                # Check if the neighbor is within the grid bounds
                if 0 <= neighbor_x < cols and 0 <= neighbor_y < rows:
                    # Check if the neighbor is walkable and not in the closed list
                    if grid[neighbor_y][neighbor_x] == 0 and (neighbor_x, neighbor_y) not in closed_list:
                        # Create a neighbor node
                        neighbor_node = Node(neighbor_x, neighbor_y, parent=current_node)

                        # Calculate the cost to reach the neighbor
                        neighbor_node.g = current_node.g + 1

                        # Calculate the heuristic (Manhattan distance)
                        neighbor_node.h = abs(neighbor_node.x - end_node.x) + abs(neighbor_node.y - end_node.y)

                        # Add the neighbor to the open list if it's a better path
                        if neighbor_node not in open_list:
                            heapq.heappush(open_list, neighbor_node)

        # No path found
        return None

    # Example usage:
    grid = [
        [0, 0, 0, 0, 0],
        [0, 1, 0, 1, 0],
        [0, 0, 0, 0, 0],
        [0, 1, 1, 1, 0],
        [0, 0, 0, 0, 0]
    ]

    start = (0, 0)
    end = (4, 4)

    path = a_star(grid, start, end)

    if path:
        print(""Shortest path:"", path)
    else:
        print(""No path found."")
    

Explicación:

  1. Clase de nodo:
    • Representa una celda en la cuadrícula.
    • Coordenadas de la tienda (x, y), nodo principal, g (costo desde el inicio) y h (heurística para el final).
    • __lt__ permite comparar nodos para la cola de prioridad (usando heapq) basándose en f = g + h.
  2. Función a_star:
    • Toma los puntos grid, start y end como entrada.
    • Inicializa open_list (nodos para explorar) y closed_list (nodos explorados).
    • Utiliza heapq para la recuperación eficiente del nodo con la puntuación f más baja de open_list.
    • El bucle se ejecuta hasta que se encuentre end o open_list esté vacío (no haya ruta).
    • Explora los vecinos, calcula los costos (g, h) y actualiza el open_list.
    • Reconstruye y devuelve la ruta cuando se alcanza el objeto end.
  3. Ejemplo de uso:
    • Crea un grid de muestra y define los puntos start y end.
    • Llama a a_star para encontrar la ruta.
    • Imprime la ruta más corta o indica si no existe una ruta.
    import heapq

    class Node:
        def __init__(self, position, parent=None):
            self.position = position
            self.parent = parent
            self.g = 0
            self.h = 0
            self.f = 0

        def __lt__(self, other):
            return self.f < other.f

    def astar(grid, start, end):
        rows = len(grid)
        cols = len(grid[0])

        open_list = []
        closed_list = set()

        start_node = Node(start)
        end_node = Node(end)

        open_list.append(start_node)

        while open_list:
            current_node = heapq.heappop(open_list)

            if current_node.position == end_node.position:
                path = []
                while current_node:
                    path.append(current_node.position)
                    current_node = current_node.parent
                return path[::-1]

            closed_list.add(current_node.position)

            for neighbor in get_neighbors(grid, current_node):
                if neighbor.position in closed_list:
                    continue

                if neighbor not in open_list:
                    neighbor.g = current_node.g + 1
                    neighbor.h = manhattan_distance(neighbor.position, end_node.position)
                    neighbor.f = neighbor.g + neighbor.h
                    neighbor.parent = current_node
                    heapq.heappush(open_list, neighbor)
                else:
                    if neighbor.g > current_node.g + 1:
                        neighbor.g = current_node.g + 1
                        neighbor.f = neighbor.g + neighbor.h
                        neighbor.parent = current_node
                        heapq.heapify(open_list)

        return None  # No path found

    def get_neighbors(grid, node):
        rows = len(grid)
        cols = len(grid[0])
        row, col = node.position
        neighbors = []
        if row > 0 and grid[row - 1][col] == 0:
            neighbors.append(Node((row - 1, col)))
        if row < rows - 1 and grid[row + 1][col] == 0:
            neighbors.append(Node((row + 1, col)))
        if col > 0 and grid[row][col - 1] == 0:
            neighbors.append(Node((row, col - 1)))
        if col < cols - 1 and grid[row][col + 1] == 0:
            neighbors.append(Node((row, col + 1)))
        return neighbors

    def manhattan_distance(a, b):
        return abs(a[0] - b[0]) + abs(a[1] - b[1])

    # Example usage
    grid = [
        [0, 0, 0, 0, 0],
        [0, 1, 1, 1, 0],
        [0, 0, 0, 0, 0],
        [0, 1, 1, 1, 0],
        [0, 0, 0, 0, 0],
    ]

    start = (0, 0)
    end = (4, 4)

    path = astar(grid, start, end)
    print(path)
    

Contexto

Puedes influir en cómo responde un modelo a las indicaciones añadiendo contexto adicional en las instrucciones del sistema.

Por ejemplo, supongamos que quieres usar un modelo para escribir discursos para eventos. Compara la diferencia en las respuestas del modelo cuando proporcionas el siguiente contexto:

  • Cosas que debes incluir en el discurso
  • Sin contexto adicional.
Instrucciones del sistema Qué incluir en el discurso Sin contexto adicional

Ayuda al usuario a escribir un discurso en función de la información proporcionada:

  • Evento
  • Tamaño del público
  • Información del orador (nombre, edad, etc.)
  • Tono de voz
  • Duración del discurso
  • Varios

Si el usuario no proporciona toda esta información, responde lo siguiente: "Lo siento, pero no tengo toda la información necesaria para crear un discurso. Proporciona el evento, el tamaño del público, la información del orador, el tono, la duración y cualquier otra información miscelánea".

Algunos elementos generales que debes incluir son los siguientes:

  • Descansos para hacer una pausa
  • Un gancho intrigante
  • Un comentario final para que el discurso sea memorable
  • Una broma

Ayuda al usuario a escribir un discurso en función de la información proporcionada:

  • Evento
  • Tamaño del público
  • Información del orador (nombre, edad, etc.)
  • Tono de voz
  • Duración del discurso
  • Varios

Si el usuario no proporciona toda esta información, responde lo siguiente: "Lo siento, pero no tengo toda la información necesaria para crear un discurso. Proporciona el evento, el tamaño del público, la información del orador, el tono, la duración y cualquier otra información miscelánea".

Instrucción

Evento: Graduación de la escuela secundaria

Tamaño de la audiencia: 1.000 personas

Información del orador: Michael Landish, 17 años

Tono: Nostálgico y optimista

Longitud del discurso: Entre 250 y 500 palabras

Varios: Michael fue el presidente de la clase en su último año, su profesora favorita fue su profesora de inglés de penúltimo año, la Sra. Martin, y asistirá a la Universidad Estatal de Los Caminos para estudiar economía e inglés. Nunca dio un discurso y está nervioso por su dislexia.

Respuesta

"Buenos días, profesores, familiares, amigos y, lo más importante, compañeros graduados de la promoción del 2023.

(Pausa)

Estar aquí y verlos a todos se siente surrealista. Apenas ayer éramos estudiantes de primer año, con los ojos muy abiertos y un poco aterrorizados. ¿Recuerdas esos nervios del primer día? Yo sí. Casi me caí cuando llevaba mi libro de texto de historia, un desastre que se habría inmortalizado en los pasillos de la historia de [Nombre de la escuela secundaria].

(Pausa para risas)

Pero, en serio, ¡míranos ahora! Hemos crecido, hemos aprendido mucho, y no me refiero solo al teorema de Pitágoras. Aprendimos sobre la perseverancia, la amistad y el poder de una nota adhesiva bien ubicada durante la semana de exámenes.

Estos últimos cuatro años fueron increíbles, y le debo gran parte de mi crecimiento a algunos profesores verdaderamente excepcionales. Me gustaría agradecer especialmente a la señora Martin, mi profesora de inglés del tercer año, quien me enseñó que las palabras tienen poder y que, incluso con dislexia, puedo encontrar mi voz. Gracias, señora Martin.

(Pausa)

Ahora, estamos al borde de algo nuevo y emocionante. Mientras nos dirigimos a diferentes universidades, ciudades e incluso países, llevemos con nosotros las lecciones que aprendimos en [Nombre de la escuela secundaria]. Recordemos las risas, las amistades y hasta las noches en vela antes de un examen importante.

(Pausa)

Graduados, el mundo nos espera. Afrontémoslo de frente, con valentía, con optimismo y con el apoyo inquebrantable de la increíble promoción de 2023 que nos respalda. Felicitaciones a todos y recuerden que lo mejor está por venir.

"Buenos días, profesores, familiares, amigos y, lo más importante, compañeros graduados de la promoción de [año]

Me resulta extraño estar aquí delante de vosotros, no solo como Michael Landish, sino como el presidente de vuestra clase. Durante los últimos cuatro años, estos pasillos fueron nuestro campo de pruebas, llenos de risas, sesiones de estudio nocturnas (algunas más exitosas que otras) y suficientes recuerdos compartidos para toda la vida. Hemos crecido juntos entre estas paredes, y ahora, al encontrarnos al borde de algo nuevo y desconocido, es difícil no sentirse un poco abrumado.

Si lo pienso, parece que fue ayer cuando éramos estudiantes de primer año torpes, recorriendo pasillos llenos de gente y tratando de descubrir dónde encajábamos. Y ahora, al miraros a todos, me sorprende lo lejos que hemos llegado. Nos hemos animado mutuamente en las victorias y nos hemos brindado apoyo durante los reveses. Aprendimos de nuestros errores, celebramos nuestros triunfos y, lo más importante, formamos vínculos de amistad que sé que durarán toda la vida.

Quiero agradecer especialmente a la Sra. Martin, mi profesora de inglés del tercer año, por su paciencia y orientación. Tu confianza en mí, especialmente cuando tenía dificultades, me ayudó a encontrar mi voz no solo como estudiante, sino también como persona. Gracias.

Ahora, nos embarcamos en nuestro próximo capítulo. Algunos, como yo, iremos a la Universidad Estatal Los Caminos, ansiosos por adentrarnos en el mundo de la economía y, sí, incluso más inglés. Otros seguirán caminos diferentes, igualmente válidos y emocionantes. Aunque nuestros caminos se separen, recordemos siempre las lecciones que aprendimos y las amistades que forjamos en estas paredes. Llevamos con nosotros el espíritu de la promoción del [año]: un espíritu de resiliencia, determinación y apoyo inquebrantable mutuo.

¡Felicitaciones a la clase graduada! Estoy ansioso por ver las cosas increíbles que lograremos.

¿Qué sigue?