NV9523 commited on
Commit
40e582c
·
verified ·
1 Parent(s): 715fbe6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -25
app.py CHANGED
@@ -1,43 +1,62 @@
1
- import gradio as gr
2
- import requests
3
  import os
 
 
 
 
 
 
 
4
 
5
- # Lấy key từ Secret
6
- API_TOKEN = os.environ.get("HF_KEY")
7
- API_URL = "https://api-inference.huggingface.co/models/meta-llama/Llama-3.2-1B-Instruct"
8
- HEADERS = {"Authorization": f"Bearer {API_TOKEN}"}
 
 
 
9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  SYSTEM_PROMPT = (
11
  "Bạn là một chatbot chuyên TÓM TẮT và TỔNG HỢP ý chính. "
12
  "Nhiệm vụ: nhận câu hỏi hoặc đoạn văn bản và trả lời ngắn gọn, "
13
  "liệt kê các điểm quan trọng nhất.\n\n"
14
  )
15
 
16
- def query(payload):
17
- response = requests.post(API_URL, headers=HEADERS, json=payload)
18
- return response.json()
19
-
20
  def chat_fn(user_input):
21
  prompt = SYSTEM_PROMPT + "Người dùng hỏi: " + user_input + "\n\nTóm tắt & tổng hợp:"
22
- data = query({
23
- "inputs": prompt,
24
- "parameters": {
25
- "max_new_tokens": 200,
26
- "temperature": 0.7,
27
- "top_p": 0.9,
28
- }
29
- })
30
- # Trả về text
31
- try:
32
- return data[0]["generated_text"]
33
- except Exception:
34
- return str(data)
35
 
 
36
  iface = gr.Interface(
37
  fn=chat_fn,
38
- inputs=gr.Textbox(lines=4, placeholder="Nhập đoạn văn hoặc câu hỏi..."),
39
  outputs="text",
40
- title="🤖 Chatbot Tóm Tắt & Tổng Hợp Ý Chính (HF API)"
41
  )
42
 
43
  if __name__ == "__main__":
 
 
 
1
  import os
2
+ import torch
3
+ from huggingface_hub import login
4
+ from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
5
+ import gradio as gr
6
+
7
+ # 🔑 Lấy token từ Secret
8
+ HF_TOKEN = os.environ.get("HF_KEY")
9
 
10
+ # 🔐 Login HF Hub (tương tự như chạy "huggingface-cli login")
11
+ if HF_TOKEN:
12
+ print("🔑 Đang đăng nhập Hugging Face Hub...")
13
+ login(token=HF_TOKEN)
14
+ print("✅ Đăng nhập thành công!")
15
+ else:
16
+ print("⚠️ Không tìm thấy HF_KEY trong Secrets!")
17
 
18
+ # 🚀 Load model
19
+ model_id = "meta-llama/Llama-3.2-1B-Instruct"
20
+
21
+ tokenizer = AutoTokenizer.from_pretrained(model_id, use_auth_token=True)
22
+ model = AutoModelForCausalLM.from_pretrained(
23
+ model_id,
24
+ torch_dtype=torch.float32,
25
+ low_cpu_mem_usage=True,
26
+ device_map="cpu"
27
+ )
28
+
29
+ pipe = pipeline(
30
+ "text-generation",
31
+ model=model,
32
+ tokenizer=tokenizer,
33
+ device=-1
34
+ )
35
+
36
+ # 📝 Prompt ngầm
37
  SYSTEM_PROMPT = (
38
  "Bạn là một chatbot chuyên TÓM TẮT và TỔNG HỢP ý chính. "
39
  "Nhiệm vụ: nhận câu hỏi hoặc đoạn văn bản và trả lời ngắn gọn, "
40
  "liệt kê các điểm quan trọng nhất.\n\n"
41
  )
42
 
 
 
 
 
43
  def chat_fn(user_input):
44
  prompt = SYSTEM_PROMPT + "Người dùng hỏi: " + user_input + "\n\nTóm tắt & tổng hợp:"
45
+ outputs = pipe(
46
+ prompt,
47
+ max_new_tokens=200,
48
+ temperature=0.7,
49
+ top_p=0.9,
50
+ do_sample=True,
51
+ )
52
+ return outputs[0]["generated_text"]
 
 
 
 
 
53
 
54
+ # 🎨 Gradio UI
55
  iface = gr.Interface(
56
  fn=chat_fn,
57
+ inputs=gr.Textbox(lines=4, placeholder="Nhập nội dung..."),
58
  outputs="text",
59
+ title="🤖 Chatbot Tóm Tắt & Tổng Hợp Ý Chính (Llama-3.2-1B, CPU)"
60
  )
61
 
62
  if __name__ == "__main__":