Kembali ke Blog1 April 2026

Membuat AI Chatbot dengan Python: Integrasi OpenAI dan Gemini

Panduan praktis membuat AI chatbot menggunakan Python dengan integrasi API OpenAI GPT dan Google Gemini untuk berbagai keperluan bisnis.

Membuat AI Chatbot dengan Python: Integrasi OpenAI dan Gemini

Membuat AI Chatbot dengan Python: Integrasi OpenAI dan Gemini

AI Chatbot

Artificial Intelligence semakin mudah diakses berkat API dari OpenAI dan Google Gemini. Dalam tutorial ini, kita akan membangun AI chatbot yang bisa digunakan untuk customer support, content generation, dan lainnya.

Persiapan Environment

mkdir ai-chatbot && cd ai-chatbot
python -m venv venv
source venv/bin/activate  # Linux/Mac
# atau: venv\Scripts\activate  # Windows

pip install openai google-generativeai python-dotenv fastapi uvicorn

Setup API Keys

Buat file .env:

OPENAI_API_KEY=sk-...your-key...
GEMINI_API_KEY=AIzaSy...your-key...

AI Development

Tool 1: Content Generator dengan Gemini

# content_generator.py
import google.generativeai as genai
from dotenv import load_dotenv
import os

load_dotenv()
genai.configure(api_key=os.getenv("GEMINI_API_KEY"))

class ContentGenerator:
    def __init__(self):
        self.model = genai.GenerativeModel(
            "gemini-2.0-flash",
            system_instruction="""Kamu adalah content writer profesional
            berbahasa Indonesia. Buat konten yang informatif, engaging,
            dan SEO-friendly."""
        )

    def generate_article(self, topic: str, word_count: int = 500) -> str:
        prompt = f"""Buatkan artikel tentang: {topic}
        Panjang: sekitar {word_count} kata
        Format: Markdown dengan heading, subheading, dan bullet points
        Bahasa: Indonesia
        Gaya: Profesional tapi mudah dipahami"""

        response = self.model.generate_content(prompt)
        return response.text

    def generate_social_post(self, topic: str, platform: str) -> str:
        prompt = f"""Buatkan post {platform} tentang: {topic}
        Format yang sesuai untuk {platform}.
        Sertakan emoji dan hashtag yang relevan."""

        response = self.model.generate_content(prompt)
        return response.text

# Contoh penggunaan
if __name__ == "__main__":
    gen = ContentGenerator()
    article = gen.generate_article("Tips optimasi performa Next.js")
    print(article)

Tool 2: AI Chatbot dengan OpenAI

# chatbot.py
from openai import OpenAI
from dotenv import load_dotenv
import os

load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

class AIChatbot:
    def __init__(self, system_prompt: str = None):
        self.system_prompt = system_prompt or (
            "Kamu adalah asisten AI yang helpful dan cerdas. "
            "Jawab dalam bahasa Indonesia yang baik dan sopan."
        )
        self.conversation_history = [
            {"role": "system", "content": self.system_prompt}
        ]

    def chat(self, message: str) -> str:
        self.conversation_history.append(
            {"role": "user", "content": message}
        )

        response = client.chat.completions.create(
            model="gpt-4o-mini",
            messages=self.conversation_history,
            max_tokens=1024,
            temperature=0.7,
        )

        reply = response.choices[0].message.content
        self.conversation_history.append(
            {"role": "assistant", "content": reply}
        )
        return reply

    def reset(self):
        self.conversation_history = [
            {"role": "system", "content": self.system_prompt}
        ]

# Contoh penggunaan
if __name__ == "__main__":
    bot = AIChatbot("Kamu adalah customer support untuk toko online.")
    print(bot.chat("Bagaimana cara melacak pesanan saya?"))
    print(bot.chat("Pesanan nomor ORD-12345"))

Tool 3: REST API dengan FastAPI

# main.py
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from content_generator import ContentGenerator
from chatbot import AIChatbot

app = FastAPI(title="AI Tools API")
generator = ContentGenerator()
chatbots: dict[str, AIChatbot] = {}

class ChatRequest(BaseModel):
    session_id: str
    message: str

class ContentRequest(BaseModel):
    topic: str
    word_count: int = 500

@app.post("/api/chat")
async def chat(req: ChatRequest):
    if req.session_id not in chatbots:
        chatbots[req.session_id] = AIChatbot()

    reply = chatbots[req.session_id].chat(req.message)
    return {"reply": reply, "session_id": req.session_id}

@app.post("/api/generate/article")
async def generate_article(req: ContentRequest):
    content = generator.generate_article(req.topic, req.word_count)
    return {"content": content, "topic": req.topic}

@app.post("/api/generate/social")
async def generate_social(topic: str, platform: str = "instagram"):
    content = generator.generate_social_post(topic, platform)
    return {"content": content, "platform": platform}

Jalankan: uvicorn main:app --reload

Python Tools

Tool 4: Analisis Sentimen

# sentiment.py
import google.generativeai as genai

class SentimentAnalyzer:
    def __init__(self):
        self.model = genai.GenerativeModel("gemini-2.0-flash")

    def analyze(self, text: str) -> dict:
        prompt = f"""Analisis sentimen teks berikut. Jawab dalam format JSON:
        {{"sentiment": "positive/negative/neutral",
         "confidence": 0.0-1.0,
         "keywords": ["kata1", "kata2"],
         "summary": "ringkasan singkat"}}

        Teks: {text}"""

        response = self.model.generate_content(prompt)
        return response.text

Tips Keamanan

  1. Jangan hardcode API key — selalu gunakan environment variables
  2. Rate limit API endpoint Anda
  3. Validasi semua input pengguna sebelum kirim ke AI
  4. Filter output AI untuk konten yang tidak sesuai
  5. Simpan log interaksi untuk audit
  6. Gunakan HTTPS untuk semua komunikasi API

Kesimpulan

Dengan Python, OpenAI, dan Gemini, Anda bisa membangun berbagai tools AI yang powerful. Dari chatbot customer support hingga content generator otomatis, kemungkinannya sangat luas.

Butuh solusi AI custom untuk bisnis Anda? Hubungi kami untuk konsultasi.

Tertarik dengan artikel lainnya?

Lihat Semua Artikel