Ogghey's picture
Create app.py
aad84fe verified
raw
history blame
1.09 kB
import gradio as gr
from sentence_transformers import SentenceTransformer, util
import torch
model = SentenceTransformer('all-MiniLM-L6-v2')
# Dummy FAQ user
faq = {
"uid123": [
{"q": "Apakah bisa COD?", "a": "Bisa, seluruh Indonesia"},
{"q": "Apakah ada garansi?", "a": "Garansi 7 hari"},
]
}
def chatbot(uid, question):
user_faq = faq.get(uid, [])
if not user_faq:
return "FAQ belum tersedia."
questions = [item["q"] for item in user_faq]
answers = [item["a"] for item in user_faq]
embeddings = model.encode(questions, convert_to_tensor=True)
query_embedding = model.encode(question, convert_to_tensor=True)
similarity = util.pytorch_cos_sim(query_embedding, embeddings)
best_idx = torch.argmax(similarity).item()
return answers[best_idx]
# Gradio Interface (bisa dipanggil via API juga)
iface = gr.Interface(
fn=chatbot,
inputs=["text", "text"],
outputs="text",
examples=[["uid123", "Apakah bisa bayar di tempat?"]],
allow_flagging="never",
title="Biruu Chatbot API"
)
iface.launch()