File size: 4,582 Bytes
4705b54
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
{
  "app_settings": {
    "title": "Multi-Source Research Assistant",
    "description": "Comprehensive research analysis combining multiple data sources",
    "version": "1.0.0",
    "debug_mode": false
  },
  "rate_limits": {
    "github_api": {
      "calls_per_minute": 30,
      "max_retries": 3,
      "retry_delay": 3,
      "search_rate_limit": 10,
      "core_rate_limit": 5000,
      "min_remaining_threshold": 5,
      "wait_time_multiplier": 1.5
    },
    "arxiv_api": {
      "calls_per_minute": 20,
      "max_retries": 3,
      "retry_delay": 10
    },
    "producthunt_api": {
      "calls_per_minute": 25,
      "max_retries": 3,
      "retry_delay": 5
    },
    "reddit_api": {
      "global_rate_limit": 60,
      "model_rate_limit": 45,
      "search_rate_limit": 45,
      "content_rate_limit": 60,
      "max_retries": 3,
      "retry_delay": 5,
      "backoff_multiplier": 2,
      "max_backoff": 300,
      "rate_limit_buffer": 0.1
    }
  },
  "timeouts": {
    "api_request": 300,
    "analysis": 400,
    "summary_generation": 300,
    "total_operation": 800,
    "github": {
      "search": 30,
      "repo_analysis": 60,
      "batch_timeout": 180,
      "query_preprocessing": 20
    }
  },
  "batch_settings": {
    "max_batch_size": 10,
    "processing_delay": 1,
    "max_items_per_request": 30,
    "github": {
      "max_search_results": 20,
      "max_analyze_per_batch": 5,
      "min_stars_threshold": 5,
      "max_description_length": 1000,
      "relevance_score_threshold": 0.6
    }
  },
  "reddit_settings": {
    "search": {
      "max_results_per_subreddit": 5,
      "posts_per_subreddit": 5,
      "batch_size": 20,
      "time_filter": "year",
      "sort_options": ["relevance", "hot", "top", "new"],
      "default_sort": "relevance",
      "syntax": "cloudsearch",
      "pagination_delay": 1
    },
    "resource_limits": {
      "max_concurrent_searches": 4,
      "max_retries_per_request": 3,
      "request_timeout": 25
    },
    "content_processing": {
      "max_title_length": 300,
      "max_content_length": 40000,
      "content_chunk_size": 2000
    }
  },
  "producthunt_settings": {
    "search": {
      "max_results": 5,
      "max_batch_size": 10,
      "keyword_match_count": 20,
      "weights": {
        "name_weight": 1.0,
        "tagline_weight": 3.0
      }
    },
    "api": {
      "max_retries": 3,
      "retry_delay": 5,
      "request_delay": 1
    },
    "semantic_analysis": {
      "batch_size": 5,
      "timeout": 60,
      "min_score_threshold": 0.3
    }
  },
  "cache": {
    "enabled": true,
    "max_size": 2000,
    "ttl": 7200,
    "cleanup_interval": 600
  },
  "memory_management": {
    "gc_collect_frequency": 10,
    "max_retries": 3,
    "cleanup_on_error": true,
    "batch_gc_threshold": 5
  },
  "github_settings": {
    "search": {
      "min_query_length": 3,
      "max_query_length": 256,
      "default_order": "desc",
      "fallback_enabled": true,
      "languages_priority": ["python", "javascript", "typescript", "java", "go"],
      "exclude_archived": true,
      "exclude_forks": true,
      "initial_result_count": 20,
      "relevance_scoring_count": 10,
      "final_analysis_count": 5,
      "default_sort": "best-match",
      "preprocessing": {
        "min_keyword_length": 3,
        "max_keywords": 4,
        "gemini_enhancement": {
          "temperature": 0.1,
          "top_k": 10,
          "top_p": 0.5,
          "max_retries": 3
        },
        "nlp_extraction": {
          "min_relevance_score": 0.6,
          "max_tokens_per_keyword": 20,
          "pos_weights": {
            "NOUN": 1.0,
            "VERB": 0.8,
            "ADJ": 0.6
          }
        }
      }
    },
    "analysis": {
      "relevance_weights": {
        "stars": 2.0,
        "recency": 1.5,
        "description_similarity": 8.0,
        "topics_match": 0.3
      },
      "max_analysis_retries": 2,
      "max_concurrent_analyses": 3
    }
  },
  "allowed_subreddits": [
    "InternetIsBeautiful",
    "Indiewebdev",
    "SideProject",
    "Productivity",
    "HuggingFace",
    "ArtificialInteligence",
    "MachineLearning",
    "deeplearning",
    "webdev",
    "Futurology",
    "ProductHunters",
    "coolgithubprojects",
    "github"
  ],
  "error_handling": {
    "max_retries": 3,
    "retry_delay_base": 2,
    "retry_delay_max": 10,
    "fail_fast": false,
    "retry_status_codes": [429, 500, 502, 503, 504]
  },
  "ui_settings": {
    "theme": "default",
    "max_input_length": 1000,
    "refresh_interval": 5000,
    "show_progress": true
  }
}