AiCoderv2 commited on
Commit
577b861
·
verified ·
1 Parent(s): 8b84056

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -21
app.py CHANGED
@@ -1,34 +1,38 @@
1
  import threading
2
- import time
3
  from datasets import load_dataset
4
  import gradio as gr
5
  from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
6
 
7
- # Global variable to store dataset loading status
8
  dataset_loaded = False
9
- dataset_info = "Dataset not loaded yet."
 
10
 
11
  def load_dataset_in_background():
12
- global dataset_loaded, dataset_info
13
  try:
14
- dataset_info = "Loading dataset..."
15
  dataset = load_dataset("HuggingFaceFW/fineweb", split="train")
16
- # Save to CSV if needed
17
  dataset.to_csv("data.csv")
18
- dataset_info = "Dataset loaded successfully!"
19
- dataset_loaded = True
 
20
  except Exception as e:
21
- dataset_info = f"Error loading dataset: {e}"
 
 
22
 
23
  # Start dataset loading in background thread
24
  threading.Thread(target=load_dataset_in_background, daemon=True).start()
25
 
26
- # Load GPT-2 model for inference
27
  model_name = "gpt2"
28
  tokenizer = AutoTokenizer.from_pretrained(model_name)
29
  model = AutoModelForCausalLM.from_pretrained(model_name)
30
  generator = pipeline('text-generation', model=model, tokenizer=tokenizer, device=-1)
31
 
 
32
  def generate_response(prompt):
33
  responses = generator(
34
  prompt,
@@ -41,26 +45,25 @@ def generate_response(prompt):
41
  )
42
  return responses[0]['generated_text'].strip()
43
 
44
- # Gradio Interface
45
  with gr.Blocks() as demo:
46
- gr.Markdown("## AI Assistant with Background Dataset Loading")
47
- dataset_status = gr.Textbox(value=dataset_info, label="Dataset Loading Status", interactive=False, lines=2)
48
 
49
- def get_dataset_status():
50
- return dataset_info
 
51
 
52
- # Refresh status button (or auto-update)
53
- refresh_btn = gr.Button("Check Dataset Status")
54
- refresh_btn.click(get_dataset_status, outputs=dataset_status)
55
 
56
  gr.Markdown("### Chat with the AI")
57
  prompt_input = gr.Textbox(label="Your prompt", placeholder="Ask me anything...")
58
  response_output = gr.Textbox(label="AI Response", lines=10)
59
 
60
- def respond(prompt):
61
- # You can implement logic to use dataset info here if needed
62
  return generate_response(prompt)
63
 
64
- gr.Button("Ask").click(respond, inputs=prompt_input, outputs=response_output)
65
 
66
  demo.launch()
 
1
  import threading
 
2
  from datasets import load_dataset
3
  import gradio as gr
4
  from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
5
 
6
+ # Global variables for dataset status
7
  dataset_loaded = False
8
+ dataset_status_message = "Dataset is still loading..."
9
+ dataset_lock = threading.Lock()
10
 
11
  def load_dataset_in_background():
12
+ global dataset_loaded, dataset_status_message
13
  try:
14
+ # Load dataset from Hugging Face
15
  dataset = load_dataset("HuggingFaceFW/fineweb", split="train")
16
+ # Save to CSV for later use
17
  dataset.to_csv("data.csv")
18
+ with dataset_lock:
19
+ dataset_loaded = True
20
+ dataset_status_message = "Dataset loaded successfully!"
21
  except Exception as e:
22
+ with dataset_lock:
23
+ dataset_loaded = False
24
+ dataset_status_message = f"Error loading dataset: {e}"
25
 
26
  # Start dataset loading in background thread
27
  threading.Thread(target=load_dataset_in_background, daemon=True).start()
28
 
29
+ # Load GPT-2 for inference
30
  model_name = "gpt2"
31
  tokenizer = AutoTokenizer.from_pretrained(model_name)
32
  model = AutoModelForCausalLM.from_pretrained(model_name)
33
  generator = pipeline('text-generation', model=model, tokenizer=tokenizer, device=-1)
34
 
35
+ # Function to generate response
36
  def generate_response(prompt):
37
  responses = generator(
38
  prompt,
 
45
  )
46
  return responses[0]['generated_text'].strip()
47
 
48
+ # Gradio interface
49
  with gr.Blocks() as demo:
50
+ gr.Markdown("## GPT-2 AI Assistant with Background Dataset Loading")
51
+ status_box = gr.Textbox(value=dataset_status_message, label="Dataset Loading Status", interactive=False, lines=2)
52
 
53
+ def refresh_status():
54
+ with dataset_lock:
55
+ return dataset_status_message
56
 
57
+ refresh_button = gr.Button("Check Dataset Status")
58
+ refresh_button.click(refresh_status, outputs=status_box)
 
59
 
60
  gr.Markdown("### Chat with the AI")
61
  prompt_input = gr.Textbox(label="Your prompt", placeholder="Ask me anything...")
62
  response_output = gr.Textbox(label="AI Response", lines=10)
63
 
64
+ def chat(prompt):
 
65
  return generate_response(prompt)
66
 
67
+ gr.Button("Ask").click(chat, inputs=prompt_input, outputs=response_output)
68
 
69
  demo.launch()