wormgpt / app.py
fareldevelopers's picture
Update app.py
ed9c5dc verified
Raw
History Blame Contribute Delete
2.04 kB
import os
import gradio as gr
from datasets import load_dataset
from huggingface_hub import InferenceClient
# 1. Memuat dataset Anda
try:
dataset = load_dataset("fareldevelopers/gpt", split="train")
except Exception as e:
dataset = None
print(f"Gagal memuat dataset: {e}")
# 2. Mengambil token otomatis dari sistem Hugging Face Space
hf_token = os.environ.get("HF_TOKEN")
# Inisialisasi Klien AI dengan Token Otentikasi
# Menggunakan model open-source Zephyr (alternatif yang sangat stabil untuk inference)
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta", token=hf_token)
def respons_chat(pesan_user, history):
# Pengecekan Tahap 1: Cari di dataset terlebih dahulu
if dataset:
kolom_input = 'instruction'
kolom_output = 'response'
for baris in dataset:
if kolom_input in baris and pesan_user.lower().strip() == str(baris[kolom_input]).lower().strip():
return baris.get(kolom_output, "Data ditemukan, tetapi kolom respon kosong.")
# Pengecekan Tahap 2: Jika tidak ada di dataset, lempar ke Model AI
try:
messages = []
for user_msg, ai_msg in history:
messages.append({"role": "user", "content": user_msg})
messages.append({"role": "assistant", "content": ai_msg})
messages.append({"role": "user", "content": pesan_user})
response = ""
for message in client.chat_completion(
messages,
max_tokens=512,
stream=True,
temperature=0.7,
):
token = message.choices[0].delta.content
if token:
response += token
return response
except Exception as e:
return f"Maaf, terjadi kesalahan pada server AI: {str(e)}"
# 3. Membuat Antarmuka Gradio
app = gr.ChatInterface(
fn=respons_chat,
title="Custom Hybrid GPT",
description="Asisten AI yang terintegrasi dengan dataset lokal dan model generatif publik."
)
if __name__ == "__main__":
app.launch()