osamabyc19866 commited on
Commit
7a190e9
·
verified ·
1 Parent(s): f0c6a2e

Update config.py

Browse files
Files changed (1) hide show
  1. config.py +90 -1
config.py CHANGED
@@ -1,7 +1,96 @@
1
  # config.py — نقطة مركزية لإعدادات المشروع
2
- import os, random
 
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}")