File size: 2,542 Bytes
067af65
5aef73d
a85fc0b
 
067af65
df29062
a85fc0b
067af65
df29062
067af65
df29062
 
 
 
 
 
 
 
 
a85fc0b
df29062
067af65
df29062
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a15cdfd
067af65
 
df29062
 
 
 
 
067af65
 
 
 
 
df29062
 
067af65
df29062
067af65
df29062
067af65
df29062
 
 
067af65
 
 
 
df29062
 
a15cdfd
067af65
df29062
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
# app.py
from flask import Flask, send_file, request, jsonify
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
from functools import lru_cache
from flask_cors import CORS  # إضافة دعم CORS

app = Flask(__name__)
CORS(app)  # تفعيل CORS للسماح بالاتصال

# تحميل النموذج - نقوم بتحميله مرة واحدة عند بدء التطبيق
print("جاري تحميل النموذج...")
tokenizer = AutoTokenizer.from_pretrained("amd/AMD-OLMo-1B")
model = AutoModelForCausalLM.from_pretrained(
    "amd/AMD-OLMo-1B",
    torch_dtype=torch.float16,
    device_map="auto"
)
print("تم تحميل النموذج بنجاح!")

def generate_response(prompt):
    """Generate response from the model"""
    try:
        inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
        with torch.no_grad():
            outputs = model.generate(
                **inputs,
                max_length=200,
                num_return_sequences=1,
                temperature=0.7,
                top_p=0.9,
                repetition_penalty=1.2,
                pad_token_id=tokenizer.eos_token_id
            )
            response = tokenizer.decode(outputs[0], skip_special_tokens=True)
            return response.replace(prompt, "").strip()
    except Exception as e:
        print(f"خطأ في توليد الرد: {str(e)}")
        return "عذراً، حدث خطأ في معالجة رسالتك."

@app.route('/')
def home():
    try:
        return send_file('index.html')
    except Exception as e:
        print(f"خطأ في تحميل الصفحة: {str(e)}")
        return "خطأ في تحميل الصفحة"

@app.route('/message', methods=['POST'])
def message():
    try:
        data = request.json
        if not data:
            return jsonify({"response": "لم يتم استلام أي بيانات"}), 400
        
        user_message = data.get('message', '')
        if not user_message:
            return jsonify({"response": "الرسالة فارغة"}), 400
        
        print(f"رسالة مستلمة: {user_message}")
        response = generate_response(user_message)
        print(f"الرد: {response}")
        
        return jsonify({"response": response})
    
    except Exception as e:
        print(f"خطأ في معالجة الرسالة: {str(e)}")
        return jsonify({"response": "عذراً، حدث خطأ في معالجة رسالتك"}), 500

if __name__ == '__main__':
    app.run(debug=True, port=5000)