Vladislav commited on
Commit
477f2aa
·
1 Parent(s): 563d7cb
Files changed (4) hide show
  1. .gitattributes +35 -35
  2. README.md +20 -1
  3. app.py +83 -83
  4. requirements.txt +3 -3
.gitattributes CHANGED
@@ -1,35 +1,35 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,3 +1,4 @@
 
1
  ---
2
  title: Livecoder
3
  emoji: 💬
@@ -13,4 +14,22 @@ hf_oauth_scopes:
13
  short_description: livecoder app section
14
  ---
15
 
16
- An example chatbot using [Gradio](https://gradio.app), [`huggingface_hub`](https://huggingface.co/docs/huggingface_hub/v0.22.2/en/index), and the [Hugging Face Inference API](https://huggingface.co/docs/api-inference/index).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <<<<<<< HEAD
2
  ---
3
  title: Livecoder
4
  emoji: 💬
 
14
  short_description: livecoder app section
15
  ---
16
 
17
+ An example chatbot using [Gradio](https://gradio.app), [`huggingface_hub`](https://huggingface.co/docs/huggingface_hub/v0.22.2/en/index), and the [Hugging Face Inference API](https://huggingface.co/docs/api-inference/index).
18
+ =======
19
+ ---
20
+ title: Livecoder
21
+ emoji: 💬
22
+ colorFrom: yellow
23
+ colorTo: purple
24
+ sdk: gradio
25
+ sdk_version: 5.42.0
26
+ app_file: app.py
27
+ pinned: false
28
+ hf_oauth: true
29
+ hf_oauth_scopes:
30
+ - inference-api
31
+ short_description: livecoder app section
32
+ ---
33
+
34
+ An example chatbot using [Gradio](https://gradio.app), [`huggingface_hub`](https://huggingface.co/docs/huggingface_hub/v0.22.2/en/index), and the [Hugging Face Inference API](https://huggingface.co/docs/api-inference/index).
35
+ >>>>>>> 3d4926b (Revert)
app.py CHANGED
@@ -1,84 +1,84 @@
1
- import gradio as gr
2
- from transformers import AutoModelForCausalLM, AutoTokenizer
3
- import torch
4
-
5
- # Use lighter model for CPU
6
- #model_name = "microsoft/phi-2" # 2.7B - TOO HEAVY
7
- model_name = "TinyLlama/TinyLlama-1.1B-Chat-v1.0" # 1.1B - much lighter
8
-
9
- try:
10
- print(f"Loading {model_name}...")
11
- tokenizer = AutoTokenizer.from_pretrained(model_name)
12
- tokenizer.pad_token = tokenizer.eos_token
13
-
14
- model = AutoModelForCausalLM.from_pretrained(
15
- model_name,
16
- torch_dtype=torch.float32,
17
- device_map="cpu",
18
- low_cpu_mem_usage=True # Critical for CPU
19
- )
20
- print("Model loaded successfully")
21
-
22
- except Exception as e:
23
- print(f"Failed to load model: {e}")
24
- # Fallback to dummy function
25
- model, tokenizer = None, None
26
-
27
- def generate_response(message):
28
- """Process user input and generate response"""
29
- if not message.strip():
30
- return "Please enter a question."
31
-
32
- if model is None or tokenizer is None:
33
- return f"Model not loaded. Testing UI with: {message}"
34
-
35
- try:
36
- # Format for chat model
37
- prompt = f"<|user|>\n{message}\n<|assistant|>\n"
38
-
39
- inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=384)
40
-
41
- # Generate with lower token count for CPU
42
- with torch.no_grad():
43
- outputs = model.generate(
44
- inputs.input_ids,
45
- attention_mask=inputs.attention_mask, # FIX: Add attention mask
46
- max_new_tokens=600, # Reduced for CPU
47
- temperature=0.8,
48
- do_sample=True,
49
- top_p=0.9,
50
- pad_token_id=tokenizer.pad_token_id,
51
- eos_token_id=tokenizer.eos_token_id
52
- )
53
-
54
- response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
55
- return response.strip()
56
-
57
- except Exception as e:
58
- return f"Error: {str(e)[:100]}"
59
-
60
- # Create interface
61
- interface = gr.Interface(
62
- fn=generate_response,
63
- inputs=gr.Textbox(label="Input", placeholder="Enter programming question...", lines=3),
64
- outputs=gr.Textbox(label="Output", lines=10),
65
- title="LiveCoder API",
66
- description="LLM programming assistant",
67
- allow_flagging="never"
68
- )
69
-
70
- # API endpoint info
71
- USERNAME = "sarekuwa"
72
- SPACE_NAME = "livecoder"
73
- print(f"API Endpoint: https://{USERNAME}-{SPACE_NAME}.hf.space/api/predict")
74
-
75
- # CRITICAL: Enable queue for request processing
76
- interface.queue(default_concurrency_limit=1)
77
-
78
- # Launch application
79
- interface.launch(
80
- server_name="0.0.0.0",
81
- server_port=7860,
82
- share=False,
83
- debug=True
84
  )
 
1
+ import gradio as gr
2
+ from transformers import AutoModelForCausalLM, AutoTokenizer
3
+ import torch
4
+
5
+ # Use lighter model for CPU
6
+ #model_name = "microsoft/phi-2" # 2.7B - TOO HEAVY
7
+ model_name = "TinyLlama/TinyLlama-1.1B-Chat-v1.0" # 1.1B - much lighter
8
+
9
+ try:
10
+ print(f"Loading {model_name}...")
11
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
12
+ tokenizer.pad_token = tokenizer.eos_token
13
+
14
+ model = AutoModelForCausalLM.from_pretrained(
15
+ model_name,
16
+ torch_dtype=torch.float32,
17
+ device_map="cpu",
18
+ low_cpu_mem_usage=True # Critical for CPU
19
+ )
20
+ print("Model loaded successfully")
21
+
22
+ except Exception as e:
23
+ print(f"Failed to load model: {e}")
24
+ # Fallback to dummy function
25
+ model, tokenizer = None, None
26
+
27
+ def generate_response(message):
28
+ """Process user input and generate response"""
29
+ if not message.strip():
30
+ return "Please enter a question."
31
+
32
+ if model is None or tokenizer is None:
33
+ return f"Model not loaded. Testing UI with: {message}"
34
+
35
+ try:
36
+ # Format for chat model
37
+ prompt = f"<|user|>\n{message}\n<|assistant|>\n"
38
+
39
+ inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=384)
40
+
41
+ # Generate with lower token count for CPU
42
+ with torch.no_grad():
43
+ outputs = model.generate(
44
+ inputs.input_ids,
45
+ attention_mask=inputs.attention_mask, # FIX: Add attention mask
46
+ max_new_tokens=600,
47
+ temperature=0.8,
48
+ do_sample=True,
49
+ top_p=0.9,
50
+ pad_token_id=tokenizer.pad_token_id,
51
+ eos_token_id=tokenizer.eos_token_id
52
+ )
53
+
54
+ response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
55
+ return response.strip()
56
+
57
+ except Exception as e:
58
+ return f"Error: {str(e)[:100]}"
59
+
60
+ # Create interface
61
+ interface = gr.Interface(
62
+ fn=generate_response,
63
+ inputs=gr.Textbox(label="Input", placeholder="Enter programming question...", lines=3),
64
+ outputs=gr.Textbox(label="Output", lines=10),
65
+ title="LiveCoder API",
66
+ description="LLM programming assistant",
67
+ allow_flagging="never"
68
+ )
69
+
70
+ # API endpoint info
71
+ USERNAME = "sarekuwa"
72
+ SPACE_NAME = "livecoder"
73
+ print(f"API Endpoint: https://{USERNAME}-{SPACE_NAME}.hf.space/api/predict")
74
+
75
+ # CRITICAL: Enable queue for request processing
76
+ interface.queue(default_concurrency_limit=1)
77
+
78
+ # Launch application
79
+ interface.launch(
80
+ server_name="0.0.0.0",
81
+ server_port=7860,
82
+ share=False,
83
+ debug=True
84
  )
requirements.txt CHANGED
@@ -1,4 +1,4 @@
1
- torch>=2.0.0
2
- transformers>=4.35.0
3
- gradio>=4.0.0
4
  accelerate
 
1
+ torch>=2.0.0
2
+ transformers>=4.35.0
3
+ gradio>=4.0.0
4
  accelerate