Istruzioni di sistema

Questo documento descrive che cosa sono le istruzioni di sistema e le best practice per la loro stesura efficace. 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. Ti consigliamo di utilizzare le istruzioni di sistema per indicare al modello come vuoi che si comporti e risponda 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 quando vuoi fornire al modello informazioni che un utente finale non può vedere o modificare. In questo modo, puoi fornire al modello un contesto aggiuntivo per comprendere l'attività, fornire risposte più personalizzate e rispettare linee guida specifiche durante l'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 le istruzioni di sistema sono impostate, si applicano all'intera richiesta. Le istruzioni di sistema funzionano su più turni di utenti e modelli se 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.

Modelli supportati

I seguenti modelli supportano le istruzioni di sistema:

  • Tutte le versioni del modello Gemini 1.5 Pro
  • Tutte le versioni del modello Gemini 1.5 Flash
  • Versione Gemini 1.0 Pro gemini-1.0-pro-002

Casi d'uso

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

  • Definisci un profilo o un ruolo
  • Definisci il formato di output
  • Definisci lo stile e il tono dell'output
  • Definisci obiettivi o regole per l'attività
  • Fornisci ulteriore contesto per il prompt

Persona o ruolo

Puoi influenzare la risposta di un modello ai prompt definendo una persona o un ruolo nelle istruzioni di sistema.

Ad esempio, supponiamo che tu voglia utilizzare un modello per aiutare gli studenti a scrivere i compiti. Confronta la differenza nelle risposte del modello quando definisci i seguenti ruoli:

  • Sei un bot con il compito di insegnare agli studenti universitari a scrivere un tema su un determinato argomento.
  • Sei un bot incaricato di aiutare gli studenti delle scuole elementari a scrivere un tema 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 incaricato di aiutare gli scolari della scuola primaria a scrivere un tema su un determinato argomento.
Prompt Oggetto: Fotosintesi Oggetto: Fotosintesi
Risposta

Scrivere un saggio 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 consente di approfondire le sue complessità e comprenderne il significato. Ecco un'analisi di come affrontare questa tarefa:

  1. Scelta di un obiettivo:
    • Panoramica generale: potresti fornire una panoramica completa della fotosintesi, che ne descriva le fasi, i requisiti, i sottoprodotti e il ruolo nell'ecosistema.
    • Aspetto specifico: scegli un aspetto specifico della fotosintesi da esaminare 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: confronta e contrappone diversi aspetti della fotosintesi in diversi organismi (piante, alghe, batteri).
  2. Ricerca e raccolta di informazioni:
    • Fonti attendibili: utilizza riviste accademiche, fonti online di buona reputazione e libri di testo. Evita di fare affidamento esclusivamente su Wikipedia o su siti web generici.
    • Ricerca di 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 approfonditi e riassumendo i punti chiave, assicurandoti di citare correttamente le fonti.
  3. Delineare e strutturare il tuo articolo:
    • Introduzione:
      • Presenta brevemente la fotosintesi e il suo significato.
      • Indica la tua tesi, delineando chiaramente l'argomento principale del tuo lavoro.
    • Paragrafi del corpo:
      • Sviluppare i punti in una sequenza logica, utilizzando le prove della tua ricerca.
      • Utilizza intestazioni e sottotitoli per organizzare il tuo lavoro e facilitarne la lettura.
      • Ogni paragrafo deve concentrarsi su una singola idea e fornire prove a supporto.
    • Conclusione:
      • Riassumi i punti principali e riformula la tesi.
      • Discuti le implicazioni dei tuoi risultati e suggerisci le direzioni future della ricerca.
  4. Scrittura e editing:
    • Linguaggio chiaro e conciso: usa un linguaggio chiaro e conciso, evitando i tecnicismi, a meno che non sia necessario.
    • Argomenti basati su prove: supporta le tue affermazioni con prove provenienti dalla tua ricerca.
    • Citazioni corrette: utilizza uno stile di citazione coerente (MLA, APA, Chicago) in tutto il lavoro.
    • Correzione bozza e modifica: correggi attentamente la bozza del compito per verificare la presenza di errori di grammatica, ortografia e 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.
    • Connessione 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: un 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 articolo ben scritto sulla fotosintesi deve essere chiaro, informativo e coinvolgente. Se segui questi passaggi e utilizzi una base di ricerca solida, puoi produrre un articolo efficace che dimostri la tua comprensione di questo processo biologico essenziale.

È un argomento interessante. La fotosintesi è estremamente importante per la vita sulla Terra. Ecco come scrivere un articolo in merito:

  1. Pensa a ciò che già sai:
    • Che cos'è la fotosintesi?
    • Cosa serve a una pianta per fare la fotosintesi?
    • Cosa produce una pianta durante la fotosintesi?
    • Sai qualche curiosità sulla fotosintesi?
  2. Fai ricerche e scopri di più:
    • Libri: nella tua raccolta puoi trovare libri su piante, natura o scienza.
    • Siti web: cerca siti web per bambini che spiegano la fotosintesi in modo semplice. Assicurati che i siti web siano affidabili (ad esempio quelli di National Geographic o della NASA).
    • Chiedi aiuto a una persona adulta: rivolgiti all'insegnante, al genitore o al bibliotecario per trovare informazioni.
  3. Organizza i tuoi pensieri:
    • Titolo: scegli un titolo accattivante per il tuo lavoro, ad esempio "Il sorprendente processo della fotosintesi" o "Come le piante producono il loro cibo".
    • Introduzione: inizia con una frase che attiri l'attenzione del lettore. Spiega in termini semplici che cos'è la fotosintesi.
    • Testo principale: suddividi il documento in paragrafi. Ogni paragrafo debe concentrarsi su un'idea chiave sulla fotosintesi:
      • Di cosa hanno bisogno le piante: luce solare, acqua, anidride carbonica.
      • Cosa producono le piante: zucchero (per il cibo) e ossigeno.
      • Perché la fotosintesi è importante: fornisce cibo per noi e per gli animali e purifica l'aria.
    • Conclusione: riepiloga 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 meglio le cose.
    • Controlla che il tuo lavoro non contenga errori ortografici e grammaticali.
  5. Aggiungi il tuo tocco personale.
    • Aggiungi un tocco personale al tuo lavoro.
    • Condividi un'esperienza o un'osservazione che hai fatto sulle piante.
    • Disegna un diagramma per mostrare come funziona la fotosintesi.

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

Formato di output

Puoi influenzare il modo in cui un modello formatta la 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 la differenza nelle risposte del modello quando definisci i seguenti formati di output:

  • Mostra la risposta in JSON. Alla fine, al di fuori dell'oggetto JSON, scrivi 3-5 frasi di consiglio 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 alto livello. Segui queste istruzioni e basa la tua risposta sull'input utente fornito.

Istruzioni:

  • Leggi le recensioni che ti sono state inviate.
  • Riepiloga i vantaggi e gli svantaggi dell'attività in base alle recensioni.
  • Mostra la risposta in JSON.
  • Infine, all'esterno dell'oggetto JSON, scrivi da 3 a 5 frasi di consigli per l'attività su come migliorare.
  • Mantieni i prompt concisi.
  • Attieniti ai fatti.
  • Non avere allucinazioni.
  • Se esistono opinioni contrastanti, includi solo quella più registrata.
  • Non includere informazioni irrilevanti.
  • Non menzionare i recensori per nome.

Sei un professionista delle pubbliche relazioni per attività di alto livello. Segui queste istruzioni e basa la tua risposta sull'input utente fornito.

Istruzioni:

  • Leggi le recensioni che ti sono state inviate.
  • Riepiloga i vantaggi e gli svantaggi dell'attività in base alle recensioni.
  • Mantieni i prompt concisi.
  • Attieniti ai fatti.
  • Non avere allucinazioni.
  • Se esistono opinioni contrastanti, includi solo quella più registrata.
  • Non includere informazioni irrilevanti.
  • Non menzionare i recensori per nome.
Prompt

Chad Brocker: 4 stelle

Questa spa è deliziosa. L'intera atmosfera ti fa rilassare appena entri. È quasi come se fossi in trance. Non devi preoccuparti di NIENTE. I lavoratori hanno il tuo programma e ti guidano nell'esperienza. Tutto ciò che ho ricevuto è stato fantastico. Il massaggio, il trattamento viso, il fango. Inoltre, hanno un divieto assoluto di cellulari, quindi sembra davvero di essere in un altro mondo. È un po' costoso, però.

Visualizza il prompt completo

Lisa Simmens: 5 stelle

Ci siamo divertiti molto. Io e la mia migliore amica ci siamo regalate una giornata in spa per i nostri compleanni. Ti dico che le nostre vite sono cambiate. Il personale fa di tutto per assicurarsi che tu possa usufruire della migliore esperienza possibile. Dalle domande ai servizi di alta qualità e all'assicurarsi che tu arrivi in tempo a ogni appuntamento, sono stati davvero i migliori. Torneremo presto. P.S.: prova il trattamento di esfoliazione totale del corpo.

Allie Wood: 2 stelle

Anche se il personale è stato fantastico per quanto riguarda l'assistenza clienti, il mio massaggio faceva male e il mio trattamento viso mi ha bruciato. Inoltre, non ti hanno permesso di avere il cellulare, il che causa ulteriore stress. L'atmosfera era tranquilla e rilassante, ma non avere il cellulare non mi ha permesso di rilassarmi. Inoltre, era costoso.

Suzy Michaels: 3 stelle

L'ambiente di questo spazio era fuori dal mondo. È davvero come entrare in paradiso. I tuoi servizi 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 straordinaria. Il mio unico problema è che non riesco a controllare il mio telefono.

Debbie Ruiz: 5 stelle

Ambiente fantastico. Lavoratori fantastici. Servizi fantastici. Inoltre, è un ambiente senza cellulari, il che è stato MOLTO rilassante e ha contribuito = a creare un'atmosfera tranquilla. Lo consiglio a tutti.

Lucy Mantel: 1 stella

Nessun rinfresco. Non sono ammessi cellulari. Massaggio scadente. Non è stata un'esperienza positiva. Non lo consiglio.

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

Anche se la spa ha ricevuto elogi per l'atmosfera tranquilla, il personale eccezionale e i servizi di alta qualità, ci sono alcuni aspetti che possono essere migliorati. Risolvere i dubbi dei clienti in merito al divieto rigoroso di utilizzo di cellulari e alla mancanza di rinfreschi potrebbe migliorare notevolmente l'esperienza complessiva. Valuta la possibilità di offrire un'area apposita per consentire agli ospiti di accedere ai propri telefoni, se necessario, e di offrire acqua o una selezione limitata di bevande in omaggio.

Vantaggi: la spa offre un'atmosfera tranquilla e rilassante con servizi di alta qualità. I clienti sono entusiasti dell'assistenza clienti eccezionale fornita dal personale.

Contro: il divieto di utilizzo di cellulari nella spa è un punto di contesa, per alcuni è un'aggiunta al relax, mentre per altri è stressante. Diversi recensori hanno ritenuto i prezzi elevati.

Stile e tono

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

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

  • Professionale
  • Informale
Istruzioni di sistema Professionale Informale

Sei un redattore di proposte governative. Devi elaborare proposte per le campagne future. In base al modello e all'input dell'utente, fornisci una proposta per la campagna imminente.

  • Non utilizzare internet.
  • Le risposte per ogni sezione non devono superare le 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
  • In evidenza
  • Risultati previsti
  • Perché noi
  • Invito all'azione

Sei un redattore di proposte governative. Devi elaborare proposte per le campagne future. In base al modello e all'input dell'utente, fornisci una proposta per la campagna imminente.

  • Non utilizzare internet.
  • Le risposte per ogni sezione non devono superare le 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
  • In evidenza
  • Risultati previsti
  • Perché noi
  • Invito all'azione
Prompt

Lo scopo di questa campagna è sensibilizzare e ispirare cambiamenti di comportamento attuabili in direzione della sostenibilità tramite l'uso di esperienze digitali interattive. Coinvolgerò persone consapevoli dell'ambiente di età compresa tra 20 e 45 anni, tra cui studenti, professionisti e famiglie, pubblicando contenuti didattici e organizzando eventi basati sulla community su Facebook e X. Il mio obiettivo è aumentare la consapevolezza pubblica e incoraggiare miglioramenti misurabili dei comportamenti eco-compatibili. Grazie alla mia esperienza nel marketing digitale e a un'attenzione particolare alla sostenibilità, progetterò una campagna di alto 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 di fondo: aiutare le persone di età compresa tra 20 e 45 anni a adottare un stile di vita sostenibile tramite esperienze digitali interattive e 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 offrire contenuti educativi e coinvolgenti e favorire il coinvolgimento della comunità tramite 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: piccole modifiche alle abitudini quotidiane possono avere un impatto positivo significativo sull'ambiente.

Canali: Facebook e X.

In evidenza: quiz interattivi, video didattici, sessioni di domande e risposte con esperti e sfide della community per promuovere pratiche sostenibili.

Risultati previsti: maggiore consapevolezza delle pratiche di vita sostenibile e miglioramenti misurabili dei comportamenti eco-compatibili all'interno del pubblico di destinazione.

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

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

L'idea di fondo: stiamo lanciando un movimento digitale per rendere la sostenibilità un'idea alla moda. Attraverso sfide interattive e contenuti coinvolgenti, inciteremo a un'azione concreta, trasformando la vita ecosostenibile da un'incombenza in un percorso condiviso.

La sfida: ammettiamolo, conoscere la sostenibilità e intervenire in modo concreto 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 dove si trova, su piattaforme come Facebook e X, per offrire una combinazione dinamica di contenuti didattici, sfide divertenti ed eventi basati sulla community. Ad esempio, quiz interattivi, infografiche condivisibili e meetup locali.

Pubblico di destinazione: ci concentriamo su persone consapevoli dell'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 tramite campagne coinvolgenti su Facebook e X.

In evidenza: contenuti: aspettati un mix di contenuti informativi e condivisibili, tra cui infografiche accattivanti, video stimolanti, suggerimenti rapidi e storie di successo stimolanti.

Risultati previsti: misureremo il successo tramite un aumento del coinvolgimento (Mi piace, condivisioni, commenti) e del traffico sul sito web, con l'obiettivo finale di un aumento misurabile dei comportamenti eco-compatibili all'interno del nostro pubblico di destinazione.

Perché scegliere noi: il nostro team combina le competenze di marketing digitale con una genuina passione per la sostenibilità, il risultato è una campagna efficace e coinvolgente.

Invito all'azione: partecipa al movimento. 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, cosa deve o non deve fare il modello, 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 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 codice, non includere alcuna docstring.
Prompt Crea un array 2D in Python e un algoritmo di ricerca di percorsi 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 del nodo:
    • Rappresenta una cella nella griglia.
    • Memorizza le coordinate (x, y), il nodo principale, g (costo dall'inizio) e h (euristica per la fine).
    • __lt__ consente di confrontare i nodi per la coda prioritaria (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 il recupero efficiente del nodo con il punteggio f più basso del open_list.
    • Esegue un loop fino a quando non viene trovato end o open_list è vuoto (nessun percorso).
    • Esplora i vicini, calcola i costi (g, h) e aggiorna il 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 che tu voglia utilizzare un modello per scrivere discorsi per eventi. Confronta la differenza nelle risposte del modello quando fornisci il seguente contesto:

  • Elementi da includere nel discorso.
  • Nessun contesto aggiuntivo.
Istruzioni di sistema Elementi 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'altoparlante (nome, età e così via)
  • Tono vocale
  • Lunghezza del parlato
  • 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 informazioni sull'evento, sul numero di spettatori, sull'oratore, sul tono, sulla durata ed eventuali informazioni varie."

Ecco alcuni elementi generali da includere:

  • Pausa per le interruzioni
  • Un incipit intrigante
  • Un commento finale 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'altoparlante (nome, età e così via)
  • Tono vocale
  • Lunghezza del parlato
  • 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 informazioni sull'evento, sul numero di spettatori, sull'oratore, sul tono, sulla durata ed eventuali informazioni varie."

Prompt

Evento: Diploma di scuola superiore

Dimensione del segmento di pubblico: 1000 persone

Informazioni sull'autore: Michael Landish, 17 anni

Tono: nostalgico, ottimista

Lunghezza del parlato: 250-500 parole

Varie: Michael era il presidente del gruppo di fine anno, il suo insegnante preferito era la signora Martin, insegnante di inglese del secondo anno, e frequenterà la 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 colleghi diplomati del 2023.

(Pausa)

Stare qui, guardandovi tutti, è un'esperienza surreale. Solo ieri eravamo matricole, sgranati e un po' spaventati. Ricordi i primi giorni di ansia? Lo so. Ho quasi inciampato e sono caduta con il mio testo di storia, un quasi disastro che sarebbe stato immortalato nella storia del [nome del liceo].

(Risate)

Ma ora guardati. Siamo cresciuti, abbiamo imparato molto e non mi riferisco solo al teorema di Pitagora. Abbiamo imparato sulla tenacia, sull'amicizia e sull'efficacia di un post-it ben posizionato durante la settimana degli esami.

Questi ultimi quattro anni sono stati fantastici e devo molto del mio percorso di crescita a degli insegnanti davvero eccezionali. In particolare, vorrei ringraziare 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 siamo sull'orlo di qualcosa di nuovo ed emozionante. Mentre ci recheremo in università diverse, in città diverse, persino in paesi diversi, portiamo con noi le lezioni che abbiamo imparato al [nome del liceo]. Ricordiamoci le risate, le amicizie e anche qualche occasionale notte insonne prima di un esame importante.

(Pausa)

Laureati, il mondo ci aspetta. Affrontiamolo a testa alta, con coraggio, ottimismo e con il supporto incrollabile della straordinaria classe del 2023 alle spalle. Congratulazioni a tutti e ricorda: il meglio deve ancora venire.

"Buongiorno, docenti, familiari, amici e, soprattutto, miei colleghi diplomati del corso [Anno]!

È strano stare qui davanti a voi, non solo come Michael Landish, ma come presidente del vostro corso. Negli ultimi quattro anni, questi corridoi sono stati il nostro campo di prova, pieno di risate, sessioni di studio notturne (alcune più riuscite di altre) e ricordi condivisi sufficienti per durare una vita intera. Siamo cresciuti insieme tra queste mura, ora che siamo sull'orlo di qualcosa di nuovo e sconosciuto, è difficile non sentirsi un po' sopraffatti.

A ripensarci, sembra ieri che eravamo matricole impacciate, ci perdevamo nei corridoi affollati e cercavamo di capire dove eravamo finiti. Ora, guardandovi tutti, mi rendo conto di quanto abbiamo fatto. Ci siamo incoraggiati a vicenda nei momenti di vittoria e abbiamo offerto supporto nei momenti di difficoltà. Abbiamo imparato dai nostri errori, festeggiato i nostri trionfi e, cosa più importante, abbiamo stretto legami di amicizia che so 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 avevo difficoltà, mi ha aiutato a trovare la mia voce non solo come studente, ma come persona. Grazie.

Ora iniziamo il prossimo capitolo. Alcuni, come me, andranno alla Los Caminos State University, desiderosi di approfondire i mondi dell'economia e, sì, anche dell'inglese. Altri seguiranno percorsi diversi, ugualmente validi ed entusiasmanti. Anche se i nostri percorsi potrebbero divergere, ricorda sempre le lezioni che abbiamo imparato e le amicizie che abbiamo forgiato tra queste mura. Portiamo con noi lo spirito della classe [Anno], lo spirito di resilienza, determinazione e sostegno reciproco.

Congratulazioni alla classe che si diploma! Non vedo l'ora di scoprire tutte le cose incredibili che riusciremo a realizzare.

Passaggi successivi