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