|
from flask import Flask, request, render_template
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
import torch
|
|
|
|
app = Flask(__name__)
|
|
|
|
|
|
model_path = "./finetuned_weights"
|
|
tokenizer = AutoTokenizer.from_pretrained(model_path)
|
|
model = AutoModelForCausalLM.from_pretrained(model_path)
|
|
device = torch.device("cpu")
|
|
model.to(device)
|
|
|
|
@app.route('/')
|
|
def home():
|
|
return render_template('index.html')
|
|
|
|
@app.route('/generate', methods=['POST'])
|
|
def generate():
|
|
user_input = request.form['prompt'].strip()
|
|
prompt = f"<|USER|> {user_input} <|ASSISTANT|> "
|
|
inputs = tokenizer(prompt, return_tensors="pt").to(device)
|
|
outputs = model.generate(**inputs, max_length=100, num_return_sequences=1, pad_token_id=tokenizer.eos_token_id)
|
|
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
|
response = generated_text.split("<|ASSISTANT|> ")[-1] if "<|ASSISTANT|> " in generated_text else generated_text
|
|
return response
|
|
|
|
if __name__ == '__main__':
|
|
app.run(debug=True) |