Instrucciones del sistema

En este documento, se describen las instrucciones del sistema y las prácticas recomendadas para escribir instrucciones del sistema eficaces. Si quieres obtener información para agregar instrucciones del sistema a tus instrucciones, consulta Usa instrucciones del sistema.

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 útiles 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 usar 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 usar un modelo para ayudar a los estudiantes a escribir trabajos. Compara la diferencia en las respuestas del modelo cuando defines los siguientes roles:

  • Eres un bot que tiene la tarea de enseñar a los estudiantes universitarios a escribir un trabajo sobre un tema determinado.
  • Eres un bot que tiene la tarea de 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 los estudiantes universitarios a 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.
Instrucción Asunto: Fotosíntesis Asunto: 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 ella puede ser una experiencia gratificante, ya que te permite profundizar en sus complejidades y comprender su importancia. A continuación, se muestra un desglose de cómo abordar esta tarea:

  1. Cómo elegir un enfoque:
    • Descripción general amplia: Podrías proporcionar una descripción general integral 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 sitios web generales.
    • Búsqueda por palabras clave: Usa palabras clave como "fotosíntesis", "cloroplastos", "clorofila", "reacciones dependientes de la luz", "ciclo de Calvin", etcétera.
    • 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, utilizando evidencia de tu investigación.
      • Usa encabezados y subtítulos para organizar tu trabajo y facilitar su lectura.
      • Cada párrafo debe centrarse 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 necesaria.
    • Argumentos basados en evidencia: Respalda tus afirmaciones con evidencia de tu investigación.
    • Citas adecuadas: Usa un estilo de citas coherente (MLA, APA, Chicago) en todo el documento.
    • Revisión y edición: Revisa y edita cuidadosamente tu trabajo para corregir errores de gramática, ortografía y puntuación.
  5. Sugerencias adicionales:
    • Ayudas visuales: Usa diagramas, gráficos o tablas para ilustrar conceptos complejos.
    • Casos de éxito: Si corresponde, incluye casos de éxito relevantes para demostrar las aplicaciones de la fotosíntesis en el mundo real.
    • 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 temprana 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.

¡Es un tema excelente! La fotosíntesis es muy importante para la vida en la Tierra. A continuación, 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 obtén más información:
    • Libros: Busca en tu biblioteca 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 confiables (como los de National Geographic o la NASA).
    • Pídele ayuda a un adulto: Pídele ayuda a tu profesor, madre o padre, o bibliotecario para encontrar información.
  3. Organiza tus ideas:
    • Título: Piensa en un título pegadizo para tu trabajo, como "El asombroso 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 enfocarse 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:
    • Usa un lenguaje claro y sencillo.
    • No tengas miedo de usar imágenes o dibujos para explicar las cosas.
    • Revisa tu trabajo para detectar errores ortográficos y gramaticales.
  5. ¡Personalízala!
    • Agrega un toque personal a tu trabajo.
    • Comparte una experiencia o una observación que hayas tenido sobre las plantas.
    • Dibuja un diagrama para mostrar cómo funciona la fotosíntesis.

Recuerda que tú eres el experto en tu trabajo. Diviértete aprendiendo y escribiendo sobre la fotosíntesis.

Formato de salida

Puedes influir en la forma en que un modelo formatea su respuesta 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 entre 3 y 5 oraciones con consejos para que la empresa mejore.
  • 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 opiniones que te enviaron.
  • Resume los pros y los contras de la empresa según las opiniones.
  • Muestra tu respuesta en formato JSON.
  • Al final, fuera del objeto JSON, escribe entre 3 y 5 oraciones con consejos para que la empresa mejore.
  • Sea conciso.
  • Limítate a los hechos.
  • No alucines.
  • Si hay opiniones contradictorias, solo se incluirá la opinión que se haya registrado más veces.
  • 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 opiniones que te enviaron.
  • Resume los pros y los contras de la empresa según las opiniones.
  • Sea conciso.
  • Limítate a los hechos.
  • No alucines.
  • Si hay opiniones contradictorias, solo se incluirá la opinión que se haya registrado más veces.
  • No incluyas información irrelevante.
  • No menciones a los revisores por su nombre.
Instrucción

Chad Brocker: 4 estrellas

El spa era maravilloso. Todo el ambiente te relaja en cuanto entras. Casi parece que estás 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 el personal fue excelente en su servicio de atención al cliente, el masaje DOLIÓ y la cara ME ARDIÓ en el tratamiento facial. 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 celular me impedía 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

Es un 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 dudas, lo recomiendo a todos.

Lucy Mantel: 1 estrella

No hay refrigerios. No se permiten teléfonos celulares. Un mal masaje. No es una experiencia muy buena. 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 recibió 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 para 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. Tienes la tarea de producir propuestas para campañas futuras. Según la plantilla y la entrada del usuario, proporciona una propuesta para la próxima campaña.

  • No uses Internet.
  • Las respuestas de cada sección no deben superar las 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
  • Contenido destacado
  • Resultados previstos
  • Por qué elegirnos
  • Llamado a la acción

Eres redactor de propuestas gubernamentales. Tienes la tarea de producir propuestas para campañas futuras. Según la plantilla y la entrada del usuario, proporciona una propuesta para la próxima campaña.

  • No uses Internet.
  • Las respuestas de cada sección no deben superar las 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
  • Contenido destacado
  • Resultados previstos
  • Por qué elegirnos
  • Llamado a la acción
Instrucción

El objetivo de esta campaña es generar conciencia e inspirar cambios de comportamiento prácticos hacia la sustentabilidad a través de experiencias digitales interactivas. Involucraré 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. Aprovechando mi experiencia en marketing digital y mi gran enfoque en la sustentabilidad, diseñaré una campaña de alto impacto que capacite a las personas para realizar cambios significativos y sustentables en su vida diaria. Quiero que esta campaña cree contenido variado y atractivo, pero también 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 comunitarios que promueven prácticas sustentables

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 tomar medidas al respecto son dos cosas diferentes. Luchamos contra la apatía y la falta de conciencia sobre los cambios simples y cotidianos.

La solución: Nos encontraremos 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 con 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 de una mayor participación (Me gusta, veces que se comparte, comentarios) y tráfico del sitio web, con el objetivo final de lograr un aumento medible en 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 tu red.

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 deseas usar un modelo para escribir código de 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 Docstrings 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 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.
    • Almacena las coordenadas (x, y), el nodo principal, g (costo desde el inicio) y h (heurística hasta el final).
    • __lt__ permite comparar nodos para la cola de prioridad (con heapq) según 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).
    • Usa heapq para recuperar de manera eficiente el nodo con la puntuación f más baja del open_list.
    • Se repite hasta que se encuentra el end o el open_list está vacío (no hay ruta de acceso).
    • Explora vecinos, calcula 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 la forma en que un modelo responde a las instrucciones agregando 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:

  • Pausas
  • Un gancho intrigante
  • Un comentario final para que el discurso sea memorable
  • Un chiste

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 del público: 1,000 personas

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

Tono: Nostálgico, optimista

Duración del discurso: Entre 250 y 500 palabras

Varios: Michael fue presidente de la clase de último año, su profesora favorita fue la de inglés de tercer año, la señora Martin, y asistirá a la Universidad Estatal de Los Caminos para estudiar economía y literatura inglesa. 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.

(Pausar)

Estar aquí y verlos a todos ustedes se siente surrealista. Apenas ayer éramos estudiantes de primer año, con los ojos muy abiertos y un poco aterrorizados. ¿Recuerdas los 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. Crecimos, aprendimos 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 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.

(Pausar)

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.

(Pausar)

Graduados, el mundo nos espera. Enfrentémoslo con valentía, optimismo y el apoyo incondicional de la increíble promoción del 2023. 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].

Es extraño estar aquí ante ustedes, no solo como Michael Landish, sino como presidente de la 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. Crecimos juntos entre estas paredes y, ahora, mientras nos encontramos 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 verlos a todos, me sorprende lo lejos que hemos llegado. Nos alentamos en las victorias y nos brindamos apoyo en los reveses. Aprendimos de nuestros errores, celebramos nuestros triunfos y, lo más importante, formamos lazos 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 fe 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 de [Año]: el espíritu de resiliencia, determinación y apoyo inquebrantable mutuo.

¡Felicitaciones a la clase graduada! No puedo esperar a ver las cosas increíbles que lograremos.

¿Qué sigue?