Spaces:
Running
Running
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| MODEL_LIST = [ | |
| "EleutherAI/pythia-410m", | |
| "EleutherAI/pythia-1b", | |
| "gpt2" | |
| ] | |
| model_cache = {} # 緩存模型 | |
| def load_model(model_name): | |
| if model_name not in model_cache: | |
| print(f"⏳ 正在載入模型:{model_name}") | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| model = AutoModelForCausalLM.from_pretrained(model_name) | |
| model_cache[model_name] = (tokenizer, model) | |
| return model_cache[model_name] | |
| def generate_sentence(word, model_name): | |
| tokenizer, model = load_model(model_name) | |
| prompt = f"A simple English sentence using the word '{word}' suitable for beginners. Output only the sentence." | |
| inputs = tokenizer(prompt, return_tensors="pt") | |
| outputs = model.generate(**inputs, max_new_tokens=30) | |
| sentence = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| # 清理句子(可以根據需求調整) | |
| sentence = sentence.split(".")[0].strip() + "." | |
| return sentence | |