TLDR #
Chatbot modern umumnya dibangun di atas LLM API seperti OpenAI. Kamu cukup mengirim pesan ke endpoint chat/completions dengan daftar pesan (messages), lalu model membalas dengan teks. Artikel ini memandu dari nol: mendapatkan API key, memahami peran system / user / assistant, menulis contoh dengan curl dan Python, sampai membuat chatbot CLI sederhana.
Pendahuluan #
Dulu membangun chatbot berarti menulis ribuan baris aturan if-else. Sekarang, kamu cukup memanggil API model bahasa (LLM) dan model akan “mengerti” percakapan lalu membalas secara alami.
OpenAI menyediakan endpoint Chat Completions yang menerima percakapan dalam bentuk daftar pesan dan mengembalikan balasan. Inilah fondasi dari hampir semua chatbot modern — dari asisten customer service sampai aplikasi belajar.
Artikel ini fokus pada hal yang benar-benar penting: bagaimana memanggil API dengan benar dan membangun chatbot interaktif sederhana.
Prasyarat #
Siapkan:
- Akun OpenAI dengan saldo/API key.
- Python 3 (atau cukup
curluntuk uji coba awal). - Library
openaiuntuk Python (opsional).
Mendapatkan API Key #
- Buka platform.openai.com dan login.
- Masuk ke menu API Keys.
- Klik Create new secret key dan salin hasilnya.
Penting: API key bersifat rahasia. Jangan pernah menaruhnya di repository, screenshot, atau artikel publik. Simpan di environment variable atau secret manager.
Struktur Request Chat Completion #
Endpoint:
POST https://api.openai.com/v1/chat/completionsBody paling sederhana:
{
"model": "gpt-4o-mini",
"messages": [
{ "role": "user", "content": "Halo, siapa kamu?" }
]
}Peran (role) dalam percakapan #
| Role | Fungsi |
|---|---|
system |
Instruksi awal untuk menentukan perilaku model (opsional) |
user |
Pesan dari pengguna |
assistant |
Balasan dari model (dipakai untuk melanjutkan konteks) |
Contoh dengan system:
{
"model": "gpt-4o-mini",
"messages": [
{ "role": "system", "content": "Kamu adalah asisten guru matematika yang ramah dan sabar." },
{ "role": "user", "content": "Jelaskan apa itu bilangan prima." }
]
}Parameter umum #
| Parameter | Fungsi |
|---|---|
temperature |
0–2; makin tinggi makin kreatif, makin rendah makin deterministik |
max_tokens |
Batas panjang jawaban |
stream |
true untuk jawaban mengalir (typing effect) |
Contoh dengan curl #
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{"role": "user", "content": "Apa itu teorema Pythagoras?"}
]
}'Jalankan dengan API key di environment variable:
export OPENAI_API_KEY="sk-..."Jangan menempelkan key langsung di command line jika riwayat shell tersimpan.
Contoh dengan Python #
Install library resmi:
pip install openaiKode minimal:
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "Kamu adalah asisten guru matematika."},
{"role": "user", "content": "Jelaskan bilangan prima dengan contoh."},
],
temperature=0.7,
)
print(response.choices[0].message.content)Membangun Chatbot CLI #
Gabungkan semua jadi chatbot interaktif di terminal:
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
messages = [
{"role": "system", "content": "Kamu asisten yang ramah, jawab singkat dan jelas."}
]
print("Chatbot siap! Ketik 'exit' untuk keluar.\n")
while True:
user_input = input("Kamu: ")
if user_input.lower() in ("exit", "quit"):
break
messages.append({"role": "user", "content": user_input})
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=messages,
)
reply = response.choices[0].message.content
print(f"Bot: {reply}\n")
# Simpan balasan agar konteks percakapan terjaga
messages.append({"role": "assistant", "content": reply})Kunci chatbot yang “ingat” percakapan: kirim ulang seluruh riwayat messages setiap kali. Model tidak punya memori antar request — memori itu kamu yang kelola.
Memahami Biaya (Token) #
Kamu ditagih berdasarkan token — kira-kira potongan kata. Hitungan kasarnya:
- 1 token ≈ 4 karakter huruf Inggris, atau ~0,75 kata.
- Biaya = (token input × harga input) + (token output × harga output).
Model seperti gpt-4o-mini jauh lebih murah daripada gpt-4o, cocok untuk belajar dan prototype.
Tips hemat token:
- Jangan kirim riwayat yang tidak relevan; potong percakapan lama.
- Gunakan
max_tokensuntuk membatasi jawaban. - Pilih model yang sesuai kebutuhan, bukan selalu yang termahal.
Best Practices #
- Selalu pakai
systemuntuk mengarahkan nada dan batasan chatbot. - Kelola
messagessendiri — kamu yang memutuskan seberapa panjang konteks. - Jangan hardcode API key — pakai environment variable atau secret manager.
- Batasi
temperatureuntuk jawaban yang konsisten; naikkan untuk konten kreatif. - Tangani error seperti rate limit (
429) dan timeout dengan retry.
Keamanan #
- API key = uang. Kalau bocor, orang lain bisa memakai saldo kamu.
- Gunakan environment variable,
.envyang tidak di-commit, atau secret manager. - Jangan kirim data pribadi/pelanggan ke API jika tidak diizinkan kebijakan.
- Validasi dan saring output model sebelum ditampilkan ke pengguna (lihat artikel tentang Prompt Injection).
Ringkasan #
| Langkah | Inti |
|---|---|
| 1 | Dapatkan API key, simpan aman |
| 2 | Panggil chat/completions dengan messages |
| 3 | Gunakan system untuk mengarahkan perilaku |
| 4 | Simpan riwayat messages agar percakapan berlanjut |
| 5 | Atur temperature dan max_tokens sesuai kebutuhan |
Dokumentasi resmi: platform.openai.com/docs