Lewati ke konten utama
  1. AI/

Membangun Chatbot Sederhana dengan OpenAI API

Penulis
GezyTech
Menulis tentang AI, Linux, Server, Docker, dan teknologi lainnya.

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:

  1. Akun OpenAI dengan saldo/API key.
  2. Python 3 (atau cukup curl untuk uji coba awal).
  3. Library openai untuk Python (opsional).

Mendapatkan API Key
#

  1. Buka platform.openai.com dan login.
  2. Masuk ke menu API Keys.
  3. 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/completions

Body 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 openai

Kode 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_tokens untuk membatasi jawaban.
  • Pilih model yang sesuai kebutuhan, bukan selalu yang termahal.

Best Practices
#

  • Selalu pakai system untuk mengarahkan nada dan batasan chatbot.
  • Kelola messages sendiri — kamu yang memutuskan seberapa panjang konteks.
  • Jangan hardcode API key — pakai environment variable atau secret manager.
  • Batasi temperature untuk 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, .env yang 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