EGYADMIN commited on
Commit
f63e0ac
·
verified ·
1 Parent(s): 1cb1f72

Create config.py

Browse files
Files changed (1) hide show
  1. config.py +108 -0
config.py ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from typing import Dict, Any
3
+ from dotenv import load_dotenv
4
+
5
+ # تحميل متغيرات البيئة من ملف .env
6
+ load_dotenv()
7
+
8
+ # إعدادات عامة
9
+ APP_NAME = "نظام تحليل المناقصات"
10
+ APP_VERSION = "1.0.0"
11
+ DEBUG = os.getenv("DEBUG", "False").lower() in ("true", "1", "t")
12
+
13
+ # مسارات الملفات
14
+ DATA_DIR = os.getenv("DATA_DIR", "data")
15
+ TEMPLATES_DIR = os.path.join(DATA_DIR, "templates")
16
+ VECTOR_DB_DIR = os.path.join(DATA_DIR, "vector_db")
17
+ OUTPUT_DIR = os.getenv("OUTPUT_DIR", "output")
18
+ LOGS_DIR = os.getenv("LOGS_DIR", "logs")
19
+
20
+ # التأكد من وجود المجلدات
21
+ for directory in [DATA_DIR, TEMPLATES_DIR, VECTOR_DB_DIR, OUTPUT_DIR, LOGS_DIR]:
22
+ os.makedirs(directory, exist_ok=True)
23
+
24
+ # إعدادات API
25
+ API_KEYS = {
26
+ "ANTHROPIC_API_KEY": os.getenv("ANTHROPIC_API_KEY"),
27
+ "MUNAFASAT_API_KEY": os.getenv("MUNAFASAT_API_KEY"),
28
+ "ETIMAD_API_KEY": os.getenv("ETIMAD_API_KEY"),
29
+ "BALADY_API_KEY": os.getenv("BALADY_API_KEY")
30
+ }
31
+
32
+ # إعدادات نماذج الذكاء الاصطناعي
33
+ AI_MODELS = {
34
+ "default_llm": os.getenv("DEFAULT_LLM", "claude-3-haiku-20240307"),
35
+ "use_rag": os.getenv("USE_RAG", "True").lower() in ("true", "1", "t"),
36
+ "embedding_model": os.getenv("EMBEDDING_MODEL", "huggingface/arabic-embedding-base")
37
+ }
38
+
39
+ # إعدادات المحتوى المحلي
40
+ LOCAL_CONTENT = {
41
+ "min_percentage": {
42
+ "الإنشاءات": 30,
43
+ "تقنية المعلومات": 25,
44
+ "عام": 20
45
+ },
46
+ "target_percentage": {
47
+ "الإنشاءات": 60,
48
+ "تقنية المعلومات": 50,
49
+ "عام": 40
50
+ }
51
+ }
52
+
53
+ # إعدادات واجهة المستخدم
54
+ UI_SETTINGS = {
55
+ "theme": os.getenv("UI_THEME", "light"),
56
+ "language": os.getenv("UI_LANGUAGE", "ar"),
57
+ "page_size": int(os.getenv("UI_PAGE_SIZE", "10")),
58
+ "charts_theme": os.getenv("UI_CHARTS_THEME", "blue")
59
+ }
60
+
61
+ # إعدادات قاعدة البيانات
62
+ DB_SETTINGS = {
63
+ "vector_db": {
64
+ "path": VECTOR_DB_DIR,
65
+ "dimension": 384,
66
+ "similarity_threshold": 0.75
67
+ }
68
+ }
69
+
70
+ # وظيفة للحصول على إعدادات محددة
71
+ def get_config(section: str = None) -> Dict[str, Any]:
72
+ """
73
+ الحصول على إعدادات محددة أو جميع الإعدادات
74
+
75
+ المعاملات:
76
+ ----------
77
+ section : str, optional
78
+ اسم قسم الإعدادات المطلوب (افتراضي: None = جميع الإعدادات)
79
+
80
+ المخرجات:
81
+ --------
82
+ Dict[str, Any]
83
+ الإعدادات المطلوبة
84
+ """
85
+ config = {
86
+ "app": {
87
+ "name": APP_NAME,
88
+ "version": APP_VERSION,
89
+ "debug": DEBUG
90
+ },
91
+ "paths": {
92
+ "data_dir": DATA_DIR,
93
+ "templates_dir": TEMPLATES_DIR,
94
+ "vector_db_dir": VECTOR_DB_DIR,
95
+ "output_dir": OUTPUT_DIR,
96
+ "logs_dir": LOGS_DIR
97
+ },
98
+ "api_keys": API_KEYS,
99
+ "ai_models": AI_MODELS,
100
+ "local_content": LOCAL_CONTENT,
101
+ "ui": UI_SETTINGS,
102
+ "db": DB_SETTINGS
103
+ }
104
+
105
+ if section:
106
+ return config.get(section, {})
107
+
108
+ return config