fareldevelopers commited on
Commit
06ddf78
·
verified ·
1 Parent(s): 8555d9c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -18
app.py CHANGED
@@ -1,34 +1,59 @@
 
1
  import gradio as gr
2
  from datasets import load_dataset
 
3
 
4
- # Memuat dataset baru Anda
5
  try:
6
- # Menggunakan split='train' sebagai standar, silakan sesuaikan jika nama split-nya berbeda
7
  dataset = load_dataset("fareldevelopers/gpt", split="train")
8
  except Exception as e:
9
  dataset = None
10
  print(f"Gagal memuat dataset: {e}")
11
 
 
 
 
 
12
  def respons_chat(pesan_user, history):
13
- if not dataset:
14
- return "Dataset gagal dimuat. Periksa kembali nama repository atau strukturnya."
15
-
16
- # Mencari kata kunci yang cocok di dalam kolom 'instruction' atau 'prompt'
17
- # Catatan: Pastikan nama kolom di dataset Anda adalah 'instruction'. Jika berbeda (misal 'prompt'), ganti teks di bawah.
18
- kolom_input = 'instruction'
19
- kolom_output = 'response'
20
-
21
- for baris in dataset:
22
- if kolom_input in baris and pesan_user.lower() in str(baris[kolom_input]).lower():
23
- return baris.get(kolom_output, "Kolom respon tidak ditemukan.")
24
-
25
- return "Maaf, saya tidak menemukan jawaban yang cocok untuk instruksi tersebut di dalam dataset."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
- # Membuat antarmuka Chat
28
  app = gr.ChatInterface(
29
  fn=respons_chat,
30
- title="Farel Developers GPT",
31
- description="Aplikasi Space untuk menjelajahi dan berinteraksi dengan dataset custom."
32
  )
33
 
34
  if __name__ == "__main__":
 
1
+ import os
2
  import gradio as gr
3
  from datasets import load_dataset
4
+ from huggingface_hub import InferenceClient
5
 
6
+ # 1. Memuat dataset Anda
7
  try:
 
8
  dataset = load_dataset("fareldevelopers/gpt", split="train")
9
  except Exception as e:
10
  dataset = None
11
  print(f"Gagal memuat dataset: {e}")
12
 
13
+ # 2. Inisialisasi Klien AI untuk pertanyaan di luar dataset
14
+ # Menggunakan model open-source populer (bisa diganti sesuai kebutuhan)
15
+ client = InferenceClient("mistralai/Mistral-7B-Instruct-v0.3")
16
+
17
  def respons_chat(pesan_user, history):
18
+ # Pengecekan Tahap 1: Cari di dataset terlebih dahulu
19
+ if dataset:
20
+ kolom_input = 'instruction'
21
+ kolom_output = 'response'
22
+
23
+ for baris in dataset:
24
+ if kolom_input in baris and pesan_user.lower().strip() == str(baris[kolom_input]).lower().strip():
25
+ return baris.get(kolom_output, "Data ditemukan, tetapi kolom respon kosong.")
26
+
27
+ # Pengecekan Tahap 2: Jika tidak ada di dataset, lempar ke Model AI
28
+ try:
29
+ # Menyusun format percakapan untuk LLM
30
+ messages = []
31
+ for user_msg, ai_msg in history:
32
+ messages.append({"role": "user", "content": user_msg})
33
+ messages.append({"role": "assistant", "content": ai_msg})
34
+ messages.append({"role": "user", "content": pesan_user})
35
+
36
+ # Memanggil API Hugging Face Inference
37
+ response = ""
38
+ for message in client.chat_completion(
39
+ messages,
40
+ max_tokens=512,
41
+ stream=True,
42
+ temperature=0.7,
43
+ ):
44
+ token = message.choices[0].delta.content
45
+ if token:
46
+ response += token
47
+ return response
48
+
49
+ except Exception as e:
50
+ return f"Maaf, terjadi kesalahan pada server AI: {str(e)}"
51
 
52
+ # 3. Membuat Antarmuka Gradio
53
  app = gr.ChatInterface(
54
  fn=respons_chat,
55
+ title="Custom Hybrid GPT",
56
+ description="Asisten AI yang terintegrasi dengan dataset lokal dan model generatif publik."
57
  )
58
 
59
  if __name__ == "__main__":