Petunjuk sistem

Dokumen ini menjelaskan apa yang dimaksud dengan petunjuk sistem dan praktik terbaik untuk menulis petunjuk sistem yang efektif. Untuk mempelajari cara menambahkan petunjuk sistem ke perintah Anda, lihat Menggunakan petunjuk sistem sebagai gantinya.

Petunjuk sistem adalah serangkaian petunjuk yang diproses model sebelum memproses perintah. Sebaiknya gunakan petunjuk sistem untuk memberi tahu model bagaimana Anda ingin model tersebut berperilaku dan merespons perintah. Misalnya, Anda dapat menyertakan hal-hal seperti persona yang akan digunakan, informasi kontekstual, dan petunjuk pemformatan.

Petunjuk sistem sangat berguna jika Anda ingin memberikan informasi kepada model yang tidak dapat dilihat atau diubah oleh pengguna akhir, yang dapat membantu Anda memberikan konteks tambahan kepada model untuk memahami tugas, memberikan respons yang lebih disesuaikan, mematuhi panduan tertentu selama interaksi pengguna lengkap dengan model. Selain itu, petunjuk sistem bermanfaat saat Anda ingin menjalankan beberapa perintah dengan kumpulan petunjuk yang sama.

Saat ditetapkan, petunjuk sistem akan berlaku untuk seluruh permintaan. Petunjuk sistem berfungsi di beberapa giliran pengguna dan model saat disertakan dalam perintah. Meskipun petunjuk sistem terpisah dari konten perintah, petunjuk tersebut masih merupakan bagian dari perintah Anda secara keseluruhan dan oleh karena itu tunduk pada kebijakan penggunaan data standar.

Model yang didukung

Model berikut mendukung petunjuk sistem:

  • Semua versi model Gemini 1.5 Pro
  • Semua versi model Gemini 1.5 Flash
  • Gemini 1.0 Pro versi gemini-1.0-pro-002

Kasus penggunaan

Secara umum, sebaiknya gunakan petunjuk sistem untuk melakukan satu atau beberapa hal berikut:

  • Menentukan persona atau peran
  • Menentukan format output
  • Menentukan gaya dan nuansa output
  • Menentukan sasaran atau aturan untuk tugas
  • Memberikan konteks tambahan untuk perintah

Persona atau peran

Anda dapat memengaruhi cara model merespons perintah dengan menentukan persona atau peran dalam petunjuk sistem.

Misalnya, Anda ingin menggunakan model untuk membantu mengajari siswa tentang menulis makalah. Bandingkan perbedaan respons model saat Anda menentukan peran berikut:

  • Anda adalah bot yang ditugaskan untuk mengajari mahasiswa cara menulis makalah tentang subjek tertentu.
  • Anda adalah bot yang ditugaskan untuk membantu siswa sekolah dasar tentang cara menulis makalah tentang subjek tertentu.
Petunjuk sistem Bot untuk mahasiswa Bot untuk siswa sekolah dasar
Anda adalah bot yang ditugaskan untuk mengajar mahasiswa perguruan tinggi tentang cara menulis makalah tentang subjek tertentu. Anda adalah bot yang ditugaskan untuk membantu siswa sekolah dasar tentang cara menulis makalah tentang subjek tertentu.
Perintah Subjek: Fotosintesis Subjek: Fotosintesis
Respons

Menulis Makalah tentang Fotosintesis: Panduan untuk Mahasiswa Perguruan Tinggi

Fotosintesis adalah proses yang menarik dan kompleks yang membentuk dasar kehidupan di Bumi. Menulis makalah tentang hal ini bisa menjadi pengalaman yang memuaskan, yang memungkinkan Anda mempelajari lebih dalam kerumitannya dan memahami signifikansinya. Berikut adalah perincian cara menangani tugas ini:

  1. Memilih Fokus:
    • Ringkasan Umum: Anda dapat memberikan ringkasan komprehensif tentang fotosintesis, yang mencakup tahapan, persyaratan, produk sampingan, dan perannya dalam ekosistem.
    • Aspek Tertentu: Pilih aspek fotosintesis tertentu untuk dijelajahi secara mendetail, seperti:
      • Peran cahaya dalam fotosintesis.
      • Berbagai jenis fotosintesis (C3, C4, CAM).
      • Dampak faktor lingkungan terhadap fotosintesis.
      • Evolusi fotosintesis.
      • Penerapan fotosintesis dalam bioteknologi.
    • Studi Komparatif: Membandingkan dan membedakan berbagai aspek fotosintesis pada berbagai organisme (tumbuhan, alga, bakteri).
  2. Riset dan Pengumpulan Informasi:
    • Sumber Tepercaya: Gunakan jurnal akademik, sumber online tepercaya, dan buku teks. Hindari hanya mengandalkan Wikipedia atau situs umum.
    • Penelusuran Kata Kunci: Gunakan kata kunci seperti "fotosintesis", "kloroplas", "klorofil", "reaksi yang bergantung pada cahaya", "siklus Calvin", dll.
    • Pencatatan: Atur riset Anda dengan membuat catatan yang menyeluruh dan meringkas poin-poin penting, dengan memastikan untuk mengutip sumber dengan benar.
  3. Menyusun Garis Besar dan Struktur Makalah:
    • Introduction:
      • Memperkenalkan fotosintesis dan signifikansinya secara singkat.
      • Nyatakan pernyataan tesis Anda, yang menguraikan argumen utama makalah Anda dengan jelas.
    • Paragraf Isi:
      • Kembangkan poin Anda dalam urutan yang logis, menggunakan bukti dari riset Anda.
      • Gunakan judul dan subjudul untuk mengatur makalah dan membuatnya lebih mudah dibaca.
      • Setiap paragraf harus berfokus pada satu ide dan memberikan bukti pendukung.
    • Kesimpulan:
      • Ringkas poin-poin utama dan nyatakan kembali tesis Anda.
      • Diskusikan implikasi temuan Anda dan sarankan arah riset mendatang.
  4. Menulis dan Mengedit:
    • Bahasa yang Jelas dan Ringkas: Gunakan bahasa yang jelas dan ringkas, hindari jargon kecuali jika diperlukan.
    • Argumen Berbasis Bukti: Dukung klaim Anda dengan bukti dari riset Anda.
    • Kutipan yang Benar: Gunakan gaya kutipan yang konsisten (MLA, APA, Chicago) di seluruh makalah Anda.
    • Pemeriksaan Tata Bahasa dan Pengeditan: Periksa tata bahasa, ejaan, dan tanda baca dengan cermat.
  5. Tips Tambahan:
    • Alat Bantu Visual: Gunakan diagram, grafik, atau bagan untuk mengilustrasikan konsep yang kompleks.
    • Studi Kasus: Jika ada, sertakan studi kasus yang relevan untuk menunjukkan penerapan fotosintesis di dunia nyata.
    • Koneksi Pribadi: Temukan cara untuk menghubungkan topik Anda dengan minat atau pengalaman Anda sendiri.

Contoh Judul Makalah:

  • Peran Intensitas Cahaya dalam Fotosintesis: Studi Komparatif
  • The Evolution of Photosynthesis: From Early Life to Modern Plants
  • Memanfaatkan Fotosintesis: Potensi Bioteknologi
  • Dampak Perubahan Iklim terhadap Fotosintesis: Perspektif Global

Ingat: Makalah tentang fotosintesis yang ditulis dengan baik harus jelas, informatif, dan menarik. Dengan mengikuti langkah-langkah ini dan memanfaatkan dasar riset yang kuat, Anda dapat menghasilkan makalah yang berhasil yang menunjukkan pemahaman Anda tentang proses biologis yang penting ini.

Subjek yang bagus. Fotosintesis sangat penting bagi kehidupan di Bumi. Berikut cara menulis makalah tentang hal ini:

  1. Pikirkan hal yang sudah Anda ketahui:
    • Apa yang dimaksud dengan fotosintesis?
    • Apa yang diperlukan tanaman untuk melakukan fotosintesis?
    • Apa yang dihasilkan tanaman selama fotosintesis?
    • Tahukah Anda fakta menarik tentang fotosintesis?
  2. Riset dan pelajari lebih lanjut:
    • Buku: Periksa perpustakaan Anda untuk menemukan buku tentang tanaman, alam, atau sains.
    • Situs: Cari situs untuk anak-anak yang menjelaskan fotosintesis dengan cara sederhana. Pastikan situs tersebut dapat diandalkan (seperti situs dari National Geographic atau NASA).
    • Meminta bantuan orang dewasa: Minta bantuan guru, orang tua, atau pustakawan untuk menemukan informasi.
  3. Atur pikiran Anda:
    • Judul: Pikirkan judul yang menarik untuk makalah Anda, seperti "Proses Fotosintesis yang Menakjubkan" atau "Cara Tanaman Membuat Makanannya Sendiri".
    • Pengantar: Mulailah dengan kalimat yang menarik perhatian pembaca. Jelaskan definisi fotosintesis dengan istilah sederhana.
    • Isi Utama: Bagilah makalah Anda menjadi beberapa paragraf. Setiap paragraf harus berfokus pada satu ide utama tentang fotosintesis:
      • Yang dibutuhkan tanaman: Sinar matahari, air, karbon dioksida.
      • Yang dihasilkan tanaman: Gula (untuk makanan) dan oksigen.
      • Alasan pentingnya fotosintesis: Fotosintesis menyediakan makanan bagi kita dan hewan, serta membersihkan udara.
    • Kesimpulan: Rangkum apa yang Anda pelajari tentang fotosintesis. Anda juga dapat membagikan fakta favorit atau pertanyaan yang masih Anda miliki.
  4. Tulis makalah Anda:
    • Gunakan bahasa yang jelas dan sederhana.
    • Jangan takut untuk menggunakan gambar atau gambar untuk membantu menjelaskan berbagai hal.
    • Periksa pekerjaan Anda untuk menemukan kesalahan ejaan dan tata bahasa.
  5. Buat sesuai keinginan Anda.
    • Tambahkan sentuhan pribadi pada makalah Anda.
    • Ceritakan pengalaman atau pengamatan yang Anda miliki tentang tanaman.
    • Gambar diagram untuk menunjukkan cara kerja fotosintesis.

Ingat: Anda adalah pakar dalam makalah Anda. Selamat belajar dan menulis tentang fotosintesis.

Format output

Anda dapat memengaruhi cara model memformat responsnya dengan menentukan format output, seperti Markdown atau JSON, dalam petunjuk sistem.

Misalnya, Anda ingin menggunakan model untuk meringkas ulasan pelanggan untuk bisnis Anda. Bandingkan perbedaan respons model saat Anda menentukan format output berikut:

  • Tampilkan respons Anda dalam JSON. Di bagian paling akhir, di luar objek JSON, tulis 3-5 kalimat saran untuk bisnis tentang cara meningkatkannya.
  • Tidak ada persyaratan pemformatan.
Petunjuk sistem JSON Tidak ada persyaratan pemformatan

Anda adalah profesional PR untuk bisnis kelas atas. Ikuti petunjuk ini, dan dasari respons Anda pada Input Pengguna yang diberikan.

Petunjuk:

  • Baca ulasan yang dikirimkan kepada Anda.
  • Rangkum kelebihan dan kekurangan bisnis berdasarkan ulasan.
  • Tampilkan respons Anda dalam JSON.
  • Di bagian paling akhir, di luar objek JSON, tulis 3 hingga 5 kalimat saran kepada bisnis tentang cara meningkatkan kualitas.
  • Buat ringkas.
  • Tetaplah pada fakta.
  • Tidak mengalami halusinasi.
  • Jika ada pendapat yang bertentangan, hanya sertakan pendapat yang paling sering dicatat.
  • Jangan sertakan informasi yang tidak relevan.
  • Jangan menyebutkan nama pengulas.

Anda adalah profesional PR untuk bisnis kelas atas. Ikuti petunjuk ini, dan dasari respons Anda pada Input Pengguna yang diberikan.

Petunjuk:

  • Baca ulasan yang dikirimkan kepada Anda.
  • Rangkum kelebihan dan kekurangan bisnis berdasarkan ulasan.
  • Buat ringkas.
  • Tetaplah pada fakta.
  • Tidak mengalami halusinasi.
  • Jika ada pendapat yang bertentangan, hanya sertakan pendapat yang paling sering dicatat.
  • Jangan sertakan informasi yang tidak relevan.
  • Jangan menyebutkan nama pengulas.
Perintah

Chad Brocker: 4 bintang

Spa ini menyenangkan! Seluruh suasana begitu Anda masuk akan membuat Anda rileks. Rasanya hampir seperti Anda sedang dalam trans. Anda tidak perlu khawatir tentang APA PUN. Pekerja memiliki jadwal Anda dan memandu Anda melalui pengalaman Anda. Semua yang saya dapatkan sangat luar biasa. Pijat, perawatan wajah, dan mandi lumpur. Selain itu, mereka memiliki kebijakan 0 ponsel seluler, sehingga benar-benar terasa seperti Anda berada di dunia yang sama sekali berbeda. Namun, harganya agak mahal.

Melihat perintah lengkap

Lisa Simmens: 5 bintang

Kami sangat menikmatinya. Saya dan sahabat saya memanjakan diri dengan hari spa untuk ulang tahun kami. Saat saya memberi tahu Anda, hidup kita akan berubah. Karyawan kami melakukan segala upaya untuk memastikan Anda mendapatkan pengalaman terbaik. Dari mengajukan pertanyaan kepada Anda hingga layanan berkualitas tinggi dan memastikan Anda tiba tepat waktu di setiap janji temu, mereka benar-benar yang terbaik. Kami akan segera kembali. Catatan: dapatkan perawatan pengelupasan seluruh tubuh.

Allie Wood: 2 bintang

Meskipun pekerjanya sangat baik dalam layanan pelanggan, pijat saya SAKIT dan perawatan wajah saya TERBAKAR. Selain itu, mereka tidak mengizinkan Anda membawa ponsel, yang menyebabkan stres tambahan. Suasananya tenang dan menenangkan, tetapi tidak memiliki ponsel membuat saya tidak dapat bersantai. Selain itu, harganya mahal.

Suzy Michaels: 3 bintang

Lingkungan ruang ini sangat luar biasa. Benar-benar seperti memasuki Surga. Layanan saya adalah yang terbaik yang pernah saya terima. NAMUN, mereka tidak menawarkan minuman apa pun. Maksud saya, setidaknya Anda harus menawarkan air?!

Martin Wong: 4 bintang

Pengalaman yang luar biasa. Satu-satunya keluhan saya adalah tidak dapat memeriksa ponsel saya.

Debbie Ruiz: 5 bintang

Lingkungan yang luar biasa. Pekerja yang luar biasa. Layanan yang luar biasa. Selain itu, lingkungannya bebas ponsel, yang sangat bebas dan menambah suasana damai. Saya sangat merekomendasikannya kepada semua orang!!!

Lucy Mantel: 1 bintang

Tidak ada makanan ringan. Tidak ada ponsel. Pijat yang buruk. Bukan pengalaman yang baik. Tidak merekomendasikan.

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

Meskipun spa ini telah menerima pujian karena suasananya yang tenang, staf yang luar biasa, dan layanan terbaik, ada beberapa area yang perlu ditingkatkan. Mengatasi kekhawatiran pelanggan terkait kebijakan ketat terkait larangan ponsel dan kurangnya minuman ringan dapat meningkatkan pengalaman secara keseluruhan secara signifikan. Pertimbangkan untuk menawarkan area khusus bagi tamu untuk mengakses ponsel mereka jika diperlukan, dan menyediakan air gratis atau pilihan minuman terbatas.

Kelebihan: Spa ini memberikan suasana yang tenang dan santai dengan layanan berkualitas tinggi. Pelanggan memuji layanan pelanggan yang luar biasa yang diberikan oleh staf.

Kekurangan: Kebijakan spa yang melarang penggunaan ponsel menjadi titik pertentangan, karena beberapa orang merasa kebijakan tersebut menambah relaksasi mereka, sementara yang lain merasa tertekan. Beberapa peninjau menganggap harganya tinggi.

Gaya dan nada

Anda dapat memengaruhi respons model dengan menentukan gaya dan nuansa outputnya, seperti panjang, formalitas, dan tingkat pembacaan target, dalam petunjuk sistem.

Misalnya, Anda ingin menggunakan model untuk menulis proposal untuk inisiatif pemerintah. Bandingkan perbedaan respons model saat Anda menentukan nada berikut:

  • Profesional
  • Kasual
Petunjuk sistem Profesional Kasual

Anda adalah penulis proposal pemerintah. Anda ditugaskan untuk membuat proposal untuk kampanye mendatang. Berdasarkan template dan input pengguna, berikan proposal untuk kampanye mendatang.

  • Jangan gunakan internet.
  • Buat jawaban untuk setiap bagian tidak lebih dari dua kalimat.
  • Tulis dengan nada profesional.
  • Berikan jawaban dalam format Markdown.

Template proposal:

  • Ide Besar:
  • Tantangan
  • Solusi
  • Audiens Target
  • Pesan Utama
  • Saluran
  • Sorotan Konten
  • Hasil yang Diharapkan
  • Alasan Memilih Kami
  • Pesan Ajakan (CTA)

Anda adalah penulis proposal pemerintah. Anda ditugaskan untuk membuat proposal untuk kampanye mendatang. Berdasarkan template dan input pengguna, berikan proposal untuk kampanye mendatang.

  • Jangan gunakan internet.
  • Buat jawaban untuk setiap bagian tidak lebih dari dua kalimat.
  • Tulis dengan nada kasual.
  • Berikan jawaban dalam format Markdown.

Template proposal:

  • Ide Besar:
  • Tantangan
  • Solusi
  • Audiens Target
  • Pesan Utama
  • Saluran
  • Sorotan Konten
  • Hasil yang Diharapkan
  • Alasan Memilih Kami
  • Pesan Ajakan (CTA)
Perintah

Tujuan kampanye ini adalah untuk meningkatkan kesadaran dan menginspirasi perubahan perilaku yang dapat ditindaklanjuti menuju keberlanjutan melalui penggunaan pengalaman digital interaktif. Saya akan berinteraksi dengan individu yang sadar lingkungan berusia 20–45 tahun, termasuk siswa, profesional, dan keluarga, dengan memberikan konten edukasi dan menyelenggarakan acara yang didorong oleh komunitas di Facebook dan X. Tujuan saya adalah meningkatkan kesadaran publik dan mendorong peningkatan yang terukur dalam perilaku ramah lingkungan. Dengan memanfaatkan keahlian saya dalam pemasaran digital dan fokus yang kuat pada keberlanjutan, saya akan mendesain kampanye berdampak tinggi yang memberdayakan individu untuk membuat perubahan yang bermakna dan berkelanjutan dalam kehidupan sehari-hari mereka. Saya ingin kampanye ini membuat konten yang beragam dan menarik, tetapi informatif.

Respons

Ide Besar: Memberdayakan individu berusia 20-45 tahun untuk menjalani hidup yang berkelanjutan melalui pengalaman digital interaktif dan interaksi komunitas.

Tantangan: Banyak individu yang tidak menyadari tindakan praktis sehari-hari yang dapat mereka lakukan untuk mempromosikan keberlanjutan lingkungan.

Solusi: Kampanye multi-platform yang memanfaatkan Facebook dan X untuk memberikan konten edukasi yang menarik dan mendorong keterlibatan komunitas melalui pengalaman dan acara interaktif.

Target Audiens: Individu yang sadar lingkungan berusia 20-45 tahun, termasuk siswa, profesional, dan keluarga.

Pesan Utama: Perubahan kecil dalam kebiasaan sehari-hari dapat memberikan dampak positif yang signifikan terhadap lingkungan.

Saluran: Facebook dan X.

Sorotan Konten: Kuis interaktif, video edukasi, sesi Tanya Jawab dengan pakar, dan tantangan komunitas yang mempromosikan praktik berkelanjutan.

Hasil yang Diharapkan: Peningkatan kesadaran tentang praktik hidup berkelanjutan dan peningkatan perilaku ramah lingkungan yang terukur di kalangan target audiens.

Alasan Memilih Kami: Keahlian yang terbukti dalam pemasaran digital dan minat untuk mempromosikan keberlanjutan, sehingga memastikan kampanye yang menarik dan berdampak tinggi.

Pesan Ajakan (CTA): Bergabunglah dengan kampanye di Facebook dan X untuk belajar, berinteraksi, dan membuat perbedaan untuk masa depan yang berkelanjutan.

Ide Besar: Kami meluncurkan gerakan digital untuk membuat keberlanjutan menjadi keren. Dengan tantangan interaktif dan konten yang menarik, kami akan menginspirasi tindakan nyata, mengubah gaya hidup ramah lingkungan dari tugas rutin menjadi perjalanan bersama.

Tantangan: Mari kita hadapi kenyataan, mengetahui tentang keberlanjutan dan benar-benar menerapkannya adalah dua hal yang berbeda. Kami harus mengatasi apatis dan kurangnya kesadaran tentang perubahan sederhana sehari-hari.

Solusi: Kami akan menjangkau audiens di platform mereka, seperti Facebook dan X, untuk memberikan perpaduan dinamis antara konten edukasional, tantangan seru, dan acara yang didorong komunitas. Pikirkan kuis interaktif, infografis yang dapat dibagikan, dan meet-up lokal.

Target Audiens: Kami berfokus pada individu yang sadar lingkungan berusia 20-45 tahun - siswa, profesional, dan keluarga - yang ingin membuat perubahan.

Pesan Utama: Langkah kecil, dampak besar! Anda memiliki kemampuan untuk menciptakan masa depan yang lebih berkelanjutan melalui pilihan sederhana sehari-hari.

Saluran: Kami akan memanfaatkan kekuatan pemasaran media sosial melalui kampanye yang menarik di Facebook dan X.

Sorotan Konten: Dapatkan campuran konten informatif dan yang dapat dibagikan, termasuk infografis yang menarik, video yang merangsang pemikiran, tips cepat, dan kisah sukses yang menginspirasi.

Hasil yang Diharapkan: Kami akan mengukur kesuksesan melalui peningkatan interaksi (suka, bagikan, komentar) dan traffic situs, yang pada akhirnya bertujuan untuk meningkatkan perilaku ramah lingkungan yang dapat diukur dalam audiens target kami.

Alasan Memilih Kami: Tim kami menggabungkan keahlian digital marketing dengan semangat yang tulus terhadap keberlanjutan, sehingga menghasilkan kampanye yang berdampak dan menarik.

Pesan Ajakan (CTA): Bergabunglah dengan gerakan ini. Ikuti halaman kami, berpartisipasi dalam tantangan kami, dan bagikan perjalanan hidup berkelanjutan Anda kepada jaringan Anda.

Sasaran dan aturan

Anda dapat memengaruhi respons model dengan menentukan sasaran atau aturan, dengan kata lain, apa yang harus atau tidak boleh dilakukan model, dalam petunjuk sistem.

Misalnya, Anda ingin menggunakan model untuk menulis kode Python. Bandingkan perbedaan respons model saat Anda menentukan aturan berikut:

  • Saat membuat kode, pastikan untuk menyertakan docstring yang menjelaskan input, output, dan penggunaan setiap metode.
  • Hanya buat kode, jangan sertakan docstring apa pun.
Petunjuk sistem Docstring Tidak ada docstring
Saat membuat kode, pastikan untuk menyertakan docstring yang menjelaskan input, output, dan penggunaan setiap metode. Hanya buat kode, jangan sertakan docstring apa pun.
Perintah Buat array 2D di Python, dan buat algoritma pencarian jalur A* untuk mengidentifikasi jalur terpendek antara dua titik di petak.
Respons
    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."")
    

Penjelasan:

  1. Class Node:
    • Mewakili sel dalam petak.
    • Menyimpan koordinat (x, y), node induk, g (biaya dari awal), dan h (heuristika untuk akhir).
    • __lt__ memungkinkan perbandingan node untuk antrean prioritas (menggunakan heapq) berdasarkan f = g + h.
  2. Fungsi a_star:
    • Mengambil titik grid, start, dan end sebagai input.
    • Melakukan inisialisasi open_list (node yang akan dijelajahi) dan closed_list (node yang dijelajahi).
    • Menggunakan heapq untuk pengambilan node yang efisien dengan skor f terendah dari open_list.
    • Loop hingga end ditemukan atau open_list kosong (tidak ada jalur).
    • Menjelajahi tetangga, menghitung biaya (g, h), dan memperbarui open_list.
    • Membangun ulang dan menampilkan jalur saat end tercapai.
  3. Contoh Penggunaan:
    • Membuat grid sampel dan menentukan titik start dan end.
    • Memanggil a_star untuk menemukan jalur.
    • Mencetak jalur terpendek atau menunjukkan jika tidak ada jalur.
    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)
    

Konteks

Anda dapat memengaruhi cara model merespons perintah dengan menambahkan konteks tambahan dalam petunjuk sistem.

Misalnya, Anda ingin menggunakan model untuk menulis pidato untuk acara. Bandingkan perbedaan respons model saat Anda memberikan konteks berikut:

  • Hal-hal yang perlu disertakan dalam pidato.
  • Tidak ada konteks tambahan.
Petunjuk sistem Hal-hal yang harus disertakan dalam pidato Tanpa konteks tambahan

Bantu pengguna menulis pidato berdasarkan informasi yang diberikan:

  • Acara
  • Ukuran Audiens
  • Informasi Pembicara (nama, usia, dll.)
  • Nada Ucapan
  • Panjang Ucapan
  • Lain-lain

Jika pengguna tidak memberikan semua informasi ini, harap balas dengan, "Maaf, tetapi saya tidak memiliki semua informasi yang diperlukan untuk membuat pidato. Harap berikan informasi tentang acara, ukuran audiens, pembicara, nuansa, durasi, dan informasi lainnya."

Beberapa hal umum yang harus disertakan adalah:

  • Jeda untuk jeda
  • Pengantar yang menarik
  • Komentar penutup agar pidato tetap berkesan
  • Lelucon

Bantu pengguna menulis pidato berdasarkan informasi yang diberikan:

  • Acara
  • Ukuran Audiens
  • Informasi Pembicara (nama, usia, dll.)
  • Nada Ucapan
  • Panjang Ucapan
  • Lain-lain

Jika pengguna tidak memberikan semua informasi ini, harap balas dengan, "Maaf, tetapi saya tidak memiliki semua informasi yang diperlukan untuk membuat pidato. Harap berikan informasi tentang acara, ukuran audiens, pembicara, nuansa, durasi, dan informasi lainnya."

Perintah

Peristiwa: Kelulusan SMA

Ukuran Audiens: 1.000 orang

Info Pembicara: Michael Landish, 17 tahun

Gaya bahasa: nostalgia, optimis

Panjang Ucapan: 250-500 kata

Lain-lain: Michael adalah ketua kelas senior, guru favoritnya adalah guru bahasa Inggris tahun juniornya, Ibu Martin, dan dia akan melanjutkan ke Los Caminos State University untuk mempelajari ekonomi dan bahasa Inggris. Ia belum pernah memberikan pidato sebelumnya, dan ia merasa gugup karena disleksia.

Respons

"Selamat pagi dosen, keluarga, teman, dan yang terpenting, sesama lulusan angkatan 2023.

(Jeda)

Berdiri di sini, melihat kalian semua, rasanya seperti mimpi. Baru kemarin, kita adalah siswa baru, yang masih belum tahu apa-apa dan sedikit ketakutan. Ingat kegelisahan hari pertama itu? Saya tahu saya melakukannya. Saya hampir tersandung dan terjatuh saat membawa buku sejarah saya – sebuah insiden yang hampir terjadi dan akan diabadikan dalam sejarah [Nama SMA]!

(Jeda untuk tawa)

Tapi serius, lihatlah kita sekarang! Kita telah tumbuh dewasa, belajar banyak hal – dan saya tidak hanya berbicara tentang Teorema Pythagoras. Kita telah belajar tentang ketekunan, persahabatan, dan kekuatan sticky note yang ditempatkan dengan baik selama minggu ujian.

Empat tahun terakhir ini sangat luar biasa, dan saya banyak berutang perkembangan diri kepada beberapa pengajar yang benar-benar luar biasa. Saya ingin berterima kasih kepada Ibu Martin, guru bahasa Inggris saya di kelas dua SMA, yang mengajari saya bahwa kata-kata memiliki kekuatan, dan meskipun saya menderita disleksia, saya dapat menemukan suara saya. Terima kasih, Ibu Martin.

(Jeda)

Sekarang, kita berada di ambang sesuatu yang baru dan menarik. Saat kita melanjutkan ke perguruan tinggi yang berbeda, kota yang berbeda, bahkan negara yang berbeda, mari kita bawa pelajaran yang telah kita pelajari di [Nama SMA] bersama kita. Mari kita ingat tawa, persahabatan, dan bahkan sesekali begadang sebelum ujian besar.

(Jeda)

Lulusan, dunia menanti kita. Mari kita hadapi dengan penuh keberanian, optimisme, dan dukungan yang tidak pernah goyah dari Kelas 2023 yang luar biasa. Selamat kepada semua orang, dan ingatlah bahwa yang terbaik masih akan datang.

"Selamat pagi, dosen, keluarga, teman, dan yang terpenting, teman-teman seangkatan saya dari Angkatan [Tahun]!

Rasanya aneh berdiri di sini di hadapan Anda, bukan hanya sebagai Michael Landish, tetapi sebagai ketua kelas Anda. Selama empat tahun terakhir, koridor ini telah menjadi tempat kami membuktikan diri, penuh dengan tawa, sesi belajar larut malam (beberapa lebih berhasil daripada yang lain), dan cukup banyak kenangan bersama yang akan bertahan seumur hidup. Kita tumbuh bersama di dalam tembok ini, dan sekarang, saat kita berada di ambang sesuatu yang baru dan tidak diketahui, rasanya sulit untuk tidak merasa sedikit kewalahan.

Jika diingat-ingat, rasanya baru kemarin kita adalah mahasiswa baru yang canggung, berjalan di lorong yang ramai, dan mencoba mencari tempat yang cocok untuk kita. Dan sekarang, melihat Anda semua, saya terkagum-kagum dengan sejauh mana kita telah melangkah. Kita saling mendukung dalam kemenangan dan menawarkan dukungan selama kegagalan. Kami telah belajar dari kesalahan, merayakan kemenangan, dan yang paling penting, membentuk ikatan persahabatan yang saya tahu akan berlangsung seumur hidup.

Saya ingin mengucapkan terima kasih khusus kepada Ibu Martin, guru Bahasa Inggris tahun pertama saya, atas kesabaran dan bimbingannya. Keyakinan Anda pada saya, terutama saat saya mengalami kesulitan, membantu saya menemukan suara saya, bukan hanya sebagai siswa, tetapi sebagai pribadi. Terima kasih.

Sekarang, kita akan memulai bab berikutnya. Beberapa orang, seperti saya, akan melanjutkan ke Los Caminos State University, dengan antusias mempelajari dunia ekonomi dan, ya, lebih banyak bahasa Inggris. Orang lain akan mengejar jalur yang berbeda, yang sama-sama valid dan menarik. Meskipun perjalanan kita mungkin berbeda, mari kita selalu mengingat pelajaran yang telah kita pelajari dan persahabatan yang telah kita bangun di dalam tembok ini. Mari kita bawa semangat Angkatan [Tahun] bersama kita – semangat ketahanan, tekad, dan dukungan yang tidak pernah goyah untuk satu sama lain.

Selamat kepada para lulusan! Saya tidak sabar untuk melihat hal-hal luar biasa yang akan kita capai.

Langkah selanjutnya