Membangun AI yang Tepercaya dengan Kecepatan 100 MPH

1. Ringkasan

Kecerdasan buatan kini menjadi bagian dari banyak sistem software, tetapi membangun aplikasi AI tidak sama dengan membangun aplikasi yang dapat dipercaya oleh pengguna. Dalam banyak lingkungan dunia nyata, tantangannya bukan hanya menghasilkan respons. Tantangannya adalah menghasilkan respons yang tepat waktu, berdasar, dapat ditindaklanjuti, dan selaras dengan keahlian manusia.

Dalam codelab ini, Anda akan membuat simulator pelatih balap yang mendemonstrasikan ide-ide ini secara konkret dan menarik. Aplikasi ini menggunakan telemetri dari mobil balap virtual untuk menganimasikan gerakan di sekitar lintasan dan menghasilkan panduan pelatihan. Meskipun balap adalah skenarionya, ide arsitektur yang sama berlaku untuk layanan kesehatan, manufaktur, logistik, dan domain lain yang mengutamakan kepercayaan.

Anda akan bekerja dengan aliran data telemetri berkecepatan tinggi, mengubahnya menjadi bentuk yang berguna dan efisien untuk penalaran AI, serta menggabungkan output berbasis LLM dengan panduan manusia yang dienkode untuk menghasilkan respons yang lebih tepercaya.

Yang akan Anda buat

Dalam codelab ini, Anda akan membuat prototipe AI yang tepercaya yang:

  • Mengalirkan Telemetri dari Mobil Balap Virtual yang berjalan di Google Cloud
  • Memvisualisasikan Mobil yang Bergerak di Sekitar Lintasan Balap menggunakan Chrome
  • Membentuk Ulang Telemetri Mentah Menjadi Input yang Siap AI
  • Menerapkan Lapisan Strategi yang Didukung oleh Google Gemini
  • Menggabungkan Output Model dengan Panduan Manusia yang Dikodekan dan Aturan Keamanan
  • Memberikan Masukan Pembinaan Melalui Antarmuka yang Terlihat Pengguna

Yang akan Anda pelajari

Di akhir codelab ini, Anda akan dapat:

  • Menjelaskan Hal yang Membuat Sistem AI Lebih Dapat Dipercaya
  • Menjelaskan Tujuan Arsitektur AI Modular
  • Membuat Pipeline Telemetri Tersimulasi Sederhana
  • Menyiapkan Data Terstruktur yang Berguna untuk Digunakan dengan LLM
  • Menerapkan Pedoman Pembatas dan Aturan yang Dipandu Manusia untuk Meningkatkan Kepercayaan
  • Mengevaluasi Cara Penerapan Arsitektur Ini ke Domain Lain

2. Yang Akan Anda Butuhkan

Sebelum memulai, pastikan Anda sudah menyiapkan akun, alat, dan layanan yang diperlukan.

Prasyarat

Anda harus sudah:

  • Akun Google pribadi yang menggunakan alamat Gmail
  • Akses ke Google Cloud dan pemahaman dasar tentang CLI
  • Akun penagihan aktif atau kredit cloud
  • Memahami secara umum Google Cloud dan AI Generatif menggunakan Gemini

Gemini adalah model AI Google yang dibangun di atas fondasi penalaran canggih yang dapat mewujudkan ide apa pun. Model ini sangat bagus untuk pemahaman multimodal serta coding agentic dan vibe.

Gemini

Mendapatkan Kredit untuk Menggunakan Google Cloud

Untuk mengklaim kredit, buka link ini dan login dengan alamat email Gmail (domain gmail.com). Kemudian, terima kredit ke akun penagihan Google Cloud Platform (GCP) Anda, dan kredit tersebut akan diterapkan ke akun Anda.

3. Mengapa AI yang Tepercaya Itu Penting

Banyak sistem AI dapat menghasilkan respons yang lancar dan meyakinkan, tetapi lancar tidak sama dengan tepercaya. Dalam sistem dunia nyata, pengguna sering kali memerlukan respons yang tepat waktu dan berdasar yang dibatasi oleh aturan keamanan dan dibentuk oleh keahlian domain.

Hal ini menjadi sangat penting saat sistem beroperasi pada data yang bergerak cepat. Respons yang terlambat mungkin tidak berguna. Respons yang terdengar yakin tetapi mengabaikan konteks penting dapat menyesatkan. Respons yang tidak memiliki hubungan dengan keahlian manusia mungkin sulit dipercaya, meskipun terdengar sempurna.

Dalam skenario mobil balap yang digunakan dalam codelab ini, masalahnya bukan apakah AI dapat mengatakan sesuatu yang menarik. Masalahnya adalah apakah sistem dapat memberikan saran yang berguna, aman, tepat waktu, dan sesuai dengan situasi.

Mari kita lihat sampel telemetri kecil dan bandingkan dua kemungkinan output:

Racing Car Telemetry Data
{
   "speedMph": 118,
   "throttle": 91,
   "frontGrip": "nominal",
   "rearGrip": "low",
   "trackPosition": "Turn 1 Entry"
}

Respons AI yang naif

"Stay aggressive on the throttle and carry your speed into Turn 1"

Respons yang mempertimbangkan kepercayaan

"Rear grip is low at Turn 1 entry. Reduce your throttle slightly and prioritize a stable corner entry"

Perhatikan perbedaannya?

Apa yang akan terjadi jika kita hanya mengandalkan respons AI yang sederhana?

Respons pertama terdengar meyakinkan, tetapi mengabaikan risiko. Respons kedua lebih berguna karena mencerminkan konteks dan batasan.

Daripada memperlakukan LLM sebagai seluruh sistem, Anda perlu memperlakukannya sebagai salah satu bagian dari arsitektur yang lebih luas untuk meningkatkan kredibilitas. Selain itu, banyak aplikasi memerlukan saran yang disampaikan cukup cepat agar dapat ditindaklanjuti, seperti mobil balap, prosedur medis, penerbangan, jaringan listrik, sistem perdagangan, navigasi maritim, dll.

Sekarang, mari kita pahami cara membuat arsitektur seperti itu.

4. Memahami AI Berkecepatan Tinggi dan Arsitektur Tepercaya Modular

Beberapa sistem AI memerlukan jenis perilaku yang sangat berbeda. Mereka harus bereaksi cepat terhadap perubahan kondisi dan juga mendukung penalaran yang lebih lambat dan lebih matang.

Arsitektur modular memisahkan tanggung jawab ini ke dalam jalur yang berbeda. Satu jalur dapat bersifat refleksif, menangani interpretasi langsung dan sensitif waktu dari sinyal yang masuk. Jalur lain dapat berfokus pada strategi, mendukung penalaran tingkat yang lebih tinggi, dan pengambilan keputusan yang lebih sadar konteks. Jalur lainnya menargetkan jenis fungsi lainnya.

Diagram Arsitektur

Beberapa keputusan harus dilakukan secara real time. Beberapa keputusan akan lebih baik jika dipikirkan lebih lama.

AI yang tepercaya sering kali memerlukan keduanya.

Pemisahan arsitektur ini membantu sistem tetap responsif sekaligus mendukung panduan yang lebih kaya yang didukung AI. Hal ini juga menciptakan tempat yang jelas untuk memperkenalkan batasan yang dipandu manusia dan pengetahuan domain.

Dalam program kecil ini, kita memiliki jalur refleks dan jalur strategi yang diterapkan sebagai fungsi Python.

const telemetry = {
  speed: 147,
  grip: 0.68,
  corner_type: "sharp",
  lap_trend: "entering_corners_too_fast",
};

function reflexPath(event: typeof telemetry): string {
  if (event.grip < 0.70) {
    return "REFLEX: Reduce throttle now";
  }
  return "REFLEX: No urgent issue";
}

function strategyPath(event: typeof telemetry): string {
  if (event.lap_trend === "entering_corners_too_fast") {
    return "STRATEGY: Brake earlier and prioritize corner exit";
  }
  return "STRATEGY: Driving pattern looks stable";
}

console.log(reflexPath(telemetry));
console.log(strategyPath(telemetry));

Kedua fungsi berperilaku berbeda mengingat data telemetri yang sama. Fungsi refleks adalah peringatan langsung. Fungsi strategi memberi kita saran pelatihan berdasarkan aturan.

Menurut Anda, mengapa logika ini harus dipisahkan?

Sekarang, mari kita bangun aplikasi multi-bagian yang menyenangkan dan lihat bagaimana arsitektur ini mengubah reaksi cepat dan penalaran yang lebih dalam menjadi sistem AI tepercaya yang benar-benar dapat Anda alami.

5. Membangun Server Streaming Telemetri

Setelah memahami tujuan arsitektur, sekarang saatnya membangun pipeline data yang mendorong aplikasi.

Di bagian ini, Anda akan membuat aliran telemetri sederhana untuk mobil balap virtual. Data akan berasal dari sumber CSV yang berisi data GPS atau posisi jalur, dan aplikasi Anda akan mengonversinya menjadi live stream yang dapat digunakan oleh UI dan lapisan AI.

Di bagian ini, Anda akan:

  • Buat project baru di Google Cloud untuk server dan aplikasi streaming kami
  • Membuat server kecil untuk memancarkan data telemetri
  • Streaming peristiwa tersebut ke UI atau konsol browser

1. Buka Cloud Shell

A. Buka Konsol Google Cloud.
B. Buat project baru untuk codelab ini. Klik menu dropdown project di bagian atas.

Konsol Google Cloud

Saat membuat project, Anda dapat menautkan akun penagihan:
Tautkan Akun Penagihan

Atau, jika Anda sudah membuat project, Anda dapat membuka panel kiri, mengklik Billing, dan memeriksa apakah akun penagihan ditautkan ke akun GCP ini.

C. Mendapatkan kunci Gemini API

Setelah mengaktifkan kredit Google Cloud, Anda memerlukan kunci Gemini API untuk mengakses Gemini di Google Cloud.

Untuk membuat Kunci API Gemini, kita perlu menggunakan Google Vertex AI Studio untuk membuat kunci.

Di Vertex AI Studio, klik "Get API key" di pojok kiri bawah di atas "Documentation". Buat kunci API untuk Gemini (kunci ini terlihat seperti string panjang karakter yang tampaknya acak). Simpan kunci ini di lokasi yang aman. Kita akan menggunakan kunci API ini di Langkah 6 "Bangun Simulator Mobil Balap" untuk mengautentikasi akses kita ke Gemini di Google Cloud.

D. Klik ikon Cloud Shell di panel atas (ikon terminal) untuk membuka terminal berbasis browser.
Cloud Shell

E. Tunggu hingga sesi terminal dimulai.

Sesi Terminal

2. Mendapatkan kode

Buat cloning repositori master.

git clone https://github.com/ocupop/trustable-ai-codelab.git
cd trustable-ai-codelab

Perhatikan bahwa ada dua folder di repo ini: "koru-application" (aplikasi web) dan "streaming-telemetry-server" (telemetri mobil balap real-time yang disimulasikan). Langkah ini menjelaskan "streaming-telemetry-server". Kita akan menggunakan "koru-application" pada langkah berikutnya.

3. Aktifkan API yang diperlukan

Jalankan sekali per project:

# Set Project ID
gcloud config set project YOUR_PROJECT_ID
# Enable APIs
gcloud services enable \
  run.googleapis.com \
  cloudbuild.googleapis.com \
  artifactregistry.googleapis.com

Ganti YOUR_PROJECT_ID dengan project ID Anda yang sebenarnya (atau lewati baris pertama jika project sudah ditetapkan).

Anda dapat menemukan YOUR_PROJECT_ID dalam daftar Project

Sesi Terminal

4. Men-deploy backend ke Cloud Run

Dari root repo (yaitu, pastikan Anda berada di folder trustable-ai-codelab):

gcloud run deploy streaming-telemetry-server \
  --source streaming-telemetry-server \
  --platform managed \
  --region us-central1 \
  --allow-unauthenticated

Perhatikan bahwa Anda mungkin harus menekan 'Y' saat diminta

  • Saat pertama kali dijalankan, Anda mungkin diminta untuk mengaktifkan API atau membuat repositori Artifact Registry; setujui sesuai kebutuhan.
  • Jika Anda menggunakan region yang berbeda dengan us-central1, tentukan region tersebut menggunakan --region
  • Setelah deployment selesai, gcloud akan mencetak service-URL. Kita hanya perlu menambahkan "events" ke URL ini untuk menggunakannya sebagai endpoint lengkap untuk server telemetri.

5. Menggunakan URL streaming

Server telemetri kini memancarkan data telemetri simulasi menggunakan Server-Sent-Events (SSE) di endpoint formulir :

service-URL/events		// service-URL - the last line displayed by "deploy"

Uji di browser: Buka URL endpoint streaming ini menggunakan Chrome. Anda akan melihat data streaming yang masuk di browser, yang menyimulasikan data yang dipancarkan oleh sensor pada mobil balap.

Output dari endpoint streaming di tab browser

Anda dapat menutup tab browser untuk menghentikan koneksi.

Uji dengan curl:

Sekarang, mari kita lakukan pengujian dari command line shell.

curl -N service-URL/events		# Replace service-URL with actual deployment endpoint

Anda akan melihat data streaming masuk di jendela Cloud Shell.

Output dari endpoint streaming melalui command line shell

Kami akan menggunakan data telemetri ini untuk menyimulasikan data yang dipancarkan oleh sensor di mobil balap. Bagian codelab lainnya akan menggunakan data ini. Anda dapat menghentikan program curl dengan memasukkan CTRL-C di jendela terminal.

Yang Harus Anda Perhatikan

Saat Anda menyelesaikan bagian ini, perhatikan sifat data yang masuk. Telemetri mentah sering kali memiliki volume tinggi, sensitif terhadap waktu, dan tidak langsung cocok untuk penalaran AI. Setelah membangun aplikasi front-end, kita perlu memfilter data mentah ke dalam format efisien yang dapat diproses LLM dengan cepat.

Namun, pertama-tama, mari kita bangun front-end web untuk memvisualisasikan data.

6. Membangun Simulator Mobil Balap

Di bagian ini, Anda akan:

  • Membangun simulasi mobil balap
  • Hubungkan server telemetri ke aplikasi web mobil balap
  • Melihat balapan simulasi

Pada tahap ini, kita memiliki simulasi telemetri yang berfungsi dari mobil balap yang berjalan di cloud. Sekarang, mari kita buat aplikasi yang berjalan di mesin lokal Anda, terhubung ke Google Cloud, dan memvisualisasikan data tersebut.

Aplikasi AI tepercaya kami menggunakan kecanggihan dan fleksibilitas layanan Google Cloud serta kecerdasan lokal yang berjalan di Chrome.

Layanan telemetri streaming berjalan di Google Cloud, tetapi aplikasi mobil balap berjalan di mesin lokal Anda. Artinya, Anda harus meng-clone repositori lagi, kali ini ke laptop atau komputer desktop Anda.

Agar lebih sederhana, repositori yang sama berisi kode untuk server streaming dan aplikasi mobil balap.

Clone aplikasi front-end dari GitHub:

git clone https://github.com/ocupop/trustable-ai-codelab.git
cd trustable-ai-codelab

Setelah repo di-clone di laptop atau desktop Anda, mari jalankan aplikasi.

cd koru-application		# racing car simulation app
npm install
npm run dev

VITE

Di Chrome, buka port di komputer lokal Anda (http://localhost:5173 seperti pada contoh di atas). Anda akan melihat halaman landing untuk aplikasi "AI Motorsport Coaching".

Pelatih Sudut Anda

Klik tombol "Open Dashboard ->". Tindakan ini akan memulai UI untuk aplikasi.

Dasbor Koru

Pada tahap ini, Anda memiliki server telemetri yang menghasilkan telemetri mobil balap simulasi di Google Cloud, dan aplikasi web lokal yang dapat memvisualisasikan data tersebut dan terhubung ke LLM. Mari kita hubungkan, dan juga hubungkan ke layanan LLM Gemini.

Di pojok kanan atas aplikasi, klik ikon roda gigi (setelan).

Setelan Koru

Masukkan kunci Gemini API Anda dari Langkah 2. Hal ini memberi Anda akses ke layanan Gemini di Google Cloud.

Klik "Simpan" agar aplikasi mengingat kunci API Anda.

Sekarang, hubungkan aplikasi ke server telemetri. Di dasbor aplikasi, klik "Sesi Live".

Input streaming SSE Koru

Masukkan URL spesifik server telemetri berbasis cloud Anda (Langkah 5) di kolom teks yang bertuliskan "SSE URL or .txt file path". URL SSE kami berbentuk:

https://streaming-telemetry-server-${PROJECT_NUMBER}.${REGION}.run.app/events

Setelah Anda memasukkan URL endpoint server telemetri, klik "Hubungkan" (di sebelah kanan kolom teks). Jangan lupakan "events" di akhir URL.

Sekarang Anda akan melihat aplikasi yang memvisualisasikan data simulasi.

Jika volume speaker Anda dinaikkan, Anda dapat mendengar saran balap mobil dari berbagai jenis pelatih. Setiap pelatih memiliki kepribadian yang berbeda. Coba pilih pelatih yang berbeda untuk melihat saran balap yang bervariasi dan gaya vokal yang berbeda. Jika perlu, Anda dapat menonaktifkan audio dengan mengklik ikon speaker.

Contoh aplikasi yang sedang berjalan

Setelah memiliki aplikasi yang berfungsi, mari kita pelajari cara menyiapkan data untuk diproses secara efisien oleh LLM dan cara menambahkan fitur tambahan untuk meningkatkan kredibilitas sistem secara keseluruhan.

7. Menyiapkan Telemetri untuk Inferensi AI

Telemetri mentah berguna untuk simulasi, tetapi biasanya terlalu mendetail dan terlalu sering dikirim langsung ke LLM. Jika Anda mengirim semua data telemetri tanpa diubah, Anda dapat meningkatkan latensi, menimbulkan gangguan, dan mengurangi kualitas panduan yang dihasilkan.

Di bagian ini, Anda akan mengubah bentuk telemetri menjadi bentuk yang lebih berguna.

Di bagian ini, Anda akan:

  • Memeriksa JSON telemetri mentah
  • Mengidentifikasi kolom mana yang paling relevan untuk penalaran
  • Memfilter atau meringkas data
  • Kurangi detail yang tidak perlu
  • Menyiapkan representasi yang kompatibel dengan AI dari status mengemudi

Hal ini merupakan langkah penting dalam membangun AI yang dapat dipercaya. Kualitas respons tidak hanya bergantung pada model, tetapi juga pada struktur dan relevansi data yang diterima.

Sekarang, mari kita pelajari data spesifik untuk mobil balap. Kita dapat melakukan eksperimen dengan mengubah nilai tertentu dalam aplikasi, memuat ulang, dan mengamati hasilnya.

../src/services/telemetryStreamService.ts near line 180

// Clamp G-forces
gLat = Math.max(-3, Math.min(3, gLat));		// sideways G-force
gLong = Math.max(-3, Math.min(3, gLong));	// front/back G-force

Gaya gravitasi dalam mobil mengukur akselerasi atau perlambatan. Dalam mobil balap, pemahaman tentang gaya gravitasi membantu penanganan dan performa mobil secara keseluruhan. Jika aplikasi kami tidak memiliki informasi ini, akan sulit untuk memberikan saran kepada pengemudi. Beri komentar pada kedua baris tersebut, tetapkan nilai gLat dan gLong ke 0,0, lalu jalankan kembali aplikasi.

Perhatikan bahwa tidak ada saran yang diberikan saat mobil mendekati tikungan. Hal ini tidak terlalu membantu seorang pembalap!

Kemudian, batalkan perubahan Anda dan jalankan kembali aplikasi. Perhatikan saran audio yang bermanfaat saat mobil mencapai tikungan? Titik data gaya G sangat penting untuk memberikan saran kepada pengemudi.

Sekarang, mari kita batasi kecepatan mobil secara buatan menjadi 30 mph. Kita tidak akan memenangkan balapan apa pun dengan kecepatan tersebut, tetapi hal ini tentu akan menunjukkan jenis pelatihan yang kita terima.

Dalam file yang sama (telemetryStreamService.ts) di dekat baris 158, Anda akan menemukan fungsi processPoint(). Dalam fungsi tersebut, mari batasi kecepatan.

Ubah:

private processPoint(point: GpsSSEPoint) {
...
 const speedKmh = point.speed > 200 ? point.speed : point.speed * 3.6;
...

Kepada:

private processPoint(point: GpsSSEPoint) {
...
 let speedKmh = point.speed > 200 ? point.speed : point.speed * 3.6;
 speedKmh = Math.min(speedKmh, 48);   // 48 kmh is approx 30 mph
...

Jalankan kembali aplikasi. Jenis saran pelatihan apa yang sekarang kita dapatkan? Tidak banyak yang diperlukan jika kita berkendara santai.

Sekarang, kembalikan perubahan tersebut dan jalankan kembali aplikasi.

Jelas, kecepatan mobil adalah titik data yang berharga. Sangat penting untuk memahami data spesifik apa yang penting untuk memberikan saran yang berharga. Mengevaluasi data yang tidak relevan sama pentingnya.

Anda juga harus mulai memikirkan keamanan dan kepercayaan di sini. Bahkan input yang disiapkan dengan baik tidak menjamin jawaban yang andal. Kita masih perlu memperkenalkan aturan yang dipandu manusia dan batasan eksplisit.

Penyiapan data bukan hanya langkah pra-pemrosesan. Ini adalah bagian penting dari strategi kepercayaan. Input yang lebih bersih sering kali menghasilkan output yang lebih terfokus dan andal.

8. Menambahkan Batas Keamanan dan Keahlian Manusia yang Dikodekan

Sistem AI yang tepercaya tidak boleh hanya mengandalkan output model. Dalam banyak kasus, sistem yang paling andal menggabungkan penalaran model bahasa besar dengan aturan eksplisit, pengetahuan domain, dan batasan yang dipandu manusia.

Di bagian ini, Anda akan menambahkan lapisan tersebut.

Anda dapat menganggap lapisan ini sebagai pengetahuan pelatihan yang dienkode. Hal ini dapat mencakup pola respons pilihan, aturan validasi, pemeriksaan keamanan, atau panduan terstruktur yang membantu sistem tetap relevan dan berguna.

Di bagian ini, Anda akan:

  • Memperkenalkan aturan respons yang membentuk perilaku model
  • Menerapkan pemeriksaan keamanan untuk mengurangi saran yang menyesatkan
  • Menggabungkan keahlian manusia yang dienkode ke dalam pipeline
  • Bandingkan respons sebelum dan setelah penambahan ini

Mari kita selidiki cara menambahkan keahlian domain ke aplikasi kita.

LLM biasanya tidak dilatih dalam balap atau dalam fisika performa mobil balap. Jika aplikasi kami menyertakan keahlian domain tersebut, pengguna dapat lebih memercayai panduannya. Panduan tersebut berasal dari aturan berdasarkan keahlian manusia, dengan kata lain, lapisan keahlian domain.

../src/utils/coachingKnowledge.ts near line 115

...
export const RACING_PHYSICS_KNOWLEDGE = `
CORE PRINCIPLES:
1. **The Friction Circle:** A tire has 100% grip. If you use 100% for braking, you have 0% for turning.
  - *Error:* Turning while 100% braking = Understeer (Plowing).
  - *Fix:* "Trail braking" (releasing brake pressure as steering angle increases).

2. **Weight Transfer:**
  - Braking shifts weight forward (Front grip UP, Rear grip DOWN).
  - Accelerating shifts weight backward (Front grip DOWN, Rear grip UP).
  - *Error:* Lifting off throttle mid-corner shifts weight forward abruptly -> Oversteer (Spin risk).

3. **The racing line:**
...

Prinsip mobil balap ini adalah bahan utama dalam memberikan output yang dapat dipercaya. Apa yang akan terjadi jika kita tidak memiliki keahlian ini? Let's find out.

Mari hapus RACING_PHYSICS_KNOWLEDGE dan pelajari saran balap kami.

export const RACING_PHYSICS_KNOWLEDGE = ``;

Jalankan kembali aplikasi. Jenis saran pelatihan apa yang sekarang kita dapatkan?

Perhatikan saran umumnya.

Kami tidak lagi mendapatkan informasi mendetail tentang gesekan, transfer beban, kecepatan keluar, dll. Kredibilitas kami lebih rendah tanpa informasi ini. Pulihkan keahlian balap tersebut dan jalankan ulang aplikasi.

Langkah ini merupakan aspek penting dari sistem AI yang dapat dipercaya. Kepercayaan tidak akan muncul secara ajaib hanya dengan perintah yang lebih kuat. Kepercayaan muncul dari desain sistem dan pemikiran kritis.

LLM adalah bagian dari solusi, tetapi bukan solusi keseluruhan. Kepercayaan meningkat saat output AI dipandu oleh pengetahuan manusia yang eksplisit.

9. Mendesain Persona Pelatih dan Pengalaman Pengguna

Setelah pipeline penalaran Anda siap, pertanyaan berikutnya adalah bagaimana sistem harus berkomunikasi dengan pengguna.

Di bagian ini, Anda akan membentuk pengalaman pelatihan dengan menentukan cara lapisan strategi berkomunikasi dengan pengemudi. Anda akan menyempurnakan perintah sistem untuk salah satu persona pelatihan dan mempertimbangkan cara penyampaian panduannya agar jelas, tepat waktu, dan yang terpenting, dapat ditindaklanjuti.

Di bagian ini, Anda akan:

  • Membuat atau menyempurnakan perintah sistem untuk persona pelatihan
  • Bereksperimen dengan berbagai gaya pelatihan
  • Amati pengaruh perubahan perintah terhadap respons
  • Menentukan persyaratan UI untuk masukan yang dapat dipercaya
  • Memahami dukungan text-to-speech (TTS) untuk pesan mendesak dan tidak mendesak

Aplikasi kami mencakup beberapa persona pembinaan. Setiap saran memberikan jenis nasihat pelatihan yang berbeda.

PERSONA

KARAKTERISTIK

Tony

Motivasi, berbasis perasaan

Rachel

Teknis, berfokus pada fisika

AJ

Perintah langsung dan terus terang

Garmin

Pengoptimalan delta yang berfokus pada data

Super AJ

Adaptif, beralih per jenis error

Persona ini ditentukan dalam file ../src/utils/coachingKnowledge.ts.

Dalam file ini, Anda akan melihat peta objek (COACHES) yang mengaitkan kunci string dengan CoachPersonas. CoachPersona berisi atribut setiap jenis pelatih. Salah satu atribut penting adalah systemPrompt. Setiap persona memiliki systemPrompt-nya sendiri yang memandu LLM dalam cara merespons.

Mari kita ubah salah satu system prompts tersebut dan lihat respons LLM.

Di dekat baris 31, Anda akan melihat systemPrompt untuk "AJ", yang sangat terus terang dan blak-blakan dalam memberikan sarannya. Mari kita ubah systemPrompt sehingga AJ menjadi terlalu sopan.

systemPrompt: `You are AJ, a race engineer that is excessively polite. 
	Use telemtry terminology.  Be actionable
	Examples: 	"Lat G settling. please throttle", 
				"Brake when its convenient."
	Keep responses under 12 words. Never explain  just command.`

Jalankan kembali aplikasi, pilih AJ sebagai pelatih, dan lihat jenis respons yang dihasilkan.

Sekarang pulihkan systemPrompt asli dan jalankan ulang aplikasi. Perhatikan bahwa perintah sistem sangat penting dalam memandu LLM untuk memberikan respons yang sesuai dengan persona.

Kepercayaan bukan hanya tentang kebenaran. Hal ini juga terkait pengiriman. Saran yang akurat secara teknis tetap bisa tidak efektif jika tidak jelas, waktunya tidak tepat, atau mengganggu.

Sistem yang dapat dipercaya harus berkomunikasi dengan baik. Pengalaman pengguna adalah bagian dari arsitektur kepercayaan.

10. Meninjau Arsitektur End-to-End

Pada tahap ini, Anda telah membangun bagian utama sistem. Sekarang saatnya mundur dan meninjau cara kerja keduanya.

Aplikasi Anda kini mencakup komponen berikut:

  • Aliran telemetri
  • Lapisan visualisasi
  • Tahap transformasi data yang siap untuk AI
  • Komponen strategi yang didukung oleh LLM penalaran
  • Pedoman pembatas dan panduan manusia yang dienkode
  • Pengalaman pelatihan yang ditampilkan kepada pengguna

Cara yang berguna dan sederhana untuk memahami alur keseluruhan komponen ini adalah dengan menambahkan logging ke aplikasi kita.

Kita akan menambahkan logging untuk melihat data telemetri saat data tersebut mengalir melalui jalur.

Pertama, mari kita lihat data telemetri. Di telemetryStreamService.ts, sekitar baris 212 (sebelum this.emit(frame), tambahkan baris yang menampilkan kecepatan, gaya G lateral (akselerasi ke samping), dan seberapa keras pengemudi menekan pedal rem.

console.log('FRAME', { 
    speed: frame.speed.toFixed(1), 
    gLat: frame.gLat.toFixed(2),
    brake: frame.brake.toFixed(0) }
);

Muat ulang aplikasi. Sebelum menjalankan aplikasi, mari kita buka konsol di DevTools Chrome untuk melihat informasi proses debug ini.

Konsol DevTools

Di aplikasi, masukkan endpoint telemetri, lalu klik "Connect". Sekarang Anda dapat melihat data telemetri yang masuk.

Sekarang, mari kita tambahkan logging untuk jalur refleks dan jalur strategi.

Di ../src/services/coachingService.ts sekitar baris 71 sebelum this.emit(), tambahkan baris logging untuk jalur reflex:

console.log('Reflex', { 
	action: rule.action, 
	text, 
	coach: this.coachId }
);

Di file yang sama, di sekitar baris 287, sebelum this.emit(), tambahkan baris logging serupa untuk jalur strategy (mari kita tambahkan respons pelatihan text yang ditampilkan oleh Gemini API):

console.log('Strategy', { 
	coach: coach.id, 
	chars: text.length, 
	preview: text.slice(0, 60) }
);

Jalankan kembali aplikasi. Anda akan melihat di konsol bagaimana data telemetri mengalir dari sumber melalui jalur ini. Aliran data yang masuk difilter, dikirim ke LLM, diverifikasi dengan keahlian manusia tepercaya, dan ditampilkan kepada pengguna menggunakan antarmuka pengguna yang sesuai.

Perhatikan bahwa kami telah menghubungkan berbagai komponen teknis untuk mencapai tujuan yang lebih besar, yaitu AI yang tepercaya. Nilai arsitektur tidak hanya ada pada satu komponen saja. Nilai berasal dari bagaimana bagian-bagian tersebut saling memperkuat satu sama lain.

AI yang tepercaya adalah hasil arsitektur, bukan satu fitur.

Menghapus (menghapus layanan)

Penting untuk diingat bahwa Anda harus menghapus layanan ini jika tidak lagi memerlukannya. Setelah selesai menguji server telemetri bersama dengan aplikasi, Anda harus menghapus layanan Cloud Run dan menghentikan penagihan untuk layanan tersebut:

gcloud run services delete streaming-telemetry-server \
  --region us-central1 \
  --platform managed

Jangan lupa mengganti us-central1 dengan region yang Anda gunakan saat men-deploy, jika perlu. Konfirmasi saat diminta.

11. Tantangan

Setelah aplikasi inti berfungsi dan Anda memahami berbagai komponen, coba perluas desain.

Tantangan yang disarankan

  • Memindahkan lebih banyak logika pelatihan ke edge
  • Ubah simulasi untuk mendukung hujan atau traksi yang berkurang
  • Pelajari cara penyesuaian model atau fine-tuning dapat meningkatkan performa
  • Menyesuaikan arsitektur untuk domain lain, seperti kedokteran, manufaktur, atau logistik

Misalnya, pertimbangkan pertanyaan berikut saat menerapkan pelajaran yang didapat di lab ini ke domain lain:

  • Apa yang setara dengan telemetri balap, yaitu data berkelanjutan, di kolom lain?
  • Keputusan mana yang harus segera diambil dan keputusan mana yang lebih strategis?
  • Jenis keahlian manusia apa yang perlu dienkode?
  • Apa yang perlu dilihat pengguna agar percaya bahwa sistem dapat dipercaya?

Tantangan ini mendorong Anda untuk berpikir di luar contoh balapan dan mengenali pola desain yang lebih luas terkait kredibilitas di balik codelab ini.

12. Penutup dan Langkah Selanjutnya

Dalam codelab ini, Anda telah membuat lebih dari sekadar demo balap. Anda telah membangun contoh konkret tentang bagaimana sistem AI yang dapat dipercaya dapat dirancang.

Anda memulai dengan telemetri mentah, mengubahnya menjadi format yang berguna untuk LLM, menerapkan penalaran AI, dan memperkuat output dengan panduan manusia yang dienkode dan batasan respons. Selama prosesnya, Anda melihat bahwa kepercayaan berasal dari arsitektur, bukan hanya dari output model.

Sistem AI yang dapat dipercaya sering kali menggabungkan:

  • Data real-time terstruktur
  • Penalaran berbasis model
  • Keahlian domain yang dienkode
  • Perlindungan eksplisit
  • Desain pengalaman pengguna yang matang

Skenario balap membantu mewujudkan ide-ide ini, tetapi pendekatan yang sama dapat digunakan di mana saja rekomendasi AI harus tepat waktu, dapat ditindaklanjuti, dan dapat diandalkan.

Garis Finis