Spaces:
Running
Running
Update config.py
Browse files
config.py
CHANGED
@@ -1,7 +1,96 @@
|
|
1 |
# config.py — نقطة مركزية لإعدادات المشروع
|
2 |
-
import os
|
|
|
3 |
|
|
|
4 |
# مصدر الحقيقة الوحيد لمنفذ الخدمة
|
5 |
PORT = int(os.getenv("CPU_PORT", os.getenv("PORT", "0")))
|
6 |
if PORT == 0:
|
7 |
PORT = random.randint(1000, 9999)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
# config.py — نقطة مركزية لإعدادات المشروع
|
2 |
+
import os
|
3 |
+
import random
|
4 |
|
5 |
+
# ============ إعدادات الخادم ============
|
6 |
# مصدر الحقيقة الوحيد لمنفذ الخدمة
|
7 |
PORT = int(os.getenv("CPU_PORT", os.getenv("PORT", "0")))
|
8 |
if PORT == 0:
|
9 |
PORT = random.randint(1000, 9999)
|
10 |
+
|
11 |
+
# ============ إعدادات Ollama ============
|
12 |
+
# عنوان خادم Ollama
|
13 |
+
OLLAMA_HOST = os.getenv("OLLAMA_HOST", "http://localhost:11434")
|
14 |
+
|
15 |
+
# النموذج الافتراضي
|
16 |
+
DEFAULT_MODEL = os.getenv("DEFAULT_MODEL", "llama2")
|
17 |
+
|
18 |
+
# ============ إعدادات الذكاء الاصطناعي ============
|
19 |
+
SYSTEM_PROMPT = os.getenv("SYSTEM_PROMPT", """أنت مساعد ذكي ومفيد. اتبع هذه الإرشادات:
|
20 |
+
- قدم إجابات دقيقة وواضحة
|
21 |
+
- كن محترفاً ومفيداً
|
22 |
+
- استخدم لغة عربية سليمة
|
23 |
+
- انطلق في ردودك من المعلومات الواقعية
|
24 |
+
- إذا لم تكن متأكداً من إجابة، قل أنك لا تعرف""")
|
25 |
+
|
26 |
+
# إعدادات النموذج
|
27 |
+
MAX_TOKENS = int(os.getenv("MAX_TOKENS", "2048"))
|
28 |
+
TEMPERATURE = float(os.getenv("TEMPERATURE", "0.7"))
|
29 |
+
TOP_P = float(os.getenv("TOP_P", "0.9"))
|
30 |
+
|
31 |
+
# ============ إعدادات التطبيق ============
|
32 |
+
APP_NAME = os.getenv("APP_NAME", "AmalBot")
|
33 |
+
DEBUG = os.getenv("DEBUG", "false").lower() == "true"
|
34 |
+
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO")
|
35 |
+
|
36 |
+
# ============ إعدادات الأمان ============
|
37 |
+
CORS_ORIGINS = os.getenv("CORS_ORIGINS", "*").split(",")
|
38 |
+
REQUEST_TIMEOUT = int(os.getenv("REQUEST_TIMEOUT", "30"))
|
39 |
+
|
40 |
+
# ============ إعدادات التخزين ============
|
41 |
+
CACHE_SIZE = int(os.getenv("CACHE_SIZE", "100"))
|
42 |
+
SESSION_TIMEOUT = int(os.getenv("SESSION_TIMEOUT", "3600"))
|
43 |
+
|
44 |
+
# ============ إعدادات النص ============
|
45 |
+
DEFAULT_LANGUAGE = os.getenv("DEFAULT_LANGUAGE", "ar")
|
46 |
+
SUPPORTED_LANGUAGES = ["ar", "en", "fr"]
|
47 |
+
|
48 |
+
# ============ معلومات الإصدار ============
|
49 |
+
VERSION = "1.0.0"
|
50 |
+
BUILD_DATE = "2025-10-09"
|
51 |
+
|
52 |
+
# ============ وظائف مساعدة ============
|
53 |
+
def get_config_summary():
|
54 |
+
"""إرجاع ملخص للإعدادات (بدون معلومات حساسة)"""
|
55 |
+
return {
|
56 |
+
"app_name": APP_NAME,
|
57 |
+
"port": PORT,
|
58 |
+
"debug": DEBUG,
|
59 |
+
"log_level": LOG_LEVEL,
|
60 |
+
"default_model": DEFAULT_MODEL,
|
61 |
+
"ollama_host": OLLAMA_HOST,
|
62 |
+
"max_tokens": MAX_TOKENS,
|
63 |
+
"temperature": TEMPERATURE,
|
64 |
+
"version": VERSION
|
65 |
+
}
|
66 |
+
|
67 |
+
def validate_config():
|
68 |
+
"""التحقق من صحة الإعدادات الأساسية"""
|
69 |
+
errors = []
|
70 |
+
|
71 |
+
if not OLLAMA_HOST.startswith(('http://', 'https://')):
|
72 |
+
errors.append("OLLAMA_HOST يجب أن يبدأ بـ http:// أو https://")
|
73 |
+
|
74 |
+
if MAX_TOKENS <= 0 or MAX_TOKENS > 10000:
|
75 |
+
errors.append("MAX_TOKENS يجب أن يكون بين 1 و 10000")
|
76 |
+
|
77 |
+
if TEMPERATURE < 0 or TEMPERATURE > 2:
|
78 |
+
errors.append("TEMPERATURE يجب أن يكون بين 0 و 2")
|
79 |
+
|
80 |
+
if PORT < 1000 or PORT > 65535:
|
81 |
+
errors.append(f"PORT {PORT} غير صالح، يجب أن يكون بين 1000 و 65535")
|
82 |
+
|
83 |
+
return errors
|
84 |
+
|
85 |
+
# التحقق من الإعدادات عند التحميل
|
86 |
+
config_errors = validate_config()
|
87 |
+
if config_errors and DEBUG:
|
88 |
+
print("=== تحذيرات الإعدادات ===")
|
89 |
+
for error in config_errors:
|
90 |
+
print(f"⚠️ {error}")
|
91 |
+
|
92 |
+
# طباعة معلومات التهيئة في وضع التصحيح
|
93 |
+
if DEBUG:
|
94 |
+
print("=== إعدادات التطبيق ===")
|
95 |
+
for key, value in get_config_summary().items():
|
96 |
+
print(f"{key}: {value}")
|