Spaces:
Sleeping
Sleeping
File size: 6,000 Bytes
13ba664 |
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
from flask import Flask, render_template, request
from transformers import pipeline
import logging
logging.basicConfig(level=logging.DEBUG)
app = Flask(__name__, static_folder='static')
def generate_gpt3_text(text):
generator = pipeline(task='text-generation', model='EleutherAI/gpt-neo-2.7B')
generated_text = generator(text, max_length=200, num_return_sequences=1, truncation=True)
return generated_text[0]['generated_text']
def generate_gpt2_text(prompt, max_length):
generator = pipeline('text-generation', model='gpt2')
generated_text = generator(prompt, max_length=max_length, num_return_sequences=1, truncation=True)
return generated_text[0]['generated_text']
def translate_text_t5(prompt):
translator = pipeline('translation_en_to_fr', model='t5-small')
translated_text = translator(prompt, max_length=100)[0]['translation_text']
return translated_text
def translate_text_english_to_hindi(prompt):
translator = pipeline('translation_en_to_hi', model='Helsinki-NLP/opus-mt-en-hi')
translated_text = translator(prompt, max_length=100)[0]['translation_text']
logging.debug(f'Generated text from GPT-3: {translated_text}')
print('Translated Text (English to French):', translated_text)
return translated_text
def translate_text_hindi_to_english(prompt):
translator = pipeline('translation_hi_to_en', model='Helsinki-NLP/opus-mt-hi-en')
translated_text = translator(prompt, max_length=100)[0]['translation_text']
return translated_text
def translate_text_spanish_to_english(prompt):
translator = pipeline('translation_es_to_en', model='Helsinki-NLP/opus-mt-es-en')
translated_text = translator(prompt, max_length=100)[0]['translation_text']
return translated_text
def translate_text_german_to_english(prompt):
translator = pipeline('translation_de_to_en', model='Helsinki-NLP/opus-mt-de-en')
translated_text = translator(prompt, max_length=100)[0]['translation_text']
return translated_text
def translate_text_french_to_english(prompt):
translator = pipeline('translation_fr_to_en', model='Helsinki-NLP/opus-mt-fr-en')
translated_text = translator(prompt, max_length=100)[0]['translation_text']
return translated_text
def translate_text_chinese_to_english(prompt):
translator = pipeline('translation_zh_to_en', model='Helsinki-NLP/opus-mt-zh-en')
translated_text = translator(prompt, max_length=100)[0]['translation_text']
return translated_text
def generate_long_content(input_text):
summarizer = pipeline('summarization', model='t5-small')
input_format = "summarize: {}".format(input_text)
generated_summary = summarizer(input_format, max_length=210, num_return_sequences=1, truncation=True)
output_summary = generated_summary[0]['summary_text']
return output_summary
def generate_text_bert(prompt):
generator = pipeline('fill-mask', model='bert-base-uncased')
generated_text = generator(prompt)
generated_sequences = [result['sequence'] for result in generated_text]
return generated_sequences
@app.route('/', methods=['GET', 'POST'])
def home():
generated_text = ''
if request.method == 'POST':
try:
prompt = request.form['prompt']
model_type = request.form['model_type']
logging.debug(f'Prompt received: {prompt}')
logging.debug(f'Model type selected: {model_type}')
if model_type == 'gpt3':
generated_text = generate_gpt3_text(prompt)
logging.debug(f'Generated text from GPT-3: {generated_text}')
elif model_type == 'gpt2':
max_length = int(request.form['max_length'])
generated_text = generate_gpt2_text(prompt, max_length)
logging.debug(f'Generated text from GPT-2: {generated_text}')
elif model_type == 'translation_en_to_fr':
max_length = int(request.form['max_length'])
generated_text = translate_text_t5(prompt)
logging.debug(f'Generated text from GPT-2: {generated_text}')
elif model_type == 'translation_en_to_hi':
generated_text = translate_text_english_to_hindi(prompt)
logging.debug(f'Generated text from GPT-2: {generated_text}')
elif model_type == 'translation_hi_to_en':
generated_text = translate_text_hindi_to_english(prompt)
logging.debug(f'Generated text from GPT-2: {generated_text}')
elif model_type == 'translation_es_to_en':
generated_text = translate_text_spanish_to_english(prompt)
logging.debug(f'Generated text from GPT-2: {generated_text}')
elif model_type == 'translation_de_to_en':
generated_text = translate_text_german_to_english(prompt)
logging.debug(f'Generated text from GPT-2: {generated_text}')
elif model_type == 'translation_fr_to_en':
generated_text = translate_text_french_to_english(prompt)
logging.debug(f'Generated text from GPT-2: {generated_text}')
elif model_type == 'translation_zh_to_en':
generated_text = translate_text_chinese_to_english(prompt)
logging.debug(f'Generated text from GPT-2: {generated_text}')
elif model_type == 'summarization':
generated_text = generate_long_content(prompt)
logging.debug(f'Generated text from T5: {generated_text}')
elif model_type == 'Text_bert':
generated_text = generate_text_bert(prompt)
logging.debug(f'Generated text from BERT: {generated_text}')
except Exception as e:
logging.error(f'An error occurred: {str(e)}')
return render_template('index.html', prompt=prompt, generated_text=generated_text)
return render_template('index.html', generated_text=generated_text)
if __name__ == '__main__':
app.run(debug=True) |