Adieva-15 commited on
Commit
0863f6a
·
1 Parent(s): ee9b3ea

generate_text

Browse files
Files changed (2) hide show
  1. .idea/vcs.xml +0 -1
  2. functions/generate_text.py +38 -0
.idea/vcs.xml CHANGED
@@ -2,6 +2,5 @@
2
  <project version="4">
3
  <component name="VcsDirectoryMappings">
4
  <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
- <mapping directory="$PROJECT_DIR$/neuralwebsite" vcs="Git" />
6
  </component>
7
  </project>
 
2
  <project version="4">
3
  <component name="VcsDirectoryMappings">
4
  <mapping directory="$PROJECT_DIR$" vcs="Git" />
 
5
  </component>
6
  </project>
functions/generate_text.py CHANGED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from config import model_gt
2
+ import torch
3
+ from transformers import GPT2Tokenizer, GPT2LMHeadModel
4
+
5
+ tokenizer = GPT2Tokenizer.from_pretrained(model_gt)
6
+ model = GPT2LMHeadModel.from_pretrained(model_gt)
7
+
8
+
9
+ # text = "Replace me by any text you'd like."
10
+ # encoded_input = tokenizer(text, return_tensors='tf')
11
+ # output = model(encoded_input)
12
+
13
+ def generate_text(prompt:str, max_length:int=100)->str:
14
+ """
15
+ Генерирует продолжение текста на основе заданного промпта.
16
+ """
17
+ try:
18
+ inputs = tokenizer(prompt,
19
+ return_tensors="pt", # PyTorch тензоры
20
+ truncation=True,
21
+ padding=True,
22
+ max_length=512)
23
+ with torch.no_grad():
24
+ outputs=model.generate(
25
+ input_ids=inputs.input_ids,
26
+ attention_mask=inputs.attention_mask,
27
+ max_length=max_length,
28
+ num_return_sequences=1,
29
+ pad_token_id=tokenizer.eos_token_id,
30
+ do_sample=True, # включаем вероятностную выборку
31
+ temperature=0.7 # креативность (0 – детерминированно, 1 – случайно)
32
+ )
33
+ generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
34
+
35
+ return generated_text
36
+
37
+ except Exception as e:
38
+ return f'error of generaion: {str(e)}'