1+ """
2+ Monica AI System Configuration
3+ =============================
4+
5+ Central configuration for the Monica AI Bot System including:
6+ - Bot management settings
7+ - API integration configurations
8+ - Platform-specific settings
9+ - Security and authentication parameters
10+ - Performance and optimization settings
11+ """
12+
13+ import os
14+ from typing import Dict , List , Any
15+
16+ # Core System Configuration
17+ MONICA_CONFIG = {
18+ "system_name" : "Monica AI Assistant" ,
19+ "version" : "1.0.0" ,
20+ "max_bots_per_user" : 10 ,
21+ "default_bot_timeout" : 30 , # seconds
22+ "enable_advanced_features" : True ,
23+ "enable_multi_platform" : True ,
24+ "enable_knowledge_management" : True
25+ }
26+
27+ # Bot Creation Configuration
28+ BOT_CONFIG = {
29+ "default_prompt_template" : """
30+ You are {bot_name}, a specialized AI assistant with the following role: {role}.
31+
32+ Your capabilities include:
33+ {capabilities}
34+
35+ Your knowledge base covers:
36+ {knowledge_domains}
37+
38+ Communication style: {communication_style}
39+ Difficulty level: {difficulty_level}
40+
41+ Always provide helpful, accurate, and contextually relevant responses.
42+ """ ,
43+
44+ "available_roles" : [
45+ "General Assistant" ,
46+ "Code Developer" ,
47+ "Data Analyst" ,
48+ "Content Writer" ,
49+ "Research Assistant" ,
50+ "Project Manager" ,
51+ "Business Consultant" ,
52+ "Educational Tutor"
53+ ],
54+
55+ "communication_styles" : [
56+ "Professional" ,
57+ "Friendly" ,
58+ "Technical" ,
59+ "Creative" ,
60+ "Analytical" ,
61+ "Instructional"
62+ ],
63+
64+ "difficulty_levels" : [
65+ "Beginner" ,
66+ "Intermediate" ,
67+ "Advanced" ,
68+ "Expert"
69+ ]
70+ }
71+
72+ # API Integration Configuration
73+ API_CONFIG = {
74+ "supported_apis" : [
75+ # Communication & Email
76+ "gmail_api" , "outlook_api" , "slack_api" , "discord_api" , "telegram_api" ,
77+
78+ # Content & Media
79+ "youtube_api" , "twitter_api" , "facebook_api" , "instagram_api" , "linkedin_api" ,
80+ "spotify_api" , "podcast_api" , "news_api" ,
81+
82+ # Development & Code
83+ "github_api" , "gitlab_api" , "stackoverflow_api" , "npm_api" , "pypi_api" ,
84+ "docker_api" , "aws_api" , "azure_api" , "gcp_api" ,
85+
86+ # Data & Analytics
87+ "google_analytics" , "firebase_api" , "mongodb_api" , "postgresql_api" ,
88+
89+ # Search & Knowledge
90+ "google_search" , "bing_search" , "wikipedia_api" , "wolfram_alpha" ,
91+ "arxiv_api" , "pubmed_api" ,
92+
93+ # Productivity
94+ "notion_api" , "trello_api" , "asana_api" , "jira_api" , "zapier_api"
95+ ],
96+
97+ "api_rate_limits" : {
98+ "default_requests_per_minute" : 60 ,
99+ "premium_requests_per_minute" : 300 ,
100+ "burst_limit" : 10
101+ },
102+
103+ "api_timeout" : 30 ,
104+ "max_retries" : 3 ,
105+ "enable_caching" : True ,
106+ "cache_duration" : 3600 # 1 hour
107+ }
108+
109+ # Writing & Communication Configuration
110+ WRITING_CONFIG = {
111+ "auto_title_generation" : True ,
112+ "web_research_enabled" : True ,
113+ "max_research_sources" : 10 ,
114+ "content_formats" : [
115+ "blog_post" , "email" , "report" , "summary" , "documentation" ,
116+ "social_media" , "presentation" , "tutorial" , "analysis"
117+ ],
118+
119+ "tone_options" : [
120+ "professional" , "casual" , "formal" , "friendly" , "technical" ,
121+ "persuasive" , "informative" , "creative" , "analytical"
122+ ],
123+
124+ "length_options" : {
125+ "short" : {"min" : 50 , "max" : 200 },
126+ "medium" : {"min" : 200 , "max" : 800 },
127+ "long" : {"min" : 800 , "max" : 2000 },
128+ "extended" : {"min" : 2000 , "max" : 5000 }
129+ }
130+ }
131+
132+ # Search & Analysis Configuration
133+ SEARCH_CONFIG = {
134+ "enable_multi_keyword_analysis" : True ,
135+ "max_keywords_per_query" : 20 ,
136+ "enable_result_summarization" : True ,
137+ "max_sources_per_summary" : 15 ,
138+ "enable_related_questions" : True ,
139+ "max_related_questions" : 10 ,
140+
141+ "search_engines" : [
142+ "google" , "bing" , "duckduckgo" , "semantic_scholar" , "arxiv"
143+ ],
144+
145+ "content_types" : [
146+ "web_pages" , "academic_papers" , "news_articles" ,
147+ "documentation" , "code_repositories" , "videos"
148+ ]
149+ }
150+
151+ # Platform Integration Configuration
152+ PLATFORM_CONFIG = {
153+ "gmail" : {
154+ "enable_auto_analysis" : True ,
155+ "enable_task_detection" : True ,
156+ "enable_quick_responses" : True ,
157+ "response_templates" : True
158+ },
159+
160+ "outlook" : {
161+ "enable_auto_analysis" : True ,
162+ "enable_task_detection" : True ,
163+ "enable_calendar_integration" : True
164+ },
165+
166+ "youtube" : {
167+ "enable_video_summaries" : True ,
168+ "enable_timestamp_extraction" : True ,
169+ "enable_realtime_qa" : True ,
170+ "max_video_length" : 7200 # 2 hours
171+ },
172+
173+ "social_media" : {
174+ "enable_content_generation" : True ,
175+ "enable_sentiment_analysis" : True ,
176+ "enable_engagement_optimization" : True ,
177+ "supported_platforms" : ["twitter" , "linkedin" , "facebook" , "instagram" ]
178+ },
179+
180+ "web_navigation" : {
181+ "enable_contextual_assistance" : True ,
182+ "enable_page_analysis" : True ,
183+ "enable_form_filling" : True
184+ }
185+ }
186+
187+ # Knowledge Management Configuration
188+ KNOWLEDGE_CONFIG = {
189+ "enable_external_upload" : True ,
190+ "supported_file_types" : [
191+ ".pdf" , ".docx" , ".txt" , ".md" , ".html" , ".json" , ".csv" ,
192+ ".py" , ".js" , ".java" , ".cpp" , ".sql" , ".yaml" , ".xml"
193+ ],
194+
195+ "max_file_size_mb" : 100 ,
196+ "enable_semantic_enrichment" : True ,
197+ "enable_auto_categorization" : True ,
198+ "enable_relationship_mapping" : True ,
199+
200+ "vector_embedding" : {
201+ "model" : "sentence-transformers" ,
202+ "dimension" : 384 ,
203+ "similarity_threshold" : 0.7
204+ }
205+ }
206+
207+ # Security Configuration
208+ SECURITY_CONFIG = {
209+ "enable_user_authentication" : True ,
210+ "session_timeout" : 3600 , # 1 hour
211+ "max_failed_attempts" : 5 ,
212+ "enable_rate_limiting" : True ,
213+ "enable_content_filtering" : True ,
214+
215+ "api_keys" : {
216+ "encrypt_storage" : True ,
217+ "rotation_interval" : 2592000 , # 30 days
218+ "require_secure_transmission" : True
219+ }
220+ }
221+
222+ # Performance Configuration
223+ PERFORMANCE_CONFIG = {
224+ "enable_caching" : True ,
225+ "cache_size_mb" : 500 ,
226+ "enable_background_processing" : True ,
227+ "max_concurrent_requests" : 50 ,
228+ "enable_load_balancing" : True ,
229+
230+ "database" : {
231+ "connection_pool_size" : 20 ,
232+ "query_timeout" : 30 ,
233+ "enable_query_optimization" : True
234+ }
235+ }
236+
237+ # Development Configuration
238+ DEVELOPMENT_CONFIG = {
239+ "enable_code_analysis" : True ,
240+ "supported_languages" : [
241+ "python" , "javascript" , "typescript" , "java" , "cpp" , "csharp" ,
242+ "go" , "rust" , "php" , "ruby" , "sql" , "html" , "css" , "shell"
243+ ],
244+
245+ "code_quality_checks" : True ,
246+ "enable_documentation_generation" : True ,
247+ "enable_test_suggestions" : True ,
248+ "enable_refactoring_assistance" : True
249+ }
250+
251+ # Export all configurations
252+ def get_config (config_name : str = None ) -> Dict [str , Any ]:
253+ """Get configuration by name or all configurations."""
254+ configs = {
255+ "monica" : MONICA_CONFIG ,
256+ "bot" : BOT_CONFIG ,
257+ "api" : API_CONFIG ,
258+ "writing" : WRITING_CONFIG ,
259+ "search" : SEARCH_CONFIG ,
260+ "platform" : PLATFORM_CONFIG ,
261+ "knowledge" : KNOWLEDGE_CONFIG ,
262+ "security" : SECURITY_CONFIG ,
263+ "performance" : PERFORMANCE_CONFIG ,
264+ "development" : DEVELOPMENT_CONFIG
265+ }
266+
267+ if config_name :
268+ return configs .get (config_name , {})
269+ return configs
270+
271+ def update_config (config_name : str , updates : Dict [str , Any ]) -> bool :
272+ """Update configuration with new values."""
273+ try :
274+ config = get_config (config_name )
275+ if config :
276+ config .update (updates )
277+ return True
278+ return False
279+ except Exception :
280+ return False
0 commit comments