Istruzioni di sistema

Questo documento descrive cosa sono le istruzioni di sistema e le best practice per scrivere istruzioni di sistema efficaci. Per scoprire come aggiungere istruzioni di sistema ai tuoi 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. Ti consigliamo di utilizzare le istruzioni di sistema per indicare al modello come deve comportarsi e rispondere ai prompt. 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, ti consigliamo di utilizzare le istruzioni di sistema per eseguire una o più delle seguenti azioni:

  • Definisci un profilo o un ruolo
  • Definisci il 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 scrivere i loro compiti. Confronta la differenza nelle risposte del modello quando definisci i seguenti ruoli:

  • Sei un bot che ha il compito di insegnare agli studenti universitari come scrivere un documento su un determinato argomento.
  • Sei un bot, il cui compito è aiutare gli studenti della scuola primaria a scrivere un tema su un determinato argomento.
Istruzioni di sistema Bot per studenti universitari Bot per studenti delle scuole elementari
Sei un bot con il compito di insegnare agli studenti universitari come scrivere un documento 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 Oggetto: Fotosintesi Oggetto: Fotosintesi
Risposta

Scrivere un documento sulla fotosintesi: una guida per gli 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 questo compito:

  1. Scegliere una modalità di full immersion:
    • 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, 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: utilizza riviste accademiche, fonti online attendibili e libri di testo. Evita di fare affidamento esclusivamente su Wikipedia o su siti web generici.
    • Ricerca per parole chiave: utilizza parole chiave come "fotosintesi", "cloroplasti", "clorofilla", "reazioni dipendenti dalla luce", "ciclo di Calvin" e così via.
    • Prendere appunti: organizza la tua ricerca prendendo appunti dettagliati e riassumendo i punti chiave, assicurandoti di citare correttamente le fonti.
  3. Delineare e strutturare il documento:
    • 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 deve concentrarsi su una singola idea e fornire prove a sostegno.
    • Conclusione:
      • Riassumi i punti principali e riformula la tesi.
      • Discuti le implicazioni delle tue scoperte e suggerisci direzioni di ricerca future.
  4. Scrittura e modifica:
    • Linguaggio chiaro e conciso: utilizza un linguaggio chiaro e conciso, evitando tecnicismi, a meno che non siano necessari.
    • Argomentazioni basate su prove: supporta le tue affermazioni con prove ottenute dalla tua ricerca.
    • Citazione corretta: utilizza uno stile di citazione coerente (MLA, APA, Chicago) in tutto il documento.
    • Correzione bozza e modifica: correggi attentamente la bozza e modifica il tuo articolo per eliminare errori grammaticali, ortografici e di punteggiatura.
  5. Suggerimenti aggiuntivi:
    • Ausili visivi: utilizza diagrammi, grafici o tabelle per illustrare concetti complessi.
    • Case study: se applicabile, includi case study pertinenti per dimostrare le applicazioni reali della fotosintesi.
    • Collegamento personale: trova un modo per collegare l'argomento ai tuoi interessi o alle tue esperienze.

Esempi di titoli di documenti:

  • 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 del cambiamento climatico 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 documento al riguardo:

  1. Pensa a ciò che già sai:
    • Che cos'è la fotosintesi?
    • Cosa serve a una pianta per effettuare la fotosintesi?
    • Cosa produce una pianta durante la fotosintesi?
    • Conosci qualche curiosità sulla fotosintesi?
  2. Ricerca e scopri di più:
    • 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 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 della fotosintesi" o "Come le piante producono il proprio cibo".
    • Introduzione: inizia con una frase che attiri l'attenzione del lettore. Spiega in termini semplici che cos'è la fotosintesi.
    • Corpo principale: dividi il documento 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 il cibo) e ossigeno.
      • Perché la fotosintesi è importante: fornisce cibo a noi e agli animali e pulisce l'aria.
    • Conclusione: riepiloga ciò che hai imparato sulla fotosintesi. Puoi anche condividere il tuo fatto preferito o una domanda che hai ancora.
  4. Scrivi il tuo documento:
    • Utilizza un linguaggio chiaro e semplice.
    • Non aver paura di usare immagini o disegni per spiegare le cose.
    • Controlla che non siano presenti errori di ortografia e grammatica.
  5. Personalizzalo come preferisci.
    • Aggiungi un tocco personale al tuo documento.
    • Condividi un'esperienza o un'osservazione che hai fatto sulle piante.
    • Disegna un diagramma che mostri come funziona la fotosintesi.

Ricorda: sei tu l'esperto del tuo documento. 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.

Supponiamo ad esempio di voler utilizzare un modello per riepilogare le recensioni dei clienti per la tua attività. Confronta la differenza 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 per attività 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 3-5 frasi di consigli all'attività su come migliorare.
  • Sii conciso.
  • Attieniti ai fatti.
  • Non inventare informazioni.
  • Se ci sono opinioni contrastanti, includi solo quella registrata più spesso.
  • Non includere informazioni non pertinenti.
  • Non menzionare i revisori per nome.

Sei un professionista delle pubbliche relazioni per attività 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 inventare informazioni.
  • Se ci sono opinioni contrastanti, includi solo quella registrata più spesso.
  • 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 appena entri. È quasi come se fossi in trance. Non devi preoccuparti di NIENTE. Gli operai hanno il tuo programma e ti guidano durante l'esperienza. Tutto quello 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 trovarsi in un altro mondo. È un po' costoso, però.

Visualizza prompt completo

Lisa Simmens: 5 stelle

Ci siamo divertiti molto. Io e la mia migliore amica ci siamo regalate una giornata alla 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 ai servizi di alta qualità e alla puntualità per ogni appuntamento, sono stati davvero i migliori. Torneremo presto. P.S. Prova il trattamento esfoliante per tutto il corpo.

Allie Wood: 2 stelle

Nonostante gli operatori siano stati eccezionali nel servizio clienti, il mio massaggio è stato DOLOROSO e il mio trattamento viso mi ha BRUCIATO. Inoltre, non ti hanno permesso di avere il tuo cellulare, il che causa ulteriore stress. L'atmosfera era tranquilla e rilassante, ma non avere il cellulare 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 servizi che ho ricevuto sono stati i migliori che abbia mai avuto. MA non hanno offerto alcun tipo di ristoro. Voglio dire, dai, almeno dovresti offrire dell'acqua.

Martin Wong: 4 stelle

Esperienza fantastica. L'unica cosa che mi manca è non poter controllare il mio smartphone.

Debbie Ruiz: 5 stelle

Ambiente straordinario. Lavoratori straordinari. Servizi straordinari. Inoltre, non è consentito l'uso di telefoni cellulari, il che è stato molto liberatorio e ha contribuito a creare un'atmosfera tranquilla. Lo consiglio vivamente a tutti.

Lucy Mantel: 1 stella

Nessun rinfresco. Nessun cellulare. Massaggio non riuscito. 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 gli ospiti per accedere ai loro smartphone, se necessario, e di fornire acqua o una selezione limitata di bevande gratuite.

Pro: la spa offre un'atmosfera tranquilla e rilassante con servizi di alta qualità. I clienti elogiano l'eccezionale assistenza clienti fornita dal personale.

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

Stile e tono

Puoi influenzare la risposta di un modello definendo lo stile e il tono dell'output, come la verbosità, la formalità e il livello di lettura target, nelle istruzioni di sistema.

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

  • Professionale
  • Informale
Istruzioni di sistema Professionale Informale

Sei un autore di proposte governative. Ti viene chiesto di 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:

  • La grande idea:
  • La sfida
  • La soluzione
  • Pubblico di destinazione
  • Messaggio chiave
  • Canali
  • Contenuti in evidenza
  • Risultati previsti
  • Perché noi
  • Call to action

Sei un autore di proposte governative. Ti viene chiesto di 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:

  • La grande idea:
  • La sfida
  • La soluzione
  • Pubblico di destinazione
  • Messaggio chiave
  • Canali
  • Contenuti in evidenza
  • 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. Mi rivolgerò a persone attente all'ambiente di età compresa tra i 20 e i 45 anni, tra cui studenti, professionisti e famiglie, fornendo contenuti didattici e organizzando eventi guidati dalla comunità su Facebook e X. Il mio obiettivo è aumentare la consapevolezza pubblica e incoraggiare miglioramenti misurabili nei comportamenti ecologici. 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: consentire alle persone di età compresa tra 20 e 45 anni di adottare uno stile di vita sostenibile attraverso esperienze digitali interattive e coinvolgimento della community.

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 i 20 e i 45 anni, tra cui 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 previsti: maggiore consapevolezza delle pratiche di vita sostenibile 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à una cosa cool. Utilizzando sfide interattive e contenuti coinvolgenti, ispireremo azioni concrete, trasformando la vita ecocompatibile da un compito 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. Pensa a quiz interattivi, infografiche condivisibili e meetup locali.

Pubblico di destinazione: ci concentriamo su persone attente all'ambiente di età compresa tra 20 e 45 anni, studenti, professionisti e famiglie, che vogliono fare la differenza.

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

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

Contenuti in evidenza: aspettati un mix di contenuti informativi e condivisibili, tra cui infografiche accattivanti, video che stimolano la riflessione, suggerimenti rapidi e storie di successo che ispirano.

Risultati previsti: misureremo il successo in base all'aumento del coinvolgimento (Mi piace, condivisioni, commenti) e del traffico sul sito web, con l'obiettivo finale di ottenere un aumento misurabile dei comportamenti rispettosi dell'ambiente all'interno del nostro pubblico di destinazione.

Perché noi: il nostro team combina competenze di marketing digitale con una vera passione per la sostenibilità, dando vita a una campagna di grande impatto e coinvolgente.

Invito all'azione: partecipa anche tu! Segui la nostra pagina, partecipa alle nostre sfide e condividi il tuo percorso di vita sostenibile con la tua rete.

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 nella griglia.
    • Coordinate dei negozi (x, y), nodo principale, g (costo dall'inizio) e h (euristica fino alla fine).
    • __lt__ consente di confrontare i nodi per la coda con 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 grid di esempio 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

Puoi influenzare il modo in cui un modello risponde ai prompt 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, 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."

Alcuni elementi generali da includere sono:

  • Interruzioni per la pausa
  • Un incipit intrigante
  • Un commento conclusivo per rendere il discorso memorabile
  • Una barzelletta

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, 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: diploma di scuola superiore

Dimensione del segmento di pubblico: 1000 persone

Informazioni sull'oratore: 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, a guardarvi tutti, mi sembra surreale. Solo ieri eravamo matricole, con gli occhi sgranati e un po' terrorizzati. Ricordi l'ansia del primo giorno? Io sì. Ho quasi inciampato e sono 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 la perseveranza, l'amicizia e l'importanza di un post-it ben posizionato durante la settimana degli esami.

Questi ultimi 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, Sig. ra Martin.

(Pausa)

Ora ci troviamo di fronte a 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 persino le notti insonni prima di un esame importante.

(Pausa)

Neolaureati, il mondo ci aspetta. Affrontiamolo 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, colleghi laureati 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 campo di prova, pieno di risate, sessioni di studio a tarda notte (alcune più riuscite di altre) e ricordi condivisi che dureranno tutta la vita. 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 particolare la professoressa Martin, la mia insegnante di inglese del terzo anno, per la sua pazienza e la sua guida. La tua fiducia in me, soprattutto quando avevo difficoltà, mi ha aiutato a trovare la mia voce non solo come studente, ma come persona. Grazie.

Ora inizia il nostro prossimo capitolo. Alcuni, come me, andranno alla Los Caminos State University, ansiosi di approfondire il mondo dell'economia e, sì, anche dell'inglese. Altri seguiranno percorsi diversi, altrettanto validi ed entusiasmanti. Anche se i nostri percorsi potrebbero divergere, ricordiamo sempre le lezioni che abbiamo imparato e le amicizie che abbiamo stretto tra queste mura. Portiamo con noi lo spirito della classe del [anno], lo spirito di resilienza, determinazione e sostegno incrollabile l'uno per l'altro.

Congratulazioni a tutti i laureati! Non vedo l'ora di scoprire le cose straordinarie che realizzeremo.

Passaggi successivi