Membangun Chatbot Cerdas dengan Python dan Anthropic API
Membangun chatbot berbasis Large Language Model (LLM) bukan lagi monopoli perusahaan besar. Dengan Anthropic Claude API dan beberapa baris Python, kamu sudah bisa punya chatbot pintar sendiri dalam waktu kurang dari satu jam.
Persiapan
Install library yang dibutuhkan:
pip install anthropic python-dotenv
Buat file .env dan isi API key:
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxx
Chatbot Paling Sederhana
import anthropic
from dotenv import load_dotenv
load_dotenv()
client = anthropic.Anthropic()
def tanya(pertanyaan: str) -> str:
pesan = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": pertanyaan}
]
)
return pesan.content[0].text
# Coba panggil
jawaban = tanya("Jelaskan apa itu REST API dalam 3 kalimat.")
print(jawaban)
Mengelola Riwayat Percakapan (Multi-Turn)
Supaya chatbot ingat konteks obrolan sebelumnya, kita simpan riwayat percakapan dalam list dan kirim setiap kali:
import anthropic
from dotenv import load_dotenv
load_dotenv()
client = anthropic.Anthropic()
def chatbot():
riwayat = []
print("Chatbot siap. Ketik "keluar" untuk berhenti.
")
while True:
pesan_user = input("Kamu: ").strip()
if pesan_user.lower() == "keluar":
print("Sampai jumpa!")
break
if not pesan_user:
continue
riwayat.append({"role": "user", "content": pesan_user})
respons = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system="Kamu adalah asisten coding yang ramah dan menjawab dalam Bahasa Indonesia.",
messages=riwayat
)
jawaban = respons.content[0].text
riwayat.append({"role": "assistant", "content": jawaban})
print(f"
Bot: {jawaban}
")
if __name__ == "__main__":
chatbot()
Menambahkan System Prompt
System prompt menentukan karakter dan batasan chatbot:
SYSTEM_PROMPT = """
Kamu adalah asisten teknis untuk developer PHP/Laravel.
- Jawab selalu dalam Bahasa Indonesia yang jelas
- Sertakan contoh kode bila relevan
- Jika pertanyaan di luar topik PHP/Laravel, tolak dengan sopan
"""
respons = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=2048,
system=SYSTEM_PROMPT,
messages=[{"role": "user", "content": "Bagaimana cara membuat middleware di Laravel?"}]
)
Streaming Respons
Untuk pengalaman yang lebih natural (teks muncul bertahap seperti ChatGPT):
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Tulis fungsi Python untuk menghitung bilangan Fibonacci."}]
) as stream:
for teks in stream.text_stream:
print(teks, end="", flush=True)
print()
Penutup
Dengan pola di atas, kamu punya fondasi chatbot yang bisa dikembangkan lebih jauh — ditambah database untuk menyimpan sesi, diintegrasikan ke web dengan FastAPI, atau dijadikan Telegram bot. Anthropic Claude API gratis untuk tier developer dengan rate limit yang cukup untuk eksperimen dan project kecil.
0 Komentar