Arrcttacsrks commited on
Commit
688c860
·
verified ·
1 Parent(s): 009f941

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -17
app.py CHANGED
@@ -1,27 +1,51 @@
1
- from flask import Flask, request, jsonify, send_from_directory
 
2
  import torch
3
- from transformers import pipeline
4
 
5
- # Khởi tạo ứng dụng Flask
6
  app = Flask(__name__)
 
7
 
8
- # Khởi tạo mô hình
9
- model_id = "Arrcttacsrks/Llama3.2-3B-Instruct"
10
- pipe = pipeline("text-generation", model=model_id, torch_dtype=torch.bfloat16)
 
11
 
12
  @app.route('/')
13
- def home():
14
- return send_from_directory('.', 'index.html')
15
-
16
- @app.route('/style.css')
17
- def style():
18
- return send_from_directory('.', 'style.css')
19
 
20
  @app.route('/chat', methods=['POST'])
21
  def chat():
22
- user_input = request.json.get('message')
23
- response = pipe(user_input, max_new_tokens=256)
24
- return jsonify({'response': response[0]['generated_text']})
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
- if __name__ == '__main__':
27
- app.run()
 
1
+ from flask import Flask, render_template, request, jsonify, session
2
+ from transformers import AutoModelForCausalLM, AutoTokenizer
3
  import torch
4
+ from datetime import datetime
5
 
 
6
  app = Flask(__name__)
7
+ app.secret_key = "supersecretkey" # Dùng để quản lý session
8
 
9
+ # Tải mô hình và tokenizer từ Hugging Face
10
+ model_path = "phamhai/Llama-3.2-3B-Instruct-Frog"
11
+ tokenizer = AutoTokenizer.from_pretrained(model_path)
12
+ model = AutoModelForCausalLM.from_pretrained(model_path)
13
 
14
  @app.route('/')
15
+ def index():
16
+ session.setdefault('history', []) # Tạo session nếu chưa có
17
+ return render_template('index.html', history=session['history'])
 
 
 
18
 
19
  @app.route('/chat', methods=['POST'])
20
  def chat():
21
+ user_input = request.json.get("message")
22
+ if not user_input:
23
+ return jsonify({"response": "Xin hãy nhập tin nhắn!"})
24
+
25
+ # Tokenize input và sinh output
26
+ messages = [
27
+ {"role": "system", "content": "Bạn là trợ lý của tôi, tên là Vivi."},
28
+ {"role": "user", "content": user_input}
29
+ ]
30
+ tokenized_chat = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt")
31
+ outputs = model.generate(tokenized_chat, max_new_tokens=128)
32
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
33
+
34
+ # Lưu lại vào lịch sử chat
35
+ chat_entry = {
36
+ "user": user_input,
37
+ "bot": response,
38
+ "timestamp": datetime.now().strftime("%H:%M:%S") # Thêm thời gian
39
+ }
40
+ session['history'].append(chat_entry)
41
+ session.modified = True # Cập nhật session
42
+
43
+ return jsonify({"response": response, "timestamp": chat_entry["timestamp"]})
44
+
45
+ @app.route('/clear', methods=['POST'])
46
+ def clear():
47
+ session['history'] = [] # Xóa lịch sử chat
48
+ return jsonify({"status": "ok"})
49
 
50
+ if __name__ == "__main__":
51
+ app.run(debug=True)