Spaces:
Sleeping
Sleeping
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() | |