Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -33,32 +33,27 @@ except ImportError as e:
|
|
| 33 |
print(f"砖讙讬讗讛 讘讬讘讜讗 讛住驻专讬讜转: {str(e)}")
|
| 34 |
sys.exit(1)
|
| 35 |
|
| 36 |
-
# 专砖讬诪转 诪讜讚诇讬诐
|
| 37 |
MODELS = {
|
| 38 |
-
"
|
| 39 |
-
"
|
| 40 |
-
"
|
| 41 |
-
"
|
| 42 |
-
"
|
| 43 |
-
"google/flan-t5-small": "诪讜讚诇 讛谞讞讬讜转 拽讟谉 转讜诪讱 讘诪讙讜讜谉 砖驻讜转 - 讟讜讘 诇砖讗诇讜转 讜转砖讜讘讜转",
|
| 44 |
-
"distilgpt2": "诪讜讚诇 GPT-2 拽讟谉 讜诪讛讬专 - 讟讜讘 诇讬爪讬专转 讟拽住讟"
|
| 45 |
}
|
| 46 |
|
| 47 |
# 诪讬诇讜谉 讛讙讚专讜转 讗讜驻讟讬诪诇讬讜转 诇驻讬 住讜讙讬 诪讜讚诇讬诐
|
| 48 |
MODEL_CONFIGS = {
|
| 49 |
-
"
|
| 50 |
-
"
|
| 51 |
-
},
|
| 52 |
-
"t5": { # 诇诪讜讚诇讬 T5 讜-MT5
|
| 53 |
-
"max_length": 150,
|
| 54 |
"do_sample": True,
|
| 55 |
-
"temperature": 0.
|
| 56 |
-
"top_p": 0.
|
| 57 |
-
"repetition_penalty": 1.
|
| 58 |
-
"
|
| 59 |
},
|
| 60 |
-
"default": { # 诇诪讜讚诇讬
|
| 61 |
-
"max_new_tokens":
|
| 62 |
"do_sample": True,
|
| 63 |
"temperature": 0.7,
|
| 64 |
"top_p": 0.92,
|
|
@@ -76,7 +71,7 @@ else:
|
|
| 76 |
print("讗讝讛专讛: 讟讜拽谉 HF_TOKEN 诇讗 诪讜讙讚专 讘住讘讬讘转 讛注讘讜讚讛. 讬讬转讻谉 砖诇讗 转讛讬讛 讙讬砖讛 诇诪讜讚诇讬诐 诪讜讙讘诇讬诐.")
|
| 77 |
|
| 78 |
# 讛讙讚专转 诪砖转谞讬诐 讙诇讜讘诇讬讬诐
|
| 79 |
-
default_model_name = "
|
| 80 |
current_model_name = default_model_name
|
| 81 |
generator = None
|
| 82 |
|
|
@@ -106,33 +101,13 @@ def load_model(model_name, status_box=None):
|
|
| 106 |
status_box = gr.Markdown(f"讟讜注谉 讗转 讛诪讜讚诇: {model_name}...")
|
| 107 |
|
| 108 |
try:
|
| 109 |
-
#
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
model=model_name,
|
| 117 |
-
device_map="auto",
|
| 118 |
-
torch_dtype="auto"
|
| 119 |
-
)
|
| 120 |
-
elif "t5" in model_name.lower() or "mt5" in model_name.lower() or "flan-t5" in model_name.lower():
|
| 121 |
-
# 诪讜讚诇讬 T5 诪转讗讬诪讬诐 诇讟拽住讟-诇讟拽住讟
|
| 122 |
-
generator = transformers.pipeline(
|
| 123 |
-
"text2text-generation",
|
| 124 |
-
model=model_name,
|
| 125 |
-
device_map="auto",
|
| 126 |
-
torch_dtype="auto"
|
| 127 |
-
)
|
| 128 |
-
else:
|
| 129 |
-
# 诪讜讚诇讬诐 专讙讬诇讬诐 诇讬爪讬专转 讟拽住讟
|
| 130 |
-
generator = transformers.pipeline(
|
| 131 |
-
"text-generation",
|
| 132 |
-
model=model_name,
|
| 133 |
-
device_map="auto",
|
| 134 |
-
torch_dtype="auto"
|
| 135 |
-
)
|
| 136 |
|
| 137 |
if status_box is not None:
|
| 138 |
status_box = gr.Markdown(f"**讛诪讜讚诇 {model_name} 谞讟注谉 讘讛爪诇讞讛!**")
|
|
@@ -159,53 +134,29 @@ def ask_model(prompt):
|
|
| 159 |
return "讛诪讜讚诇 诇讗 谞讟注谉 讘讛爪诇讞讛. 谞住讛 诇讟注讜谉 诪讜讚诇 转讞讬诇讛."
|
| 160 |
|
| 161 |
try:
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
#
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
top_p=0.92, # 谞讜拽诇讬讜住 讚讙讬诪讛 - 砖讜诪专 注诇 诪讙讜讜谉 转砖讜讘讜转
|
| 178 |
-
repetition_penalty=1.2, # 诪讜谞注 讞讝专讜转
|
| 179 |
-
num_beams=4 # 讞讬驻讜砖 拽专谉 诇转讜爪讗讜转 讗讬讻讜转讬讜转 讬讜转专
|
| 180 |
-
)
|
| 181 |
-
if isinstance(outputs, list) and len(outputs) > 0:
|
| 182 |
-
return outputs[0]["generated_text"]
|
| 183 |
-
else:
|
| 184 |
-
return str(outputs)
|
| 185 |
else:
|
| 186 |
-
|
| 187 |
-
outputs = generator(
|
| 188 |
-
prompt,
|
| 189 |
-
max_new_tokens=150, # 讗讜专讱 转讜爪讗讛 诪拽住讬诪诇讬
|
| 190 |
-
do_sample=True, # 讚讙讬诪讛 讗拽专讗讬转 讘诪拽讜诐 greedy
|
| 191 |
-
temperature=0.7, # 讗讬讝讜谉 讘讬谉 讚讬讜拽 讜讬爪讬专转讬讜转
|
| 192 |
-
top_p=0.92, # 谞讜拽诇讬讜住 讚讙讬诪讛 - 砖讜诪专 注诇 诪讙讜讜谉 转砖讜讘讜转
|
| 193 |
-
repetition_penalty=1.1, # 诪讜谞注 讞讝专讜转
|
| 194 |
-
no_repeat_ngram_size=2, # 诪谞讬注转 讞讝专讛 注诇 讘讬讙专诪讜转 (讝讜讙讜转 诪讬诇讬诐)
|
| 195 |
-
return_full_text=False # 诪讞讝讬专 专拽 讗转 讛讟拽住讟 讛讞讚砖 砖谞讜爪专
|
| 196 |
-
)
|
| 197 |
-
|
| 198 |
-
# 诪讞讝讬专 讗转 讛讟拽住讟 砖谞讜爪专
|
| 199 |
-
if isinstance(outputs, list) and len(outputs) > 0:
|
| 200 |
-
return outputs[0]["generated_text"]
|
| 201 |
-
else:
|
| 202 |
-
return str(outputs)
|
| 203 |
except Exception as e:
|
| 204 |
return f"砖讙讬讗讛 讘讛驻注诇转 讛诪讜讚诇: {str(e)}"
|
| 205 |
|
| 206 |
# 讬爪讬专转 诪诪砖拽 诪砖转诪砖
|
| 207 |
with gr.Blocks() as demo:
|
| 208 |
-
gr.Markdown("# 诪注专讻转 爪'讗讟 注诐 诪讜讚诇讬
|
| 209 |
|
| 210 |
# 讗讝讜专 讘讞讬专转 诪讜讚诇 讜讟注讬谞讛
|
| 211 |
with gr.Row():
|
|
@@ -263,9 +214,9 @@ with gr.Blocks() as demo:
|
|
| 263 |
"住驻专 诇讬 注诇 讘讬谞讛 诪诇讗讻讜转讬转",
|
| 264 |
"诪讛 讚注转讱 注诇 讛砖驻讛 讛注讘专讬转?",
|
| 265 |
"讻转讜讘 住讬驻讜专 拽爪专 注诇 讬专讜砖诇讬诐",
|
| 266 |
-
"
|
| 267 |
-
"转
|
| 268 |
-
"讛
|
| 269 |
],
|
| 270 |
input_text
|
| 271 |
)
|
|
@@ -273,8 +224,8 @@ with gr.Blocks() as demo:
|
|
| 273 |
gr.Markdown("""
|
| 274 |
### 讛注专讜转:
|
| 275 |
- 讘讞专 诪讜讚诇 诪讛专砖讬诪讛 讜诇讞抓 注诇 '讟注谉 诪讜讚诇' 讻讚讬 诇讛讞诇讬祝 讗转 讛诪讜讚诇 讛谞讜讻讞讬
|
| 276 |
-
-
|
| 277 |
-
-
|
| 278 |
- 讛讟注讬谞讛 讛专讗砖讜谞讬转 砖诇 讻诇 诪讜讚诇 注砖讜讬讛 诇拽讞转 诪住驻专 砖谞讬讜转 注讚 讚拽讜转
|
| 279 |
""")
|
| 280 |
|
|
|
|
| 33 |
print(f"砖讙讬讗讛 讘讬讘讜讗 讛住驻专讬讜转: {str(e)}")
|
| 34 |
sys.exit(1)
|
| 35 |
|
| 36 |
+
# 专砖讬诪转 诪讜讚诇讬诐 Qwen3-Coder
|
| 37 |
MODELS = {
|
| 38 |
+
"Qwen/Qwen1.5-0.5B-Chat": "诪讜讚诇 Qwen 拽讟谉 - 转讜诪讱 讘注讘专讬转 讜诪转讗讬诐 诇砖讬讞讛 讜转讻谞讜转",
|
| 39 |
+
"Qwen/Qwen1.5-1.8B-Chat": "诪讜讚诇 Qwen 讘讬谞讜谞讬 - 转讜诪讱 讘砖驻讜转 专讘讜转 讻讜诇诇 注讘专讬转",
|
| 40 |
+
"Qwen/Qwen1.5-4B-Chat": "诪讜讚诇 Qwen 讞讝拽 讬讜转专 - 转讜诪讱 讘砖驻讜转 专讘讜转 讜拽讬讚讜讚",
|
| 41 |
+
"Qwen/Qwen1.5-7B-Chat": "诪讜讚诇 Qwen 讞讝拽 诪讗讜讚 - 诪转讗讬诐 诇砖讬讞讛 讜转讻谞讜转 诪转拽讚诪转",
|
| 42 |
+
"Qwen/Qwen1.5-7B-Coder": "诪讜讚诇 Qwen3-Coder - 诪砖讜驻专 诇转讻谞讜转 讜诪砖讬诪讜转 拽讜讚"
|
|
|
|
|
|
|
| 43 |
}
|
| 44 |
|
| 45 |
# 诪讬诇讜谉 讛讙讚专讜转 讗讜驻讟讬诪诇讬讜转 诇驻讬 住讜讙讬 诪讜讚诇讬诐
|
| 46 |
MODEL_CONFIGS = {
|
| 47 |
+
"qwen": { # 诇诪讜讚诇讬 Qwen
|
| 48 |
+
"max_new_tokens": 512,
|
|
|
|
|
|
|
|
|
|
| 49 |
"do_sample": True,
|
| 50 |
+
"temperature": 0.7,
|
| 51 |
+
"top_p": 0.95,
|
| 52 |
+
"repetition_penalty": 1.05,
|
| 53 |
+
"no_repeat_ngram_size": 3
|
| 54 |
},
|
| 55 |
+
"default": { # 诇诪讜讚诇讬诐 讗讞专讬诐
|
| 56 |
+
"max_new_tokens": 256,
|
| 57 |
"do_sample": True,
|
| 58 |
"temperature": 0.7,
|
| 59 |
"top_p": 0.92,
|
|
|
|
| 71 |
print("讗讝讛专讛: 讟讜拽谉 HF_TOKEN 诇讗 诪讜讙讚专 讘住讘讬讘转 讛注讘讜讚讛. 讬讬转讻谉 砖诇讗 转讛讬讛 讙讬砖讛 诇诪讜讚诇讬诐 诪讜讙讘诇讬诐.")
|
| 72 |
|
| 73 |
# 讛讙讚专转 诪砖转谞讬诐 讙诇讜讘诇讬讬诐
|
| 74 |
+
default_model_name = "Qwen/Qwen1.5-7B-Coder"
|
| 75 |
current_model_name = default_model_name
|
| 76 |
generator = None
|
| 77 |
|
|
|
|
| 101 |
status_box = gr.Markdown(f"讟讜注谉 讗转 讛诪讜讚诇: {model_name}...")
|
| 102 |
|
| 103 |
try:
|
| 104 |
+
# Qwen 诪讜讚诇讬诐 诪转讗讬诪讬诐 诇爪'讗讟
|
| 105 |
+
generator = transformers.pipeline(
|
| 106 |
+
"text-generation",
|
| 107 |
+
model=model_name,
|
| 108 |
+
device_map="auto",
|
| 109 |
+
torch_dtype="auto"
|
| 110 |
+
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 111 |
|
| 112 |
if status_box is not None:
|
| 113 |
status_box = gr.Markdown(f"**讛诪讜讚诇 {model_name} 谞讟注谉 讘讛爪诇讞讛!**")
|
|
|
|
| 134 |
return "讛诪讜讚诇 诇讗 谞讟注谉 讘讛爪诇讞讛. 谞住讛 诇讟注讜谉 诪讜讚诇 转讞讬诇讛."
|
| 135 |
|
| 136 |
try:
|
| 137 |
+
# 讟讬驻讜诇 讘诪讜讚诇讬 Qwen
|
| 138 |
+
outputs = generator(
|
| 139 |
+
prompt,
|
| 140 |
+
max_new_tokens=512, # 讗讜专讱 转讜爪讗讛 诪拽住讬诪诇讬 - 讛讙讚诇谞讜 注讘讜专 Qwen
|
| 141 |
+
do_sample=True, # 讚讙讬诪讛 讗拽专讗讬转 讘诪拽讜诐 greedy
|
| 142 |
+
temperature=0.7, # 讗讬讝讜谉 讘讬谉 讚讬讜拽 讜讬爪讬专转讬讜转
|
| 143 |
+
top_p=0.95, # 谞讜拽诇讬讜住 讚讙讬诪讛 - 砖讜诪专 注诇 诪讙讜讜谉 转砖讜讘讜转
|
| 144 |
+
repetition_penalty=1.05, # 诪讜谞注 讞讝专讜转
|
| 145 |
+
no_repeat_ngram_size=3, # 诪谞讬注转 讞讝专讛 注诇 讘讬讙专诪讜转 (讝讜讙讜转 诪讬诇讬诐)
|
| 146 |
+
return_full_text=False # 诪讞讝讬专 专拽 讗转 讛讟拽住讟 讛讞讚砖 砖谞讜爪专
|
| 147 |
+
)
|
| 148 |
+
|
| 149 |
+
# 诪讞讝讬专 讗转 讛讟拽住讟 砖谞讜爪专
|
| 150 |
+
if isinstance(outputs, list) and len(outputs) > 0:
|
| 151 |
+
return outputs[0]["generated_text"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 152 |
else:
|
| 153 |
+
return str(outputs)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 154 |
except Exception as e:
|
| 155 |
return f"砖讙讬讗讛 讘讛驻注诇转 讛诪讜讚诇: {str(e)}"
|
| 156 |
|
| 157 |
# 讬爪讬专转 诪诪砖拽 诪砖转诪砖
|
| 158 |
with gr.Blocks() as demo:
|
| 159 |
+
gr.Markdown("# 诪注专讻转 爪'讗讟 注诐 诪讜讚诇讬 Qwen3-Coder")
|
| 160 |
|
| 161 |
# 讗讝讜专 讘讞讬专转 诪讜讚诇 讜讟注讬谞讛
|
| 162 |
with gr.Row():
|
|
|
|
| 214 |
"住驻专 诇讬 注诇 讘讬谞讛 诪诇讗讻讜转讬转",
|
| 215 |
"诪讛 讚注转讱 注诇 讛砖驻讛 讛注讘专讬转?",
|
| 216 |
"讻转讜讘 住讬驻讜专 拽爪专 注诇 讬专讜砖诇讬诐",
|
| 217 |
+
"讻转讜讘 诇讬 拽讜讚 讘驻讬讬转讜谉 砖诪讞砖讘 讗转 诪住驻专讬 驻讬讘讜谞讗爪'讬",
|
| 218 |
+
"讻转讜讘 诇讬 拽讜讚 讘-JavaScript 砖讬讜爪专 讗驻诇讬拽爪讬讬转 专砖讬诪转 诪砖讬诪讜转",
|
| 219 |
+
"讛住讘专 诇讬 注诇 诪注专讻讜转 诪讘讜住住讜转 讟专谞住驻讜专诪专讬诐"
|
| 220 |
],
|
| 221 |
input_text
|
| 222 |
)
|
|
|
|
| 224 |
gr.Markdown("""
|
| 225 |
### 讛注专讜转:
|
| 226 |
- 讘讞专 诪讜讚诇 诪讛专砖讬诪讛 讜诇讞抓 注诇 '讟注谉 诪讜讚诇' 讻讚讬 诇讛讞诇讬祝 讗转 讛诪讜讚诇 讛谞讜讻讞讬
|
| 227 |
+
- 诪讜讚诇讬 Qwen 诪转讗讬诪讬诐 讘诪讬讜讞讚 诇爪'讗讟 讜转讻谞讜转
|
| 228 |
+
- 诪讜诪诇抓 诇讛转讞讬诇 注诐 讛诪讜讚诇 讛拽讟谉 讬讜转专 (0.5B) 讜诇讛砖转诪砖 讘诪讜讚诇讬诐 讛讙讚讜诇讬诐 讬讜转专 专拽 注讘讜专 诪砖讬诪讜转 诪讜专讻讘讜转
|
| 229 |
- 讛讟注讬谞讛 讛专讗砖讜谞讬转 砖诇 讻诇 诪讜讚诇 注砖讜讬讛 诇拽讞转 诪住驻专 砖谞讬讜转 注讚 讚拽讜转
|
| 230 |
""")
|
| 231 |
|