IndoBot-AI / app.py
Sofa321's picture
Update app.py
37ed814 verified
raw
history blame
1.86 kB
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification
import gradio as gr
# Load Model Pre-trained (BERT)
MODEL_NAME = "indobenchmark/indobert-base-p2"
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME, num_labels=2)
# Pipeline untuk prediksi teks
classifier = pipeline("text-classification", model=model, tokenizer=tokenizer)
# Fungsi Chatbot
def chatbot_respon(user_input):
# Predefined responses based on intent
predefined_responses = {
"halo": "Hai juga! Ada yang bisa aku bantu?",
"apa kabar": "Aku baik, bagaimana dengan kamu?",
"siapa namamu": "Aku adalah IndoBot AI, teman bicaramu.",
"ceritakan lelucon": "Kenapa ayam menyeberang jalan? Untuk ke sisi lain!"
}
# Cari respons di predefined
for key, response in predefined_responses.items():
if key in user_input.lower():
return response
# Jika tidak ada di predefined, gunakan model
prediction = classifier(user_input)[0]
label = prediction['label']
confidence = prediction['score']
if confidence > 0.7: # Threshold confidence
if label == "LABEL_0":
return "Aku tidak yakin dengan pertanyaanmu, bisakah kamu menjelaskannya lebih lanjut?"
elif label == "LABEL_1":
return "Tentu! Aku bisa membantu menjelaskan topik ini lebih jauh."
return "Maaf, aku tidak mengerti pertanyaanmu."
# Gradio Interface
interface = gr.Interface(
fn=chatbot_respon,
inputs=gr.Textbox(lines=2, placeholder="Tanyakan sesuatu..."),
outputs="text",
title="IndoBot AI - Lebih Pintar",
description="IndoBot AI adalah chatbot berbasis bahasa Indonesia dengan pemahaman lebih mendalam. Tanyakan sesuatu!"
)
if __name__ == "__main__":
interface.launch()