Instrucciones del sistema

En este documento se describe qué son las instrucciones del sistema y se ofrecen prácticas recomendadas para escribir instrucciones del sistema eficaces. Para saber cómo añadir instrucciones del sistema a tus peticiones, consulta Usar instrucciones del sistema.

Las instrucciones del sistema son un conjunto de instrucciones que el modelo procesa antes de procesar las peticiones. Te recomendamos que uses instrucciones del sistema para indicar al modelo cómo quieres que se comporte y responda a las peticiones. Por ejemplo, puedes incluir aspectos como el rol que debe adoptar, información contextual e instrucciones de formato.

Las instrucciones del sistema son especialmente útiles cuando quieres proporcionar al modelo información que un usuario final no puede ver ni cambiar, lo que puede ayudarte a darle al modelo contexto adicional para entender la tarea, ofrecer respuestas más personalizadas y cumplir directrices específicas durante toda la interacción del usuario con el modelo. Además, las instrucciones del sistema son útiles cuando quieres ejecutar varias peticiones con el mismo conjunto de instrucciones.

Cuando se definen instrucciones del sistema, se aplican a toda la solicitud. Las instrucciones del sistema funcionan en varios turnos de usuario y modelo cuando se incluyen en la petición. Aunque las instrucciones del sistema están separadas del contenido de la petición, siguen formando parte de las peticiones generales y, por lo tanto, están sujetas a las políticas de uso de datos estándar.

Casos prácticos

Por lo general, recomendamos usar instrucciones del sistema para hacer una o varias de las siguientes acciones:

  • Definir un perfil o un rol
  • Definir el formato de salida
  • Definir el estilo y el tono del resultado
  • Definir objetivos o reglas para la tarea
  • Proporciona contexto adicional para la petición

Perfil o rol

Puedes influir en cómo responde un modelo a las peticiones definiendo un rol o un perfil en las instrucciones del sistema.

Por ejemplo, supongamos que quieres usar un modelo para ayudar a los alumnos a escribir trabajos. Compara la diferencia en las respuestas del modelo cuando definas los siguientes roles:

  • Eres un bot que tiene la tarea de enseñar a estudiantes universitarios a escribir un trabajo sobre un tema determinado.
  • Eres un bot que tiene la tarea de ayudar a los alumnos de primaria a escribir un trabajo sobre un tema determinado.
Instrucciones del sistema Bot para estudiantes universitarios Bot para alumnos de primaria
Eres un bot cuya tarea es enseñar a estudiantes universitarios a escribir un trabajo sobre un tema concreto. Eres un bot cuya tarea es ayudar a alumnos de primaria a escribir un trabajo sobre un tema concreto.
Petición Asunto: Fotosíntesis Asunto: Fotosíntesis
Respuesta

Escribir un trabajo sobre la fotosíntesis: 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 artículo sobre ello puede ser una experiencia gratificante, ya que te permite profundizar en sus complejidades y comprender su importancia. A continuación, se explica cómo abordar esta tarea:

  1. Elegir un objetivo:
    • Descripción general: puedes ofrecer una descripción general completa de la fotosíntesis, que incluya sus fases, requisitos, subproductos y su papel en el ecosistema.
    • Aspecto específico: elige un aspecto específico de la fotosíntesis para explorarlo en detalle, como:
      • 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 biotecnología.
    • Estudio comparativo: compara y contrasta diferentes aspectos de la fotosíntesis en distintos organismos (plantas, algas y bacterias).
  2. Investigación y recopilación de información:
    • Fuentes fiables: usa revistas académicas, fuentes online fiables y libros de texto. No te bases únicamente en Wikipedia ni en sitios web genéricos.
    • Búsqueda por palabras clave: usa 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. No olvides citar las fuentes correctamente.
  3. Estructura del documento:
    • Introducción:
      • Presenta brevemente la fotosíntesis y su importancia.
      • Indica tu tesis, en la que se exponga claramente el argumento principal de tu trabajo.
    • Párrafos del cuerpo:
      • Desarrolla tus puntos en una secuencia lógica, utilizando pruebas de tu investigación.
      • Usa títulos y subtítulos para organizar tu trabajo y facilitar la lectura.
      • Cada párrafo debe centrarse en una sola idea y aportar pruebas que la respalden.
    • Conclusión:
      • Resume los puntos principales y vuelve a exponer tu tesis.
      • Habla sobre las implicaciones de tus conclusiones y sugiere futuras líneas de investigación.
  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 pruebas: respalda tus afirmaciones con pruebas de tu investigación.
    • Cita adecuada: utiliza un estilo de cita coherente (MLA, APA o Chicago) en todo el documento.
    • Revisión y edición: revisa y edita cuidadosamente tu trabajo para corregir errores gramaticales, ortográficos y de puntuación.
  5. Consejos adicionales:
    • Ayudas visuales: usa diagramas, gráficos o tablas para ilustrar conceptos complejos.
    • Casos prácticos: si procede, incluye casos prácticos relevantes para demostrar las aplicaciones de la fotosíntesis en el mundo real.
    • Conexión personal: busca una forma de conectar el tema con tus propios intereses o experiencias.

Ejemplos de títulos de artículos:

  • El papel de la intensidad de la luz en la fotosíntesis: un estudio comparativo
  • La evolución de la fotosíntesis: desde las primeras formas de vida hasta las plantas modernas
  • Aprovechar 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 te basas en una investigación sólida, podrás escribir un trabajo que demuestre que comprendes este proceso biológico esencial.

¡Es un tema genial! La fotosíntesis es muy importante para la vida en la Tierra. A continuación, te indicamos cómo puedes escribir un artículo sobre este tema:

  1. Piensa en lo que ya sabes:
    • ¿Qué es la fotosíntesis?
    • ¿Qué necesita una planta para hacer la fotosíntesis?
    • ¿Qué produce una planta durante la fotosíntesis?
    • ¿Sabes algún dato interesante sobre la fotosíntesis?
  2. Investiga y obtén más información:
    • Libros: consulta tu biblioteca para encontrar 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).
    • Pide ayuda a un adulto: pregunta a tu profesor, padre, madre o bibliotecario para 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 producen las plantas su propio alimento".
    • Introducción: empieza con una frase que capte la atención del lector. Explica qué es la fotosíntesis de forma sencilla.
    • Cuerpo principal: divide el texto en párrafos. Cada párrafo debe centrarse en una idea clave sobre la fotosíntesis:
      • Qué necesitan las plantas: luz solar, agua y dióxido de carbono.
      • Qué producen las plantas: azúcar (para alimentarse) 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 has aprendido sobre la fotosíntesis. También puedes compartir tu dato favorito o una pregunta que aún tengas.
  4. Escribe tu artículo:
    • Usa un lenguaje claro y sencillo.
    • No tengas miedo de usar imágenes o dibujos para explicar cosas.
    • Revisa tu trabajo para detectar errores ortográficos y gramaticales.
  5. ¡Dale tu toque personal!
    • Dale un toque personal a tu trabajo.
    • Comparte una experiencia u 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 artículo. 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 quieres usar un modelo para resumir las reseñas de los clientes de tu empresa. Compara la diferencia en las respuestas del modelo cuando definas los siguientes formatos de salida:

  • Devuelve tu respuesta en formato JSON. Al final, fuera del objeto JSON, escribe entre 3 y 5 frases con consejos para que la empresa mejore.
  • No hay requisitos de formato.
Instrucciones del sistema JSON Sin requisitos de formato

Eres profesional de las relaciones públicas de empresas de gama alta. Sigue estas instrucciones y basa tu respuesta en la entrada del usuario proporcionada.

Instrucciones:

  • Lee las reseñas que te han enviado.
  • Resume los pros y los contras de la empresa a partir de las reseñas.
  • Devuelve tu respuesta en formato JSON.
  • Al final, fuera del objeto JSON, escribe entre 3 y 5 frases con consejos para que la empresa mejore.
  • Sé breve.
  • Cíñete a los hechos.
  • No alucines.
  • Si hay opiniones contradictorias, incluye solo la que se haya registrado más veces.
  • No incluyas información irrelevante.
  • No menciones a ningún revisor por su nombre.

Eres profesional de las relaciones públicas de empresas de gama alta. Sigue estas instrucciones y basa tu respuesta en la entrada del usuario proporcionada.

Instrucciones:

  • Lee las reseñas que te han enviado.
  • Resume los pros y los contras de la empresa a partir de las reseñas.
  • Sé breve.
  • Cíñete a los hechos.
  • No alucines.
  • Si hay opiniones contradictorias, incluye solo la que se haya registrado más veces.
  • No incluyas información irrelevante.
  • No menciones a ningún revisor por su nombre.
Petición

Chad Brocker: 4 estrellas

¡Este spa ha sido maravilloso! Todo el ambiente te relaja en cuanto entras. Es casi como si estuvieras en trance. No tienes que preocuparte por NADA. Los trabajadores tienen tu horario y te guían durante la experiencia. Todo lo que he recibido ha sido increíble. El masaje, el tratamiento facial, el baño de barro. Además, no permiten el uso de teléfonos móviles, por lo que te sentirás como si estuvieras en otro mundo. Aunque es un poco caro.

Ver la petición completa

Lisa Simmens: 5 estrellas

¡Lo pasamos genial! Mi mejor amiga y yo nos dimos un capricho y fuimos a un spa por nuestros cumpleaños. Cuando te lo diga, nuestras vidas habrán cambiado. Los empleados hacen todo lo posible para que disfrutes de la mejor experiencia posible. Desde hacerte preguntas hasta ofrecerte servicios de alta calidad y asegurarse de que llegues a tiempo a todas tus citas, han sido los mejores. Volveremos pronto. PD: ¡Hazte un tratamiento de exfoliación corporal completo!

Allie Wood: 2 estrellas

Aunque los trabajadores fueron increíbles en sus servicios al cliente, el masaje me dolió y el tratamiento facial me quemó. Además, no te permitieron tener tu teléfono móvil, lo que te provocó más estrés. El ambiente era tranquilo y relajante, pero no tener mi teléfono móvil me impedía relajarme. Además, era caro.

Suzy Michaels: 3 estrellas

El ambiente de este espacio era de otro mundo. Es como entrar en el cielo. Los servicios que me ofrecieron fueron los mejores que he tenido nunca. SIN EMBARGO, no ofrecieron ningún tipo de refrigerio. Vamos, al menos deberías ofrecer agua.

Martin Wong: 4 estrellas

Una experiencia increíble. Lo único que no me gusta es que no puedo consultar mi teléfono.

Debbie Ruiz: 5 estrellas

Un entorno increíble. Trabajadores increíbles. Servicios increíbles. Además, no se permite usar teléfonos móviles, lo que me resultó muy liberador y contribuyó a crear un ambiente tranquilo. Sin duda, lo recomiendo a todo el mundo.

Lucy Mantel: 1 estrella

No hay refrescos. No se permiten teléfonos móviles. Un mal masaje. No es una experiencia estupenda. No lo recomiendo.

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

Aunque el spa ha recibido elogios por su ambiente tranquilo, su personal excepcional y sus servicios de primera categoría, hay algunas áreas que se pueden mejorar. Abordar las preocupaciones de los clientes en relación con la estricta política de no usar teléfonos móviles y la falta de refrescos podría mejorar significativamente la experiencia en general. Te recomendamos que ofrezcas una zona designada para que los clientes puedan acceder a sus teléfonos si lo necesitan y que les proporciones agua u otras bebidas de forma gratuita.

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

Contras: La política del spa de no permitir teléfonos móviles es un punto de controversia, ya que algunos consideran que les ayuda a relajarse y otros, que les genera estrés. Varios críticos consideran que los precios son 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 quieres usar un modelo para escribir propuestas de iniciativas gubernamentales. Compara la diferencia en las respuestas del modelo cuando definas los siguientes tonos:

  • Profesional
  • Informal
Instrucciones del sistema Profesional Informal

Eres redactor de propuestas gubernamentales. Tu tarea consiste en elaborar propuestas para futuras campañas. A partir de la plantilla y de la información que proporcione el usuario, haz una propuesta para la próxima campaña.

  • No uses Internet.
  • Las respuestas de cada sección no deben superar las dos frases.
  • Escribe con un tono profesional.
  • Proporciona respuestas en formato Markdown.

Plantilla de propuesta:

  • La gran idea:
  • El reto
  • La solución
  • Audiencia objetivo
  • Mensaje clave
  • Canales
  • Contenido destacado
  • Resultados previstos
  • Por qué elegirnos
  • Llamada a la acción

Eres redactor de propuestas gubernamentales. Tu tarea consiste en elaborar propuestas para futuras campañas. A partir de la plantilla y de la información que proporcione el usuario, haz una propuesta para la próxima campaña.

  • No uses Internet.
  • Las respuestas de cada sección no deben superar las dos frases.
  • Escribe con un tono informal.
  • Proporciona respuestas en formato Markdown.

Plantilla de propuesta:

  • La gran idea:
  • El reto
  • La solución
  • Audiencia objetivo
  • Mensaje clave
  • Canales
  • Contenido destacado
  • Resultados previstos
  • Por qué elegirnos
  • Llamada a la acción
Petición

El objetivo de esta campaña es concienciar a los usuarios e inspirar cambios de comportamiento prácticos hacia la sostenibilidad mediante el uso de experiencias digitales interactivas. Me dirigiré a personas de entre 20 y 45 años concienciadas con el medio ambiente, como estudiantes, profesionales y familias, ofreciéndoles contenido educativo y organizando eventos impulsados por la comunidad en Facebook y X. Mi objetivo es aumentar la concienciación pública y fomentar mejoras medibles en los comportamientos respetuosos con el medio ambiente. Aprovechando mi experiencia en marketing digital y mi gran interés por la sostenibilidad, diseñaré una campaña de alto impacto que anime a las personas a hacer cambios significativos y sostenibles en su vida diaria. Quiero que esta campaña cree contenido variado y atractivo, pero informativo.

Respuesta

La gran idea: empoderar a 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 en la comunidad.

El reto: muchas personas no saben qué acciones prácticas y cotidianas pueden llevar a cabo para promover la sostenibilidad ambiental.

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

Audiencia objetivo: personas de entre 20 y 45 años concienciadas con el medio ambiente, 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.

Contenido destacado: cuestionarios interactivos, vídeos educativos, sesiones de preguntas y respuestas con expertos y retos de la comunidad para promover prácticas sostenibles.

Resultados esperados: mayor concienciación sobre las prácticas de vida sostenible y mejoras medibles en los comportamientos ecológicos de la audiencia objetivo.

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

Llamada a la acción: únete a la campaña en Facebook y X para aprender, interactuar y contribuir a un futuro sostenible.

La gran idea: vamos a lanzar un movimiento digital para que la sostenibilidad esté de moda. Con retos interactivos y contenido atractivo, fomentaremos acciones reales y transformaremos la vida sostenible de una tarea a un viaje compartido.

El reto: seamos sinceros, saber qué es la sostenibilidad y actuar en consecuencia son dos cosas diferentes. Estamos luchando contra la apatía y la falta de concienciación sobre los cambios sencillos que podemos hacer en nuestro día a día.

Solución: nos pondremos en contacto con nuestra audiencia en plataformas como Facebook y X para ofrecer una combinación dinámica de contenido educativo, retos divertidos y eventos impulsados por la comunidad. Piensa en cuestionarios interactivos, infografías que se puedan compartir y quedadas locales.

Audiencia objetivo: nos centramos en personas concienciadas con el medio ambiente de entre 20 y 45 años (estudiantes, profesionales y familias) que quieren marcar la diferencia.

Mensaje clave: pequeños pasos, gran impacto. Tienes el poder de crear un futuro más sostenible con decisiones sencillas en tu día a día.

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

Contenido destacado: encontrarás una mezcla de contenido informativo y fácil de compartir, como infografías llamativas, vídeos que invitan a la reflexión, consejos rápidos e historias de éxito inspiradoras.

Resultados esperados: mediremos el éxito a través del aumento de la interacción (Me gusta, compartidos y comentarios) y del tráfico del sitio web. Nuestro objetivo final es conseguir un aumento medible de los comportamientos respetuosos con el medio ambiente en nuestra audiencia objetivo.

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

Llamada a la acción: ¡únete al movimiento! Sigue nuestra página, participa en nuestros retos y comparte tu experiencia de vida sostenible 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 quieres usar un modelo para escribir código Python. Compara la diferencia en las respuestas del modelo cuando definas 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 ninguna cadena 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.
Petición Crea una matriz 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 de la cuadrícula.
    • Coordenadas de la tienda (x, y), nodo principal, g (coste desde el inicio) y h (heurística hasta el final).
    • __lt__ permite comparar nodos de una cola de prioridad (con heapq) en función de f = g + h.
  2. Función a_star:
    • Toma los puntos grid, start y end como entrada.
    • Inicializa open_list (nodos que se van a explorar) y closed_list (nodos explorados).
    • Usa heapq para recuperar de forma eficiente el nodo con la puntuación f más baja de open_list.
    • Se repite hasta que se encuentra end o open_list está vacío (no hay ninguna ruta).
    • Explora los vecinos, calcula los costes (g y h) y actualiza open_list.
    • Reconstruye y devuelve la ruta cuando se alcanza end.
  3. Ejemplo de uso:
    • Crea una muestra de grid 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 ninguna 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 peticiones 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 le proporciones el siguiente contexto:

  • Qué incluir en el discurso.
  • No se necesita contexto adicional.
Instrucciones del sistema Qué incluir en el discurso Sin contexto adicional

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

  • Evento
  • Tamaño de la audiencia
  • Información del interlocutor (nombre, edad, etc.)
  • Tono de voz
  • Longitud del discurso
  • Varios

Si el usuario no proporciona toda esta información, responde con "Lo siento, pero no tengo toda la información necesaria para crear un discurso. Proporciona el evento, el tamaño de la audiencia, la información del ponente, el tono, la duración y cualquier otra información pertinente".

Estos son algunos aspectos generales que debes incluir:

  • Pausas
  • Un gancho interesante
  • Una observación final para que el discurso sea memorable
  • Un chiste

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

  • Evento
  • Tamaño de la audiencia
  • Información del interlocutor (nombre, edad, etc.)
  • Tono de voz
  • Longitud del discurso
  • Varios

Si el usuario no proporciona toda esta información, responde con "Lo siento, pero no tengo toda la información necesaria para crear un discurso. Proporciona el evento, el tamaño de la audiencia, la información del ponente, el tono, la duración y cualquier otra información pertinente".

Petición

Evento: graduación de secundaria

Tamaño de la audiencia: 1000 personas

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

Tono: nostálgico y optimista

Longitud del discurso: entre 250 y 500 palabras

Información variada: Michael fue el 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 va a ir a la Universidad Estatal de Los Caminos para estudiar economía e inglés. Nunca ha dado un discurso y está nervioso por su dislexia.

Respuesta

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

(Pausa)

Estar aquí y veros a todos es surrealista. Ayer mismo é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 caigo al llevar mi libro de historia. ¡Menos mal que no me he caído, porque habría sido un desastre que habría quedado para la historia de [nombre del instituto]!

(Pausa para las risas)

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

Estos últimos cuatro años han sido increíbles y debo gran parte de mi crecimiento a algunos profesores excepcionales. Quiero dar las gracias especialmente a la señora Martin, mi profesora de inglés de tercer año, que me enseñó que las palabras tienen poder y que, incluso con dislexia, puedo encontrar mi voz. Gracias, señora Martín.

(Pausa)

Ahora, estamos al borde de algo nuevo y emocionante. Ahora que vamos a ir a diferentes universidades, ciudades e incluso países, llevemos con nosotros las lecciones que hemos aprendido en [Nombre del instituto]. Recordemos las risas, las amistades e incluso las noches en vela antes de un examen importante.

(Pausa)

Graduados, el mundo nos espera. Afrontémoslo con valentía, optimismo y el apoyo incondicional de la increíble promoción del 2023. ¡Enhorabuena a todos! Y recordad que lo mejor está por llegar.

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

Es extraño estar aquí delante de vosotros, no solo como Michael Landish, sino como vuestro delegado de clase. Durante los últimos cuatro años, estos pasillos han sido nuestro campo de pruebas, llenos de risas, sesiones de estudio hasta altas horas de la noche (algunas con más éxito que otras) y suficientes recuerdos compartidos como para durar toda una vida. Hemos crecido juntos entre estas paredes y ahora, cuando estamos al borde de algo nuevo y desconocido, es difícil no sentirse un poco abrumado.

Si echamos la vista atrás, parece que fue ayer cuando éramos estudiantes de primer año, nos movíamos por pasillos abarrotados y tratábamos de encontrar nuestro lugar. Ahora, al veros a todos, me doy cuenta de lo lejos que hemos llegado. Nos hemos animado mutuamente en las victorias y nos hemos ofrecido apoyo en los momentos difíciles. Hemos aprendido de nuestros errores, celebrado nuestros triunfos y, lo que es más importante, hemos forjado lazos de amistad que sé que durarán toda la vida.

Quiero dar las gracias especialmente a la señora Martin, mi profesora de inglés de tercer año, por su paciencia y orientación. Tu confianza en mí, sobre todo cuando tenía dificultades, me ayudó a encontrar mi voz no solo como alumna, sino también como persona. Gracias.

Ahora, vamos a dar el siguiente paso. Algunos, como yo, iremos a la Universidad Estatal de Los Caminos, deseando sumergirnos en el mundo de la economía y, sí, incluso en más inglés. Otros seguirán caminos diferentes, igualmente válidos y emocionantes. Aunque nuestros caminos puedan divergir, recordemos siempre las lecciones que hemos aprendido y las amistades que hemos forjado entre estas paredes. Llevémonos con nosotros el espíritu de la promoción del [Año]: el espíritu de resiliencia, determinación y apoyo incondicional mutuo.

¡Enhorabuena a la promoción! Estoy deseando ver las cosas increíbles que vamos a conseguir.

Siguientes pasos