joermd commited on
Commit
d0f2261
·
verified ·
1 Parent(s): df29062

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -21
app.py CHANGED
@@ -2,25 +2,33 @@
2
  from flask import Flask, send_file, request, jsonify
3
  from transformers import AutoModelForCausalLM, AutoTokenizer
4
  import torch
5
- from functools import lru_cache
6
- from flask_cors import CORS # إضافة دعم CORS
7
 
8
  app = Flask(__name__)
9
- CORS(app) # تفعيل CORS للسماح بالاتصال
10
 
11
- # تحميل النموذج - نقوم بتحميله مرة واحدة عند بدء التطبيق
12
- print("جاري تحميل النموذج...")
13
- tokenizer = AutoTokenizer.from_pretrained("amd/AMD-OLMo-1B")
14
- model = AutoModelForCausalLM.from_pretrained(
15
- "amd/AMD-OLMo-1B",
16
- torch_dtype=torch.float16,
17
- device_map="auto"
18
- )
19
- print("تم تحميل النموذج بنجاح!")
 
 
 
 
 
 
20
 
21
  def generate_response(prompt):
22
  """Generate response from the model"""
 
23
  try:
 
 
 
24
  inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
25
  with torch.no_grad():
26
  outputs = model.generate(
@@ -40,14 +48,10 @@ def generate_response(prompt):
40
 
41
  @app.route('/')
42
  def home():
43
- try:
44
- return send_file('index.html')
45
- except Exception as e:
46
- print(f"خطأ في تحميل الصفحة: {str(e)}")
47
- return "خطأ في تحميل الصفحة"
48
 
49
- @app.route('/message', methods=['POST'])
50
- def message():
51
  try:
52
  data = request.json
53
  if not data:
@@ -67,5 +71,6 @@ def message():
67
  print(f"خطأ في معالجة الرسالة: {str(e)}")
68
  return jsonify({"response": "عذراً، حدث خطأ في معالجة رسالتك"}), 500
69
 
70
- if __name__ == '__main__':
71
- app.run(debug=True, port=5000)
 
 
2
  from flask import Flask, send_file, request, jsonify
3
  from transformers import AutoModelForCausalLM, AutoTokenizer
4
  import torch
5
+ import gradio as gr
 
6
 
7
  app = Flask(__name__)
 
8
 
9
+ # تحميل النموذج
10
+ model = None
11
+ tokenizer = None
12
+
13
+ def load_model():
14
+ global model, tokenizer
15
+ if model is None:
16
+ print("جاري تحميل النموذج...")
17
+ tokenizer = AutoTokenizer.from_pretrained("amd/AMD-OLMo-1B")
18
+ model = AutoModelForCausalLM.from_pretrained(
19
+ "amd/AMD-OLMo-1B",
20
+ torch_dtype=torch.float16,
21
+ device_map="auto"
22
+ )
23
+ print("تم تحميل النموذج بنجاح!")
24
 
25
  def generate_response(prompt):
26
  """Generate response from the model"""
27
+ global model, tokenizer
28
  try:
29
+ if model is None:
30
+ load_model()
31
+
32
  inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
33
  with torch.no_grad():
34
  outputs = model.generate(
 
48
 
49
  @app.route('/')
50
  def home():
51
+ return send_file('index.html')
 
 
 
 
52
 
53
+ @app.route('/api/chat', methods=['POST'])
54
+ def chat():
55
  try:
56
  data = request.json
57
  if not data:
 
71
  print(f"خطأ في معالجة الرسالة: {str(e)}")
72
  return jsonify({"response": "عذراً، حدث خطأ في معالجة رسالتك"}), 500
73
 
74
+ if __name__ == "__main__":
75
+ # إذا كنت تريد تشغيل التطبيق محلياً
76
+ app.run()