Istruzioni di sistema

Questo documento descrive cosa sono le istruzioni di sistema e le migliori pratiche per scrivere istruzioni di sistema efficaci. Per scoprire come aggiungere istruzioni di sistema ai prompt, consulta Utilizzare le istruzioni di sistema.

Le istruzioni di sistema sono un insieme di istruzioni che il modello elabora prima di elaborare i prompt. Si consiglia di utilizzare le istruzioni di sistema per indicare al modello come si desidera che si comporti e risponda ai comandi. Ad esempio, puoi includere elementi come una persona da adottare, informazioni contestuali e istruzioni di formattazione.

Le istruzioni di sistema sono particolarmente utili nei casi in cui vuoi fornire al modello informazioni che un utente finale non può vedere o modificare, il che può aiutarti a fornire al modello un contesto aggiuntivo per comprendere l'attività, fornire risposte più personalizzate e rispettare linee guida specifiche sull'intera interazione dell'utente con il modello. Inoltre, le istruzioni di sistema sono utili quando vuoi eseguire più prompt con lo stesso insieme di istruzioni.

Quando vengono impostate istruzioni di sistema, vengono applicate all'intera richiesta. Le istruzioni di sistema funzionano con più turni utente e modello quando sono incluse nel prompt. Sebbene le istruzioni di sistema siano separate dai contenuti del prompt, fanno comunque parte dei prompt complessivi e sono quindi soggette alle norme standard sull'utilizzo dei dati.

Casi d'uso

In genere, consigliamo di utilizzare le istruzioni di sistema per eseguire una o più delle seguenti azioni:

  • Definire una persona o un ruolo
  • Definisci formato di output
  • Definisci lo stile e il tono dell'output
  • Definisci gli obiettivi o le regole per l'attività
  • Fornire ulteriore contesto per il prompt

Utente tipo o ruolo

Puoi influenzare il modo in cui un modello risponde ai prompt definendo un personaggio o un ruolo nelle istruzioni di sistema.

Ad esempio, supponiamo di voler utilizzare un modello per aiutare gli studenti a insegnare come scrivere un elaborato. Confronta la differenza nelle risposte del modello quando definisci i seguenti ruoli:

  • Sei un bot con il compito di insegnare agli studenti universitari come scrivere un documento su un determinato argomento.
  • Sei un bot incaricato di aiutare gli studenti della scuola primaria a scrivere un documento su un determinato argomento.
Istruzioni di sistema Bot per studenti universitari Bot per studenti delle scuole elementari
Sei un bot, incaricato di insegnare agli studenti universitari come scrivere un saggio su un determinato argomento. Sei un bot con il compito di aiutare gli studenti della scuola primaria a scrivere un tema su un determinato argomento.
Prompt Argomento: Fotosintesi Argomento: Fotosintesi
Risposta

Scrivere un saggio sulla fotosintesi: una guida per studenti universitari

La fotosintesi è un processo affascinante e complesso che costituisce la base della vita sulla Terra. Scrivere un articolo su questo argomento può essere un'esperienza gratificante, che ti permette di approfondirne le complessità e comprenderne il significato. Ecco una suddivisione di come affrontare questa attività:

  1. Scegliere un ambito di specializzazione:
    • Panoramica generale: potresti fornire una panoramica completa della fotosintesi, trattando le sue fasi, i requisiti, i sottoprodotti e il suo ruolo nell'ecosistema.
    • Aspetto specifico: scegli un aspetto specifico della fotosintesi da esplorare in dettaglio, come ad esempio:
      • Il ruolo della luce nella fotosintesi.
      • I diversi tipi di fotosintesi (C3, C4, CAM).
      • L'impatto dei fattori ambientali sulla fotosintesi.
      • L'evoluzione della fotosintesi.
      • Le applicazioni della fotosintesi nella biotecnologia.
    • Studio comparativo: confrontare e contrapporre diversi aspetti della fotosintesi in diversi organismi (piante, alghe, batteri).
  2. Ricerca e raccolta di informazioni:
    • Fonti affidabili: consultare riviste accademiche, fonti online autorevoli e libri di testo. Evita di fare affidamento esclusivamente su Wikipedia o siti web generici.
    • Ricerca per parole chiave: utilizzare parole chiave come "fotosintesi", "cloroplasti", "clorofilla", "reazioni dipendenti dalla luce", "ciclo di Calvin", ecc.
    • Prendere appunti: organizza la tua ricerca prendendo appunti dettagliati e riassumendo i punti chiave, assicurandoti di citare correttamente le fonti.
  3. Strutturare e delineare il proprio elaborato:
    • Introduzione:
      • Introduci brevemente la fotosintesi e la sua importanza.
      • Indica la tua tesi, delineando chiaramente l'argomento principale del tuo documento.
    • Paragrafi del corpo:
      • Sviluppa i tuoi punti in una sequenza logica, utilizzando le prove della tua ricerca.
      • Utilizza titoli e sottotitoli per organizzare il documento e renderlo più facile da leggere.
      • Ogni paragrafo dovrebbe concentrarsi su un'unica idea e fornire prove a sostegno.
    • Conclusione:
      • Riassumi i punti principali e ribadisci la tua tesi.
      • Discuti le implicazioni delle tue scoperte e suggerisci direzioni di ricerca future.
  4. Scrittura e revisione:
    • Linguaggio chiaro e conciso: usa un linguaggio chiaro e conciso, evitando tecnicismi, a meno che non siano necessari.
    • Argomentazioni basate su prove: supporta le tue affermazioni con prove tratte dalla tua ricerca.
    • Citazione corretta: utilizza uno stile di citazione coerente (MLA, APA, Chicago) in tutto il documento.
    • Correzione bozza e modifica: rileggi e modifica attentamente il tuo documento per correggere errori grammaticali, ortografici e di punteggiatura.
  5. Altri suggerimenti:
    • Ausili visivi: utilizza diagrammi, grafici o tabelle per illustrare concetti complessi.
    • Casi di studio: Se applicabile, includere casi di studio pertinenti per dimostrare le applicazioni concrete della fotosintesi.
    • Collegamento personale: trova un modo per collegare l'argomento ai tuoi interessi o alle tue esperienze.

Esempi di titoli di articoli:

  • Il ruolo dell'intensità della luce nella fotosintesi: uno studio comparativo
  • L'evoluzione della fotosintesi: dalle prime forme di vita alle piante moderne
  • Sfruttare la fotosintesi: il potenziale della biotecnologia
  • L'impatto dei cambiamenti climatici sulla fotosintesi: una prospettiva globale

Ricorda: un documento ben scritto sulla fotosintesi deve essere chiaro, informativo e coinvolgente. Se segui questi passaggi e utilizzi una solida base di ricerca, puoi produrre un documento efficace che dimostri la tua comprensione di questo processo biologico essenziale.

È un ottimo argomento. La fotosintesi è fondamentale per la vita sulla Terra. Ecco come puoi scrivere un articolo al riguardo:

  1. Pensa a ciò che già sai:
    • Che cos'è la fotosintesi?
    • Di cosa ha bisogno una pianta per svolgere la fotosintesi?
    • Cosa produce una pianta durante la fotosintesi?
    • Conosci qualche curiosità sulla fotosintesi?
  2. Approfondisci l'argomento:
    • Libri: consulta la tua raccolta per trovare libri su piante, natura o scienza.
    • Siti web: cerca siti web per bambini che spieghino la fotosintesi in modo semplice. Assicurati che i siti web siano affidabili (ad esempio quelli di National Geographic o della NASA).
    • Chiedi a un adulto: chiedi all'insegnante, al genitore o al bibliotecario di aiutarti a trovare informazioni.
  3. Organizza i tuoi pensieri:
    • Titolo: scegli un titolo accattivante per il tuo documento, ad esempio "L'incredibile processo di fotosintesi" o "Come le piante producono il proprio cibo".
    • Introduzione: inizia con una frase che catturi l'attenzione del lettore. Spiega in termini semplici che cos'è la fotosintesi.
    • Corpo principale: Dividi il tuo elaborato in paragrafi. Ogni paragrafo deve concentrarsi su un'idea chiave della fotosintesi:
      • Cosa serve alle piante: luce solare, acqua, anidride carbonica.
      • Cosa producono le piante: zucchero (per nutrirsi) e ossigeno.
      • Perché la fotosintesi è importante: fornisce cibo a noi e agli animali e pulisce l'aria.
    • Conclusione: Riassumi ciò che hai imparato sulla fotosintesi. Puoi anche condividere la tua curiosità preferita o una domanda che hai ancora.
  4. Scrivi il tuo articolo:
    • Utilizza un linguaggio chiaro e semplice.
    • Non aver paura di usare immagini o disegni per spiegare le cose.
    • Controlla il tuo lavoro per individuare eventuali errori di ortografia e grammatica.
  5. Personalizzalo come preferisci.
    • Aggiungi un tocco personale al tuo articolo.
    • Condividi un'esperienza o un'osservazione che hai fatto sulle piante.
    • Disegna un diagramma per illustrare il funzionamento della fotosintesi.

Ricorda: sei tu l'esperto del tuo articolo! Divertiti a imparare e a scrivere sulla fotosintesi.

Formato di output

Puoi influenzare il modo in cui un modello formatta la sua risposta definendo un formato di output, ad esempio Markdown o JSON, nelle istruzioni di sistema.

Ad esempio, supponiamo che tu voglia utilizzare un modello per riepilogare le recensioni dei clienti per la tua attività. Confronta le differenze nelle risposte del modello quando definisci i seguenti formati di output:

  • Restituisci la risposta in formato JSON. Alla fine, al di fuori dell'oggetto JSON, scrivi 3-5 frasi di consigli all'attività su come migliorare.
  • Nessun requisito di formattazione.
Istruzioni di sistema JSON Nessun requisito di formattazione

Sei un professionista delle pubbliche relazioni che lavora per aziende di fascia alta. Segui queste istruzioni e basa la tua risposta sull'input dell'utente fornito.

Istruzioni:

  • Leggi le recensioni che ti sono state inviate.
  • Riassumi i pro e i contro dell'attività in base alle recensioni.
  • Restituisci la risposta in formato JSON.
  • Alla fine, al di fuori dell'oggetto JSON, scrivi da 3 a 5 frasi di consigli per l'azienda su come migliorare.
  • Sii conciso.
  • Attieniti ai fatti.
  • Non avere allucinazioni.
  • In caso di opinioni contrastanti, includere solo l'opinione più frequentemente registrata.
  • Non includere informazioni non pertinenti.
  • Non menzionare i revisori per nome.

Sei un professionista delle pubbliche relazioni che lavora per aziende di fascia alta. Segui queste istruzioni e basa la tua risposta sull'input dell'utente fornito.

Istruzioni:

  • Leggi le recensioni che ti sono state inviate.
  • Riassumi i pro e i contro dell'attività in base alle recensioni.
  • Sii conciso.
  • Attieniti ai fatti.
  • Non avere allucinazioni.
  • In caso di opinioni contrastanti, includere solo l'opinione più frequentemente registrata.
  • Non includere informazioni non pertinenti.
  • Non menzionare i revisori per nome.
Prompt

Chad Brocker: 4 stelle

Questa spa è stata deliziosa! L'intera atmosfera ti rilassa non appena entri. È quasi come se fossi in trance. Non devi preoccuparti di NIENTE. I lavoratori hanno il tuo programma e ti guidano durante l'esperienza. Tutto ciò che ho ricevuto era fantastico. Il massaggio, il trattamento viso, il bagno di fango. Inoltre, non è consentito l'uso di telefoni cellulari, quindi sembra davvero di essere in un altro mondo. È un po' costoso, però.

Visualizza prompt completo

Lisa Simmens: 5 stelle

Ci siamo divertiti moltissimo! Io e la mia migliore amica ci siamo regalate una giornata in una spa per i nostri compleanni. Quando te lo dirò, le nostre vite cambieranno. I dipendenti fanno di tutto per assicurarsi che tu abbia la migliore esperienza possibile. Dalle domande che mi poneva ai servizi di alta qualità e alla puntualità agli appuntamenti, è stato davvero il migliore. Torneremo presto. PS: concedetevi un trattamento esfoliante completo per tutto il corpo!

Allie Wood: 2 stelle

Sebbene i dipendenti fossero eccezionali nel servizio clienti, il mio massaggio era doloroso e il trattamento viso mi ha provocato bruciore. Inoltre, non ti hanno permesso di usare il cellulare, il che causa ulteriore stress. L'atmosfera era tranquilla e rilassante, ma non avere il cellulare con me mi ha impedito di rilassarmi. Inoltre, era costoso.

Suzy Michaels: 3 stelle

L'ambiente di questo spazio era fuori dal mondo. È come entrare in paradiso. I miei servizi sono stati i migliori che abbia mai avuto. MA non hanno offerto alcun tipo di ristoro. Insomma, dai, almeno offrite dell'acqua!

Martin Wong: 4 stelle

Esperienza fantastica. La mia unica lamentela è di non poter controllare il mio smartphone.

Debbie Ruiz: 5 stelle

Ambiente fantastico. Lavoratori straordinari. Servizi straordinari. Inoltre, è un ambiente senza cellulari, il che è stato davvero liberatorio e ha contribuito all'atmosfera di pace. Lo consiglio vivamente a tutti.

Lucy Mantel: 1 stella

Nessun rinfresco. Nessun cellulare. Massaggio sbagliato. Non è stata un'esperienza ottimale. Non consigliato.

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

Sebbene la spa abbia ricevuto elogi per la sua atmosfera tranquilla, il personale eccezionale e i servizi di prim'ordine, ci sono alcune aree di miglioramento. Rispondere ai dubbi dei clienti in merito alla rigorosa normativa che vieta l'uso dei cellulari e alla mancanza di rinfreschi potrebbe migliorare in modo significativo l'esperienza complessiva. Valuta la possibilità di offrire un'area designata per consentire agli ospiti di accedere ai propri smartphone, se necessario, e di fornire acqua o una selezione limitata di bevande senza costi.

Pro: la spa offre un'atmosfera tranquilla e rilassante con servizi di alta qualità. I clienti sono entusiasti dell'eccezionale servizio clienti offerto dallo staff.

Contro: la politica del centro benessere che vieta l'uso dei cellulari è un punto controverso, alcuni la trovano rilassante, altri stressante. Diversi revisori hanno ritenuto i prezzi elevati.

Stile e tono

È possibile influenzare la risposta di un modello definendone lo stile e il tono di output, come la verbosità, la formalità e il livello di lettura di destinazione, tramite le istruzioni di sistema.

Ad esempio, supponiamo di voler utilizzare un modello per redigere proposte per iniziative governative. Confronta la differenza nelle risposte del modello quando definisci i seguenti toni:

  • Professionale
  • Informale
Istruzioni di sistema Professionale Informale

Sei responsabile della scrittura di proposte per il governo. Il tuo compito è produrre proposte per campagne future. In base al modello e all'input dell'utente, fornisci una proposta per la prossima campagna.

  • Non utilizzare internet.
  • Mantieni le risposte per ogni sezione entro un massimo di due frasi.
  • Scrivi in tono professionale.
  • Fornisci le risposte in formato Markdown.

Modello di proposta:

  • L'idea principale:
  • La sfida
  • La soluzione
  • Pubblico di destinazione
  • Messaggio chiave
  • Canali
  • Punti salienti dei contenuti
  • Risultati previsti
  • Perché noi?
  • Call to action

Sei responsabile della scrittura di proposte per il governo. Il tuo compito è produrre proposte per campagne future. In base al modello e all'input dell'utente, fornisci una proposta per la prossima campagna.

  • Non utilizzare internet.
  • Mantieni le risposte per ogni sezione entro un massimo di due frasi.
  • Scrivi in tono informale.
  • Fornisci le risposte in formato Markdown.

Modello di proposta:

  • L'idea principale:
  • La sfida
  • La soluzione
  • Pubblico di destinazione
  • Messaggio chiave
  • Canali
  • Punti salienti dei contenuti
  • Risultati previsti
  • Perché noi?
  • Call to action
Prompt

Lo scopo di questa campagna è sensibilizzare e ispirare cambiamenti comportamentali attuabili verso la sostenibilità attraverso l'uso di esperienze digitali interattive. Coinvolgerò persone sensibili alle tematiche ambientali di età compresa tra i 20 e i 45 anni, inclusi studenti, professionisti e famiglie, offrendo contenuti educativi e organizzando eventi di comunità su Facebook e X. Il mio obiettivo è quello di accrescere la consapevolezza pubblica e incoraggiare miglioramenti tangibili nei comportamenti ecocompatibili. Sfruttando la mia esperienza nel marketing digitale e una forte attenzione alla sostenibilità, progetterò una campagna di grande impatto che consenta alle persone di apportare cambiamenti significativi e sostenibili nella loro vita quotidiana. Voglio che questa campagna crei contenuti vari e coinvolgenti, ma anche informativi.

Risposta

L'idea principale: dare alle persone di età compresa tra i 20 e i 45 anni gli strumenti per adottare uno stile di vita sostenibile attraverso esperienze digitali interattive e il coinvolgimento della comunità.

La sfida: molte persone non sono consapevoli delle azioni pratiche e quotidiane che possono intraprendere per promuovere la sostenibilità ambientale.

La soluzione: una campagna multipiattaforma che utilizza Facebook e X per fornire contenuti coinvolgenti ed educativi e favorire il coinvolgimento della community attraverso esperienze ed eventi interattivi.

Pubblico di destinazione: persone attente all'ambiente di età compresa tra 20 e 45 anni, inclusi studenti, professionisti e famiglie.

Messaggio chiave: piccoli cambiamenti nelle abitudini quotidiane possono avere un impatto positivo significativo sull'ambiente.

Canali: Facebook e X.

Contenuti in evidenza: quiz interattivi, video didattici, sessioni di domande e risposte con esperti e sfide della community che promuovono pratiche sostenibili.

Risultati attesi: maggiore consapevolezza delle pratiche di vita sostenibili e miglioramenti misurabili nei comportamenti ecocompatibili all'interno del pubblico di destinazione.

Perché noi: esperienza comprovata nel marketing digitale e passione per la promozione della sostenibilità, garantendo una campagna coinvolgente e di grande impatto.

Invito all'azione: unisciti alla campagna su Facebook e X per imparare, interagire e fare la differenza per un futuro sostenibile.

L'idea principale: stiamo lanciando un movimento digitale per rendere la sostenibilità alla moda. Attraverso sfide interattive e contenuti coinvolgenti, ispireremo azioni concrete, trasformando uno stile di vita ecocompatibile da un obbligo a un percorso condiviso.

La sfida: ammettiamolo, sapere qualcosa sulla sostenibilità e agire di conseguenza sono due cose diverse. Stiamo combattendo l'apatia e la mancanza di consapevolezza in merito a semplici cambiamenti quotidiani.

La soluzione: incontreremo il nostro pubblico sulle piattaforme che utilizza, come Facebook e X, per offrire un mix dinamico di contenuti didattici, sfide divertenti ed eventi guidati dalla community. Pensate a quiz interattivi, infografiche condivisibili e incontri locali!

Pubblico di riferimento: Ci rivolgiamo a persone attente all'ambiente di età compresa tra i 20 e i 45 anni - studenti, professionisti e famiglie - desiderose di fare la differenza.

Messaggio chiave: Piccoli passi, grande impatto! Hai il potere di creare un futuro più sostenibile attraverso semplici scelte quotidiane.

Canali: sfrutteremo la potenza del marketing sui social media attraverso campagne coinvolgenti su Facebook e X.

Punti salienti dei contenuti: Aspettatevi un mix di contenuti informativi e condivisibili, tra cui infografiche accattivanti, video stimolanti, consigli rapidi e storie di successo ispiratrici.

Risultati attesi: misureremo il successo attraverso un aumento del coinvolgimento (Mi piace, condivisioni, commenti) e del traffico sul sito web, puntando in definitiva a un incremento misurabile dei comportamenti ecocompatibili all'interno del nostro pubblico di destinazione.

Perché scegliere noi: Il nostro team unisce competenze di marketing digitale a una genuina passione per la sostenibilità, dando vita a campagne di grande impatto e coinvolgenti.

Invito all'azione: partecipa anche tu! Seguite la nostra pagina, partecipate alle nostre sfide e condividete il vostro percorso verso uno stile di vita sostenibile con la vostra rete di contatti.

Obiettivi e regole

Puoi influenzare la risposta di un modello definendo obiettivi o regole, in altre parole, ciò che il modello dovrebbe o non dovrebbe fare, nelle istruzioni di sistema.

Ad esempio, supponiamo che tu voglia utilizzare un modello per scrivere codice Python. Confronta la differenza nelle risposte del modello quando definisci le seguenti regole:

  • Quando generi il codice, assicurati di includere le docstring che spiegano gli input, gli output e l'utilizzo di ogni metodo.
  • Genera solo il codice, non includere docstring.
Istruzioni di sistema Docstring Nessuna docstring
Quando generi il codice, assicurati di includere le docstring che spiegano gli input, gli output e l'utilizzo di ogni metodo. Genera solo il codice, non includere docstring.
Prompt Crea un array bidimensionale in Python e un algoritmo di ricerca del percorso A* per identificare il percorso più breve tra due punti della griglia.
Risposta
    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."")
    

Spiegazione:

  1. Classe nodo:
    • Rappresenta una cella della griglia.
    • Memorizza le coordinate (x, y), il nodo padre, g (costo dall'inizio) e h (euristica per la fine).
    • __lt__ consente di confrontare i nodi per la coda di priorità (utilizzando heapq) in base a f = g + h.
  2. Funzione a_star:
    • Prende come input i punti grid, start e end.
    • Inizializza open_list (nodi da esplorare) e closed_list (nodi esplorati).
    • Utilizza heapq per recuperare in modo efficiente il nodo con il punteggio f più basso da open_list.
    • Esegue un loop finché non viene trovato end o open_list è vuoto (nessun percorso).
    • Esplora i vicini, calcola i costi (g, h) e aggiorna open_list.
    • Ricostruisce e restituisce il percorso quando viene raggiunto end.
  3. Esempio di utilizzo:
    • Crea un campione grid e definisce i punti start e end.
    • Chiama a_star per trovare il percorso.
    • Stampa il percorso più breve o indica se non esiste alcun percorso.
    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)
    

Contesto

È possibile influenzare il modo in cui un modello risponde ai comandi aggiungendo ulteriore contesto nelle istruzioni di sistema.

Ad esempio, supponiamo di voler utilizzare un modello per scrivere discorsi per eventi. Confronta la differenza nelle risposte del modello quando fornisci il seguente contesto:

  • Cose da includere nel discorso.
  • Nessun contesto aggiuntivo.
Istruzioni di sistema Cose da includere nel discorso Nessun contesto aggiuntivo

Aiuta l'utente a scrivere un discorso in base alle informazioni fornite:

  • Evento
  • Dimensione del segmento di pubblico
  • Informazioni sull'oratore (nome, età e così via)
  • Tono della voce
  • Durata del discorso
  • Vari

Se l'utente non fornisce tutte queste informazioni, si prega di rispondere con: "Mi dispiace, ma non dispongo di tutte le informazioni necessarie per creare un discorso. Fornisci l'evento, le dimensioni del pubblico, le informazioni sull'oratore, il tono, la durata e qualsiasi informazione varia."

Alcuni elementi generali da includere sono:

  • Interruzioni per la pausa
  • Un aggancio intrigante
  • Una considerazione finale per rendere il discorso memorabile
  • Una barzelletta

Aiuta l'utente a scrivere un discorso basandosi sulle informazioni fornite:

  • Evento
  • Dimensione del segmento di pubblico
  • Informazioni sull'oratore (nome, età e così via)
  • Tono della voce
  • Durata del discorso
  • Vari

Se l'utente non fornisce tutte queste informazioni, rispondi con "Mi dispiace, ma non ho tutte le informazioni necessarie per creare un discorso. Fornisci l'evento, le dimensioni del pubblico, le informazioni sull'oratore, il tono, la durata e qualsiasi informazione varia."

Prompt

Evento: Cerimonia di diploma della scuola superiore

Dimensione del segmento di pubblico: 1000 persone

Informazioni dello speaker: Michael Landish, 17 anni

Tono: nostalgico, ottimista

Lunghezza del discorso: 250-500 parole

Varie: Michael era il presidente della classe senior, la sua insegnante preferita era la sua insegnante di inglese del terzo anno, la signora Martin, e andrà alla Los Caminos State University per studiare economia e inglese. Non ha mai tenuto un discorso prima d'ora ed è nervoso a causa della sua dislessia.

Risposta

"Buongiorno a docenti, familiari, amici e, soprattutto, ai miei compagni laureati della classe del 2023.

(Pausa)

Stare qui, guardandovi tutti, mi sembra surreale. Solo ieri eravamo matricole, con gli occhi sgranati e un po' terrorizzati. Ricordi l'ansia del primo giorno? Io sì. Sono quasi caduto mentre portavo il mio libro di storia, un disastro che sarebbe stato immortalato nei corridoi della storia di [nome della scuola superiore].

(Pausa per le risate)

Ma sul serio, guardaci ora. Siamo cresciuti, abbiamo imparato molto – e non mi riferisco solo al teorema di Pitagora. Abbiamo imparato cosa significa la perseveranza, l'amicizia e il potere di un post-it ben posizionato durante la settimana degli esami.

Questi quattro anni sono stati fantastici e devo gran parte della mia crescita ad alcuni insegnanti davvero eccezionali. Vorrei ringraziare in particolare la signora Martin, la mia insegnante di inglese del terzo anno, che mi ha insegnato che le parole hanno potere e che, anche con la dislessia, posso trovare la mia voce. Grazie, signora Martin.

(Pausa)

Ora ci troviamo sull'orlo di qualcosa di nuovo ed entusiasmante. Mentre ci dirigiamo verso college diversi, città diverse e persino paesi diversi, portiamo con noi le lezioni che abbiamo imparato alla [nome della scuola superiore]. Ricordiamo le risate, le amicizie e anche le notti insonni prima di un esame importante.

(Pausa)

Laureati, il mondo vi aspetta. Affrontiamo la situazione a testa alta, con coraggio, ottimismo e il sostegno incrollabile della fantastica classe del 2023. Congratulazioni a tutti e ricordate: il meglio deve ancora venire.

Buongiorno, docenti, familiari, amici e, soprattutto, miei compagni di corso della classe del [Anno]!

È strano stare qui davanti a voi, non solo come Michael Landish, ma come presidente della classe. Negli ultimi quattro anni, questi corridoi sono stati il ​​nostro banco di prova, un luogo ricco di risate, sessioni di studio notturne (alcune più riuscite di altre) e ricordi condivisi sufficienti a durare una vita intera. Siamo cresciuti insieme tra queste mura e ora, mentre ci troviamo sull'orlo di qualcosa di nuovo e sconosciuto, è difficile non sentirsi un po' sopraffatti.

Se ci penso, sembra ieri che eravamo matricole impacciate, che si muovevano in corridoi affollati e cercavano di capire dove trovare il loro posto. E ora, guardandovi tutti, mi rendo conto di quanta strada abbiamo fatto. Ci siamo incoraggiati a vicenda nelle vittorie e ci siamo offerti supporto durante le battute d'arresto. Abbiamo imparato dai nostri errori, festeggiato i nostri trionfi e, cosa più importante, abbiamo stretto legami di amicizia che so che dureranno per tutta la vita.

Vorrei ringraziare in modo particolare la signora Martin, la mia insegnante di inglese del terzo anno, per la sua pazienza e la sua guida. La tua fiducia in me, soprattutto quando ero in difficoltà, mi ha aiutato a trovare la mia voce non solo come studente, ma anche come persona. Grazie.

Ora, ci apprestiamo ad affrontare il prossimo capitolo. Alcuni, come me, si dirigeranno alla Los Caminos State University, desiderosi di immergersi nel mondo dell'economia e, sì, anche in quello dell'inglese. Altri intraprenderanno percorsi diversi, altrettanto validi ed entusiasmanti. Anche se i nostri percorsi dovessero divergere, ricordiamo sempre le lezioni apprese e le amicizie nate tra queste mura. Portiamo con noi lo spirito della Classe del [Anno]: lo spirito di resilienza, determinazione e incrollabile sostegno reciproco.

Congratulazioni ai neolaureati! Non vedo l'ora di scoprire quali cose straordinarie riusciremo a realizzare.

Passaggi successivi