Produktivitas

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

Komentar ditinjau dulu sebelum tampil.