Georg4000 commited on
Commit
ec2ca3d
ยท
verified ยท
1 Parent(s): 2232874

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -14
app.py CHANGED
@@ -2,34 +2,37 @@ import gradio as gr
2
  from transformers import AutoModelForCausalLM, AutoTokenizer
3
  from huggingface_hub import login
4
  import torch
5
- import os
6
 
7
- # ุงู„ุญุตูˆู„ ุนู„ู‰ ุงู„ุชูˆูƒู† ู…ู† Secrets
8
  hf_token = os.getenv("HF_TOKEN")
9
 
10
- # ุชุณุฌูŠู„ ุงู„ุฏุฎูˆู„ ุฅู„ู‰ Hugging Face
11
  if hf_token:
12
  login(token=hf_token)
13
  else:
14
  raise ValueError("Hugging Face token is missing. Please check your secrets.")
15
 
16
- # ุงุณุชุฎุฏุงู… ู†ู…ูˆุฐุฌ TinyLlama ุงู„ุฃุฎู
17
  model_name = "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
18
 
19
- # ุชุญุฏูŠุฏ ุงู„ุฌู‡ุงุฒ ุงู„ู…ู†ุงุณุจ (GPU ุฃูˆ CPU)
20
  device = "cuda" if torch.cuda.is_available() else "cpu"
21
 
22
- # ุชุญู…ูŠู„ ุงู„ู†ู…ูˆุฐุฌ ูˆุงู„ู…ุญูˆู„
23
  model = AutoModelForCausalLM.from_pretrained(
24
  model_name,
25
  torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32,
26
  device_map="auto",
27
- token=hf_token,
28
  trust_remote_code=True
29
  )
 
30
  tokenizer = AutoTokenizer.from_pretrained(model_name)
31
 
32
- # ุฑุฏูˆุฏ ู…ุฎุตุตุฉ
 
 
 
33
  custom_responses = {
34
  "ู…ุง ู‡ูˆ ู‡ุฏููƒุŸ": "ู‡ุฏููŠ ู‡ูˆ ุชู‚ุฏูŠู… ุงู„ู…ุณุงุนุฏุฉ ูˆุงู„ุฅุฌุงุจุฉ ุนู„ู‰ ุฃุณุฆู„ุชูƒ ุจุฃูุถู„ ุทุฑูŠู‚ุฉ ู…ู…ูƒู†ุฉ.",
35
  "who created you?": "I was created by George.",
@@ -42,8 +45,11 @@ custom_responses = {
42
  "ไฝ ็š„็ผ–็จ‹่€…ๆ˜ฏ่ฐ๏ผŸ": "ๆˆ‘็š„็ผ–็จ‹่€…ๆ˜ฏ Georgeใ€‚",
43
  }
44
 
45
- # ุฏุงู„ุฉ ุงู„ุฏุฑุฏุดุฉ
46
  def chatbot(user_input):
 
 
 
47
  user_input = user_input.lower()
48
 
49
  # ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุฑุฏูˆุฏ ุงู„ู…ุฎุตุตุฉ ุฃูˆู„ุงู‹
@@ -52,14 +58,15 @@ def chatbot(user_input):
52
  return answer
53
 
54
  # ู…ุนุงู„ุฌุฉ ุงู„ุฅุฏุฎุงู„ ุจุงุณุชุฎุฏุงู… ุงู„ู†ู…ูˆุฐุฌ
55
- inputs = tokenizer(user_input, return_tensors="pt").to(device)
56
 
57
- with torch.no_grad(): # ุชู‚ู„ูŠู„ ุงุณุชู‡ู„ุงูƒ ุงู„ุฐุงูƒุฑุฉ
58
- output = model.generate(**inputs, max_length=100)
59
 
60
  response = tokenizer.decode(output[0], skip_special_tokens=True)
 
61
  return response
62
 
63
- # ุชุดุบูŠู„ ุงู„ูˆุงุฌู‡ุฉ ู…ุน Gradio
64
- iface = gr.Interface(fn=chatbot, inputs="text", outputs="text")
65
  iface.launch(share=True)
 
2
  from transformers import AutoModelForCausalLM, AutoTokenizer
3
  from huggingface_hub import login
4
  import torch
5
+ import os
6
 
7
+ # ๐Ÿ”น ุงู„ุญุตูˆู„ ุนู„ู‰ ุงู„ุชูˆูƒู† ู…ู† Secrets
8
  hf_token = os.getenv("HF_TOKEN")
9
 
10
+ # ๐Ÿ”น ุชุณุฌูŠู„ ุงู„ุฏุฎูˆู„ ุฅู„ู‰ Hugging Face
11
  if hf_token:
12
  login(token=hf_token)
13
  else:
14
  raise ValueError("Hugging Face token is missing. Please check your secrets.")
15
 
16
+ # ๐Ÿ”น ุงุณุชุฎุฏุงู… ู†ู…ูˆุฐุฌ TinyLlama ุงู„ุฃุฎู
17
  model_name = "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
18
 
19
+ # ๐Ÿ”น ุชุญุฏูŠุฏ ุงู„ุฌู‡ุงุฒ ุงู„ู…ู†ุงุณุจ (GPU ุฃูˆ CPU)
20
  device = "cuda" if torch.cuda.is_available() else "cpu"
21
 
22
+ # ๐Ÿ”น ุชุญู…ูŠู„ ุงู„ู†ู…ูˆุฐุฌ ูˆุงู„ู…ุญูˆู„
23
  model = AutoModelForCausalLM.from_pretrained(
24
  model_name,
25
  torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32,
26
  device_map="auto",
 
27
  trust_remote_code=True
28
  )
29
+
30
  tokenizer = AutoTokenizer.from_pretrained(model_name)
31
 
32
+ # ๐Ÿ”น ุญู„ ู…ุดูƒู„ุฉ ุงู„ู€ padding
33
+ tokenizer.pad_token = tokenizer.eos_token
34
+
35
+ # ๐Ÿ”น ุฑุฏูˆุฏ ู…ุฎุตุตุฉ
36
  custom_responses = {
37
  "ู…ุง ู‡ูˆ ู‡ุฏููƒุŸ": "ู‡ุฏููŠ ู‡ูˆ ุชู‚ุฏูŠู… ุงู„ู…ุณุงุนุฏุฉ ูˆุงู„ุฅุฌุงุจุฉ ุนู„ู‰ ุฃุณุฆู„ุชูƒ ุจุฃูุถู„ ุทุฑูŠู‚ุฉ ู…ู…ูƒู†ุฉ.",
38
  "who created you?": "I was created by George.",
 
45
  "ไฝ ็š„็ผ–็จ‹่€…ๆ˜ฏ่ฐ๏ผŸ": "ๆˆ‘็š„็ผ–็จ‹่€…ๆ˜ฏ Georgeใ€‚",
46
  }
47
 
48
+ # ๐Ÿ”น ุฏุงู„ุฉ ุงู„ุฏุฑุฏุดุฉ
49
  def chatbot(user_input):
50
+ if not user_input.strip(): # ุงู„ุชุฃูƒุฏ ู…ู† ุฃู† ุงู„ุฅุฏุฎุงู„ ู„ูŠุณ ูุงุฑุบู‹ุง
51
+ return "Please enter a message."
52
+
53
  user_input = user_input.lower()
54
 
55
  # ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุฑุฏูˆุฏ ุงู„ู…ุฎุตุตุฉ ุฃูˆู„ุงู‹
 
58
  return answer
59
 
60
  # ู…ุนุงู„ุฌุฉ ุงู„ุฅุฏุฎุงู„ ุจุงุณุชุฎุฏุงู… ุงู„ู†ู…ูˆุฐุฌ
61
+ inputs = tokenizer(user_input, return_tensors="pt", padding=True, truncation=True).to(device)
62
 
63
+ with torch.no_grad(): # ุชุญุณูŠู† ุงู„ุฃุฏุงุก
64
+ output = model.generate(**inputs, max_length=150, pad_token_id=tokenizer.eos_token_id)
65
 
66
  response = tokenizer.decode(output[0], skip_special_tokens=True)
67
+
68
  return response
69
 
70
+ # ๐Ÿ”น ุชุดุบูŠู„ ุงู„ูˆุงุฌู‡ุฉ ู…ุน Gradio
71
+ iface = gr.Interface(fn=chatbot, inputs="text", outputs="text", title="Octagon 2.0 Chatbot")
72
  iface.launch(share=True)