Mengembangkan aplikasi Python dengan bantuan Duet AI

Tutorial ini menunjukkan cara menggunakan Duet AI, kolaborator dengan teknologi AI di Google Cloud, untuk menjelajahi, membuat, memodifikasi, menguji, dan men-deploy contoh aplikasi Python.

Untuk contoh berikut, anggaplah Anda adalah developer yang merupakan bagian dari tim yang mengembangkan aplikasi inventaris. Anda bertanggung jawab membuat prototipe layanan dasar yang berisi beberapa metode API untuk dioperasikan sebagai bagian dari aplikasi inventaris. Anda ingin mengembangkan aplikasi di lingkungan VS Code lokal, lalu men-deploy-nya ke Google Cloud. Namun, Anda tidak yakin layanan Google Cloud mana yang paling sesuai dengan kasus penggunaan Anda.

Dalam tutorial ini, Anda menggunakan Duet AI beserta Visual Studio Code sebagai IDE untuk mem-build aplikasi inventaris contoh yang memiliki dua metode API.

Tutorial ini ditujukan bagi developer dengan tingkat pengalaman apa pun yang telah berkontribusi dalam membangun aplikasi, tetapi mungkin belum familier dengan teknologi cloud. Anda dianggap sudah memiliki pengalaman menggunakan VS Code sebagai IDE dan sudah familier dengan Python dan framework Flask.

Tujuan

  • Pelajari berbagai layanan Google yang dapat Anda gunakan untuk men-deploy aplikasi dengan mengajukan pertanyaan berbasis konteks pada Duet AI.

  • Minta Duet AI menyediakan template yang dapat Anda gunakan untuk mengembangkan aplikasi Python dasar di Cloud Run.

  • Buat, jelajahi, dan modifikasi aplikasi menggunakan Duet AI untuk menjelaskan dan membuat kode.

  • Jalankan dan uji aplikasi secara lokal, lalu deploy ke Google Cloud menggunakan Duet AI untuk membuat langkah-langkahnya.

Produk Google Cloud yang digunakan

Tutorial ini menggunakan produk Google Cloud yang dapat ditagih berikut. Gunakan Kalkulator Harga untuk membuat perkiraan biaya berdasarkan penggunaan yang Anda proyeksikan.

  • Cloud Run. Cloud Run adalah platform komputasi terkelola yang memungkinkan Anda menjalankan container langsung di atas infrastruktur Google yang skalabel. Anda dapat men-deploy kode yang ditulis dalam bahasa pemrograman apa pun di Cloud Run jika Anda dapat mem-build image container dari bahasa tersebut. Untuk mengetahui informasi harga, lihat Cloud Run.

Selain produk yang disebutkan sebelumnya, tutorial ini juga menggunakan produk berikut:

  • Duet AI. Duet AI adalah kolaborator yang selalu aktif di Google Cloud dan menawarkan bantuan yang didukung teknologi AI generatif untuk berbagai pengguna, termasuk developer dan data scientist. Untuk memberikan pengalaman bantuan terintegrasi, Duet AI disematkan di banyak produk Google Cloud.

  • Ekstensi Cloud Code untuk VS Code. Ekstensi ini adalah plugin IDE yang menyediakan dukungan untuk siklus pengembangan aplikasi Kubernetes dan Cloud Run. Untuk mempelajari ekstensi Cloud Code lebih lanjut, baca artikel Cloud Code untuk fitur VS Code.

Sebelum memulai

  1. Instal salinan lokal VS Code jika Anda belum melakukannya.

  2. Instal ekstensi Cloud Code untuk VS Code.

    Ikuti petunjuk dalam panduan penginstalan untuk menginstal Python, Git, dan klien Docker. Selain itu, ikuti langkah-langkah untuk membuat project Google Cloud.

  3. Pastikan Duet AI sudah disiapkan untuk akun pengguna dan project Google Cloud Anda.
  4. Aktifkan Duet AI untuk IDE Anda.

    Ikuti langkah-langkah untuk terhubung ke Google Cloud di IDE Anda dan untuk memilih project yang disiapkan untuk Google Cloud.

Jelajahi layanan Google Cloud

Jika Anda baru menggunakan Google Cloud, Duet AI dapat membantu Anda memilih layanan Google Cloud yang memenuhi persyaratan arsitektur aplikasi Anda.

Di IDE, Anda dapat melakukan chat dengan Duet AI untuk mendapatkan bantuan. Dengan panel Duet AI, masukkan prompt (pertanyaan atau pernyataan yang menjelaskan bantuan yang Anda inginkan), dan Duet AI menampilkan respons. Prompt dapat mencakup konteks dari kode yang ada yang dianalisis Google Cloud untuk memberikan respons yang lebih berguna atau lengkap. Untuk mengetahui informasi selengkapnya tentang cara menulis perintah untuk menghasilkan respons yang baik, lihat Menulis perintah yang lebih baik untuk Duet AI.

Untuk meminta Duet AI tentang layanan Google Cloud, ikuti langkah-langkah berikut:

  1. Di panel aktivitas IDE Anda, klik chat_spark Duet AI.

    Untuk menemukan panel aktivitas VS Code, lihat Antarmuka Pengguna.

  2. Di panel Duet AI, masukkan perintah berikut, lalu klik Send:

    I am new to Google Cloud and I want to use the Cloud Code extension.
    Give me some examples of Google services that I can use to build and deploy a
    sample app using containers.
    

    Duet AI merespons dengan daftar layanan dan deskripsi Google Cloud.

    Dalam contoh ini, asumsikan bahwa Duet AI menyarankan Cloud Run dan Cloud Functions sebagai dua layanan Google Cloud yang dapat membantu Anda membangun dan men-deploy aplikasi contoh, tetapi Anda memerlukan informasi lebih lanjut tentang layanan tersebut.

    Duet AI tidak menggunakan perintah Anda atau responsnya sebagai data untuk melatih modelnya. Untuk mengetahui informasi selengkapnya, lihat Cara Duet AI di Google Cloud menggunakan data Anda.

  3. Masukkan pertanyaan lanjutan seperti berikut:

    What is the difference between Cloud Run and Cloud Functions? Explain to me
    in simple terms as I am new to Google Cloud.
    

    Duet AI merespons dengan perbedaan mendetail antara kedua layanan Google Cloud tersebut.

  4. Opsional: Untuk mereset histori chat, di panel Duet AI, klik delete Reset chat.

Membuat aplikasi Python Hello World

Pertimbangkan bahwa Anda ingin menggunakan Cloud Run untuk membuat dan men-deploy aplikasi Python dasar. Karena Anda baru menggunakan Cloud Run dan Cloud Code, Anda memerlukan bantuan terkait langkah-langkah untuk membuat aplikasi. Di bagian ini, Anda meminta Duet AI untuk mendapatkan bantuan dalam membangun aplikasi Hello World Python di Cloud Run.

  1. Luncurkan IDE Anda, jika Anda belum melakukannya.

  2. Di panel aktivitas IDE Anda, klik chat_spark Duet AI.

  3. Di panel Duet AI, masukkan perintah berikut, lalu klik Send:

    How to create a new Cloud Run app in Cloud Code using the command palette?
    What languages are supported?
    

    Palet perintah di VS Code menyediakan daftar semua perintah, termasuk perintah untuk Cloud Code.

    Outputnya mirip dengan hal berikut ini:

    To create a new Cloud Run app in Cloud Code using the command palette,
    follow these steps:
    1. Open the command palette (press Ctrl/Cmd+Shift+P or click View > Command Palette).
    2. Run the "Cloud Code: New Cloud Run App" command.
    ...
    

    Duet AI juga menampilkan bahasa yang didukung untuk aplikasi Cloud Run.

    Untuk contoh ini, Anda memilih untuk menggunakan template Cloud Run berbasis Python untuk membuat aplikasi contoh.

  4. Untuk mempelajari cara membuat aplikasi Python dari template Cloud Run, masukkan perintah berikut:

    How do I create a Python app from a Cloud Run template using the
    command palette? I am using Cloud Code.
    

    Outputnya mirip dengan hal berikut ini:

    To create a Python app from a Cloud Run template using the command palette,
    follow these steps:
    
    1. Open Cloud Code.
    
    2. Click the Command Palette
       (press Ctrl/Cmd+Shift+P or click View > Command Palette).
    
    3. Run the "Cloud Code: New Application" command.
    
    ...
    

    Selesaikan langkah-langkah yang diberikan Duet AI sebagai responsnya untuk membuat aplikasi Hello World Python dasar di Cloud Run. Anda juga dapat melihat bagian berikut untuk membuat aplikasi Python Halo Dunia.

Langkah alternatif untuk membuat aplikasi Python Hello World

  1. Luncurkan IDE jika Anda belum melakukannya.

  2. Buka palet perintah: tekan Command+Shift+P (untuk MacOS) atau Control+Shift+P (Untuk Windows dan Linux).

  3. Di kolom palet perintah, masukkan Cloud Code: New Application, lalu klik hasilnya.

  4. Dari daftar contoh yang tersedia, pilih Aplikasi Cloud Run.

  5. Dari daftar template yang tersedia, pilih Python (Flask): Cloud Run.

  6. Simpan aplikasi baru di lokasi pilihan Anda.

Notifikasi mengonfirmasi bahwa aplikasi Anda telah dibuat. Pratinjau file README untuk layanan yang Anda pilih akan terbuka di IDE Anda, seperti yang ditunjukkan pada gambar 1:

screenshot
Gambar 1 File README ditampilkan untuk aplikasi Hello World Python yang dibuat di Cloud Run.

Menjelajahi aplikasi Python Hello World

Setelah membuat aplikasi Hello World di Cloud Run, Anda dapat menggunakan Duet AI untuk menjelaskan file dan cuplikan kode yang di-deploy di IDE Anda. Untuk mempelajari kode aplikasi contoh yang Anda buat, ikuti langkah-langkah berikut:

  1. Luncurkan IDE Anda.

  2. Buka Explorer: tekan Command+Shift+E (untuk MacOS) atau Control+Shift+E (Untuk Windows dan Linux).

    Anda dapat melihat file yang terkait dengan aplikasi contoh.

  3. Dalam daftar file, klik Dockerfile untuk menampilkan isinya.

  4. Pilih seluruh konten Dockerfile, klik ikon bohlam, lalu klik Explain this, seperti yang ditunjukkan pada gambar 2:

    screenshot dockerfile
    Gambar 2. Fitur penjelasan kode tersedia saat Anda memilih kode.

    Duet AI menghasilkan penjelasan dalam natural language tentang konten dan fungsi Dockerfile. Jika Anda tidak yakin tentang beberapa poin dalam respons, Anda dapat mengajukan pertanyaan lanjutan.

  5. Untuk mempelajari file app.py lebih lanjut yang disebutkan dalam Dockerfile, di panel Duet AI, masukkan perintah berikut:

    What is the function of the app.py file in Dockerfile?
    

    Duet AI menghasilkan respons yang mirip dengan berikut ini:

    The app.py file is the entrypoint for the container. It is the file that
    will be executed when the container is launched. In this case, the app.py
    file will run the Python code that is contained within it.
    

    Atau, Anda juga dapat memilih teks app.py di Dockerfile, mengklik ikon bohlam, lalu mengklik Explain this.

  6. Buka Explorer: tekan Command+Shift+E (untuk MacOS) atau Control+Shift+E (untuk Windows dan Linux).

  7. Buka file app.py. Anda melihat dua variabel, K_SERVICE dan K_REVISION.

  8. Untuk mempelajari variabel dalam file app.py lebih lanjut, di panel Duet AI, masukkan perintah berikut:

    What is the function of `K_SERVICE` and `K_REVISION` in the `app.py` file?
    

    Atau, Anda juga dapat memilih teks berikut di Dockerfile, mengklik ikon bohlam, lalu mengklik Explain this:

    service = os.environ.get('K_SERVICE', 'Unknown service')
    revision = os.environ.get('K_REVISION', 'Unknown revision')
    

    Responsnya mirip dengan hal berikut ini:

    The code above is using the os.environ module to get the values of the
    K_SERVICE and K_REVISION environment variables. These variables are set by
    Cloud Run when it deploys the service, and they contain the name of the
    service and the revision number, respectively.
    ...
    

Membuat data sampel untuk aplikasi

Anda memiliki aplikasi Flask dasar yang dibuat di Cloud Run. Sebelum dapat menambahkan fungsi untuk mem-build aplikasi inventaris, Anda memerlukan file yang berisi daftar contoh item inventaris. Untuk menggunakan Duet AI guna menghasilkan data sampel yang relevan, ikuti langkah-langkah berikut:

  1. Untuk menampilkan file yang terkait dengan aplikasi contoh, di IDE Anda, klik ikon Explorer.

  2. Klik ikon New file dan buat file bernama inventory.py.

  3. Untuk mengizinkan Duet AI menghasilkan data sampel, di panel Duet AI, masukkan perintah berikut:

    Create a variable called inventory which is a list of 3 JSON objects.
    Each JSON object has 2 attributes: productid and onhandqty.
    Both attributes are strings.
    

    Duet AI menghasilkan kode sampel untuk tiga objek JSON.

  4. Sebagai respons, klik addInsert in current file untuk menyisipkan contoh kode dalam file inventory.py, seperti ditunjukkan pada gambar 3:

    sisipkan kode
    Gambar 3. Anda dapat menyisipkan kode dari respons Duet AI.

    File inventory.py terlihat mirip dengan berikut ini:

    inventory = [
       {
          "productid": "12345",
          "onhandqty": "10"
       },
       {
          "productid": "23456",
          "onhandqty": "20"
       },
       {
          "productid": "34567",
          "onhandqty": "30"
       }
    ]
    

    Anda berhasil membuat file inventory.py, yang menyertakan daftar item inventaris.

Memodifikasi aplikasi Python Hello World

Setelah membuat file inventory.py, kini Anda memperkenalkan beberapa metode API dalam file app.py yang dapat beroperasi pada data inventaris. Untuk menyelesaikan tujuan ini, Anda dapat menggunakan fitur pembuatan kode di Duet AI.

  1. Untuk menampilkan file yang terkait dengan aplikasi contoh, di IDE Anda, klik ikon Explorer.

  2. Untuk menampilkan isi, klik file app.py.

  3. Edit pernyataan impor sehingga file app.py menyertakan file inventory.py:

    import os
    from flask import Flask, render_template
    from inventory import inventory
    
  4. Agar Duet AI dapat menghasilkan kode untuk metode API pertama, dalam file app.py, masukkan komentar berikut, lalu tekan Control+Enter:

     # Generate an app route to display a list of inventory
     # items in the JSON format from the
     # inventory.py file. Use the GET method.
    
    

    Duet AI menghasilkan respons dalam file app.py.

    Bergantung pada konfigurasi sistem, pintasan keyboard untuk membuat kode menggunakan Duet AI mungkin berbeda dengan kombinasi Control+Enter yang digunakan tutorial ini.

  5. Arahkan pointer ke bagian respons mana pun.

    Toolbar Duet AI akan ditampilkan.

    Duet AI dapat menghasilkan lebih dari satu respons. Di toolbar, Anda dapat melihat setiap respons menggunakan tombol < dan >. Pada contoh berikut, Duet AI hanya menghasilkan satu respons, seperti yang ditunjukkan pada gambar 4:

    terima kode
    Gambar 4. Anda dapat menerima saran kode dari Duet AI.
  6. Untuk menerima contoh kode yang disarankan, klik Terima di toolbar.

    Outputnya terlihat mirip dengan yang berikut ini:

    # Generate an App route to display a list of inventory
    # items in the JSON format from the
    # inventory.py file. Use the GET method.
    @app.route('/inventory', methods=['GET'])
    def get_inventory():
        """Return a list of inventory items."""
        return jsonify(inventory)
    
  7. Opsional: Untuk mengetahui fungsi jsonify(inventory) lebih lanjut, sorot istilah dan minta Duet AI untuk menjelaskan kode kepada Anda.

  8. Edit pernyataan impor sehingga file app.py menyertakan fungsi jsonify:

    import os
    from flask import Flask, render_template, jsonify
    from inventory import inventory
    
  9. Untuk menambahkan metode API lain, dalam file app.py, masukkan perintah berikut, lalu tekan Control+Enter:

    # Generate an App route to get an inventory item
    # given the productid. Use the GET method.
    # If there is an invalid productid,
    # display a 404 error.
    

    Duet AI menghasilkan respons dalam file app.py.

  10. Arahkan pointer ke bagian respons mana pun.

    Toolbar Duet AI akan ditampilkan.

  11. Untuk menerima salah satu contoh kode yang disarankan, di toolbar, klik Accept.

    Outputnya terlihat mirip dengan yang berikut ini:

    # Generate an App route to get an inventory item
    # given the productid. Use the GET method.
    # If there is an invalid productid,
    # display a 404 error.
    @app.route('/inventory/<productid>', methods=['GET'])
    def get_inventory_item(productid):
        """Return an inventory item given the productid."""
        for item in inventory:
            if item["productid"] == productid:
               return jsonify(item)
        return jsonify({"error": "Item not found"}), 404
    

    Anda berhasil menambahkan dua metode API untuk membuat aplikasi inventaris.

Menjalankan aplikasi secara lokal dari IDE Anda

Anda siap men-deploy aplikasi secara lokal dari VS Code. Untuk menerapkan aplikasi, ikuti langkah-langkah berikut:

  1. Luncurkan IDE Anda, jika Anda belum melakukannya.

  2. Di panel aktivitas IDE Anda, klik chat_spark Duet AI.

  3. Di panel Duet AI, masukkan perintah berikut, lalu klik Send:

    How do I run a Cloud Run app locally within Cloud Code?
    Is there an emulator?
    

    Ikuti langkah-langkah dalam respons Duet AI untuk menjalankan aplikasi secara lokal dari VS Code. Anda juga dapat melihat bagian berikut untuk men-deploy contoh aplikasi Cloud Run secara lokal dari dalam VS Code.

Langkah alternatif untuk menjalankan aplikasi secara lokal dari IDE Anda

Jika tidak mengikuti langkah-langkah dalam respons Duet AI di bagian sebelumnya, Anda dapat mengikuti langkah-langkah berikut untuk men-deploy aplikasi contoh:

  1. Luncurkan IDE Anda.

  2. Buka palet perintah: tekan Command+Shift+P (untuk MacOS) atau Control+Shift+P (untuk Windows dan Linux).

  3. Di kolom palet perintah, masukkan Run on Cloud Run Emulator, lalu klik hasilnya.

  4. Di file lingkungan Build, pertahankan nilai default, lalu klik Run.

    Tutorial ini menggunakan Docker sebagai opsi builder.

    Di panel Output IDE, Anda dapat melihat progres build. Proses penerapan yang sebenarnya mungkin memerlukan waktu beberapa saat.

    Starting to run the app using configuration 'Cloud Run:
    Run/Debug Locally' from .vscode/launch.json...
    To view more detailed logs, go to Output channel : "Cloud Run: Run/Debug Locally - Detailed"
    Dependency check started
    Dependency check succeeded
    Starting minikube, this may take a while......
    ...
    

Untuk melihat aplikasi aktif, setelah deployment selesai, klik URL di panel Output. Untuk salinan lokal VS Code, jika Anda menentukan localhost 8080, aplikasi contoh Anda akan aktif di URL http://localhost:8080.

Menguji dua metode API

Jika aplikasi contoh sudah tayang, Anda juga dapat memeriksa apakah kedua rute aplikasi berfungsi. Dalam contoh ini, asumsikan URL aplikasi adalah http://localhost:8080.

  1. Untuk melihat contoh halaman landing aplikasi Anda, buka http://localhost:8080.

  2. Untuk mendapatkan daftar semua item inventaris, buka http://localhost:8080/inventory.

    Dalam file app.py, untuk mencantumkan semua item inventaris, fungsi @app.route('/inventory', methods=['GET']) digunakan.

  3. Untuk menampilkan item inventaris tertentu yang difilter menurut atribut productid, klik http://localhost:8080/inventory/productid.

    Misalnya, http://localhost:8080/inventory/1, dengan productid sama dengan 1.

    Dalam file app.py, untuk menampilkan item inventaris tertentu dengan atribut productid, fungsi @app.route('/inventory/<productid>', methods=['GET']) akan digunakan.

Men-deploy aplikasi Cloud Run ke Google Cloud

Sekarang Anda dapat men-deploy aplikasi Cloud Run ke Google Cloud. Anda dapat meminta Duet AI untuk memberikan langkah-langkahnya, atau mengikuti langkah-langkah berikut:

  1. Buka palet perintah: tekan Command+Shift+P (untuk MacOS) atau Control+Shift+P (untuk Windows dan Linux).

  2. Di kolom palet perintah, masukkan Cloud Code: Deploy to Cloud Run, lalu klik hasilnya.

  3. Di panel setelan Service, tetapkan project Google Cloud Anda.

  4. Terima setelan default yang tersisa, lalu klik Deploy.

  5. Cloud Code membuat image Anda, mendorongnya ke registry, dan men-deploy layanan Anda ke Cloud Run.

  6. Untuk melihat layanan yang sedang berjalan, buka URL yang ditampilkan dalam dialog Deploy to Cloud Run.

    Anda juga dapat menggunakan langkah-langkah yang sama seperti yang dijelaskan di Menguji dua metode API untuk melihat contoh aplikasi di Google Cloud. Sesuaikan URL Anda.

Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, Anda dapat menghapus project Google Cloud yang Anda buat untuk tutorial ini. Atau, Anda dapat menghapus resource satu per satu.

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Langkah selanjutnya