C3 · Modul 02
Penyedia, kunci, dan klien
57 langkah singkat, dari mudah sampai tantangan.
Level 1
Kenal
Level 2
Paham
Level 3
Terapkan
Level 4
Tantangan
Level 5
Pendalaman
Intinya
- Hampir semua penyedia menerima bentuk Chat Completions yang sama, tetapi "kompatibel" tidak berarti identik: uji setiap penyedia dengan parameter yang benar-benar kamu kirim.
- Kunci API tidak pernah ada di repo, log, peramban, atau percakapan agen; aplikasi menolak start bila kunci wajib kosong.
- Service hanya mengenal
LlmClient. Tes memakaiFakeLlmyang merekam payload, tanpa jaringan. - Satu lapis retry dengan backoff dan jitter, hanya untuk galat sementara, di dalam anggaran waktu; lalu fallback dan circuit breaker per model.
- Saat model tidak tersedia, aplikasi masuk mode terdegradasi yang tetap berguna; fallback saat streaming hanya sebelum potongan pertama.
Sebelum mulai
±6 jam (konsep dan latihan di peramban ±3,5 jam, lab tanyadok ±2,5 jam).
Modul ini memakai materi di bawah. Belum yakin? Ulas dulu bagian yang disebut.
Hasil belajar: membaca dan menulis permintaan Chat Completions kompatibel OpenAI dan mengenali perbedaan nyata antarpenyedia di balik kata "kompatibel"; mengelola kunci API (tidak pernah di repo, log, peramban, atau percakapan agen; gagal saat start bila kunci kosong); membangun LlmClient bertipe dengan FakeLlm yang merekam payload dan registri model dari variabel lingkungan; mengklasifikasikan galat HTTP, membaca Retry-After, dan mengurai stream SSE; menerapkan retry dengan backoff dan jitter, anggaran waktu, fallback, circuit breaker, dan mode terdegradasi.
Proyek: tanyadok mendapat kerangka repo dan lapisan klien: client.py (LlmClient, OpenAICompatClient, ResilientLlm, CircuitBreaker, pengurai SSE), fake.py, registry.py, cli.py, dan 34 tes tanpa jaringan.
Istilah di modul ini (25)
Ketuk istilah untuk melihat penjelasannya. Di materi, istilah bergaris titik membuka kartu yang sama. Semua istilah course
Bahan modul
Semua kode, latihan, dan data modul ini dalam satu zip, untuk dijalankan di laptop atau Google Colab.
- 27 contoh kode
- 5 berkas latihan + tes
Lihat isi zip
- BACA-DULU.txt
- contoh_c3_02_41.py
- contoh_c3_02_67.py
- contoh_c3_02_96.py
- contoh_c3_02_125.py
- contoh_c3_02_192.py
- contoh_c3_02_275.py
- contoh_c3_02_302.py
- contoh_c3_02_334.py
- contoh_c3_02_367.py
- contoh_c3_02_413.py
- contoh_c3_02_489.py
- contoh_c3_02_541.py
- contoh_c3_02_585.py
- contoh_c3_02_603.py
- contoh_c3_02_827.py
- contoh_c3_02_861.py
- contoh_c3_02_940.py
- contoh_c3_02_966.py
- contoh_c3_02_992.py
- contoh_c3_02_1109.py
- contoh_c3_02_1191.py
- contoh_c3_02_1284.py
- contoh_c3_02_1440.py
- contoh_c3_02_1857.py
- contoh_c3_02_1897.py
- contoh_c3_02_1931.py
- contoh_c3_02_1960.py
- test_c3_02_1.py
- test_c3_02_2.py
- test_c3_02_3.py
- test_c3_02_4.py
- test_c3_02_5.py