File size: 1,109 Bytes
a330b1e 7500f3a cbd5934 a330b1e 7500f3a 9fc2a76 3b2ce0d 9fc2a76 3b2ce0d 7500f3a 3b2ce0d 2a86e79 9fc2a76 3b2ce0d 7500f3a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
from transformers import GPT2LMHeadModel, GPT2Tokenizer
# Load the pre-trained GPT2 model and tokenizer
model = GPT2LMHeadModel.from_pretrained("gpt2")
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
# 設置填充標記 ID
tokenizer.pad_token = tokenizer.eos_token
def generate_code(prompt, max_length=200):
full_prompt = f"Generate Python code for {prompt}:```python\n"
inputs = tokenizer.encode(full_prompt, return_tensors="pt")
output = model.generate(
inputs,
max_length=max_length,
num_return_sequences=1,
temperature=0.7,
pad_token_id=tokenizer.pad_token_id
)
generated_text = tokenizer.decode(output[0], skip_special_tokens=False)
# 提取生成的代碼
start = generated_text.find("```python") + len("```python")
end = generated_text.find("```", start)
if end == -1:
end = len(generated_text)
code = generated_text[start:end].strip()
return code
# Example usage
prompt = "a function to calculate the factorial of a number"
generated_code = generate_code(prompt)
print(generated_code) |