local-deep-research 0.1.17__py3-none-any.whl → 0.1.18__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -100,8 +100,18 @@ a:hover {
100
100
  transition: all 0.2s;
101
101
  }
102
102
 
103
+ .sidebar-nav li a {
104
+ color: inherit;
105
+ text-decoration: none;
106
+ width: 100%;
107
+ display: flex;
108
+ align-items: center;
109
+ gap: 0.75rem;
110
+ }
111
+
103
112
  .sidebar-nav li i {
104
113
  width: 20px;
114
+ color: inherit;
105
115
  }
106
116
 
107
117
  .sidebar-nav li:hover {
@@ -115,6 +125,11 @@ a:hover {
115
125
  border-left-color: var(--accent-primary);
116
126
  }
117
127
 
128
+ .sidebar-nav li.active i,
129
+ .sidebar-nav li.active a {
130
+ color: inherit;
131
+ }
132
+
118
133
  .sidebar-footer {
119
134
  padding: 1rem 1.5rem;
120
135
  border-top: 1px solid var(--border-color);
@@ -1270,4 +1285,32 @@ textarea:focus, input[type="text"]:focus {
1270
1285
  background-color: var(--accent-primary);
1271
1286
  color: white;
1272
1287
  border-color: var(--accent-primary);
1288
+ }
1289
+
1290
+ /* Settings card styles */
1291
+ .settings-card {
1292
+ background-color: var(--bg-secondary);
1293
+ border-radius: 12px;
1294
+ padding: 1.5rem;
1295
+ transition: all 0.2s;
1296
+ border: 1px solid var(--border-color);
1297
+ }
1298
+
1299
+ .settings-card:hover {
1300
+ background-color: var(--bg-tertiary);
1301
+ border-color: var(--accent-primary);
1302
+ transform: translateY(-2px);
1303
+ box-shadow: var(--card-shadow);
1304
+ }
1305
+
1306
+ .settings-card .btn {
1307
+ background-color: var(--bg-tertiary);
1308
+ color: var(--text-primary);
1309
+ border: 1px solid var(--border-color);
1310
+ }
1311
+
1312
+ .settings-card .btn:hover {
1313
+ background-color: var(--accent-primary);
1314
+ color: white;
1315
+ border-color: var(--accent-primary);
1273
1316
  }
@@ -6,6 +6,7 @@ from typing import Dict, List, Any, Optional
6
6
 
7
7
  from .search_engine_base import BaseSearchEngine
8
8
  from .search_engines_config import SEARCH_ENGINES, DEFAULT_SEARCH_ENGINE
9
+ from local_deep_research.config import settings
9
10
 
10
11
  # Setup logging
11
12
  logging.basicConfig(level=logging.INFO)
@@ -42,10 +43,18 @@ def create_search_engine(engine_name: str, llm=None, **kwargs) -> Optional[BaseS
42
43
  # Check for API key requirements
43
44
  if engine_config.get("requires_api_key", False):
44
45
  api_key_env = engine_config.get("api_key_env")
45
- api_key = os.getenv(api_key_env) if api_key_env else None
46
46
 
47
+ # First check environment variable
48
+ api_key = os.getenv(api_key_env)
49
+
50
+ # If not found in environment, check Dynaconf settings
51
+ if not api_key and api_key_env:
52
+ # Convert env var name to settings path (e.g., BRAVE_API_KEY -> brave_api_key)
53
+ settings_key = api_key_env.lower()
54
+ api_key = settings.get(settings_key)
55
+
47
56
  if not api_key:
48
- logger.info(f"Required API key for {engine_name} not found in environment variable: {api_key_env}")
57
+ logger.info(f"Required API key for {engine_name} not found in environment variable: {api_key_env} or settings")
49
58
  return None
50
59
 
51
60
  # Check for LLM requirements
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: local-deep-research
3
- Version: 0.1.17
3
+ Version: 0.1.18
4
4
  Summary: AI-powered research assistant with deep, iterative analysis using LLMs and web searches
5
5
  Author-email: LearningCircuit <185559241+LearningCircuit@users.noreply.github.com>, HashedViking <6432677+HashedViking@users.noreply.github.com>
6
6
  License: MIT License
@@ -101,7 +101,7 @@ Access the web interface at `http://127.0.0.1:5000` in your browser.
101
101
 
102
102
  - 🔍 **Advanced Research Capabilities**
103
103
  - Automated deep research with intelligent follow-up questions
104
- - Citation tracking and source verification
104
+ - Proper inline citation and source verification
105
105
  - Multi-iteration analysis for comprehensive coverage
106
106
  - Full webpage content analysis (not just snippets)
107
107
 
@@ -112,8 +112,8 @@ Access the web interface at `http://127.0.0.1:5000` in your browser.
112
112
  - Configurable model selection based on needs
113
113
 
114
114
  - 📊 **Rich Output Options**
115
- - Detailed research findings with citations
116
- - Comprehensive research reports
115
+ - Detailed research findings with proper citations
116
+ - Well-structured comprehensive research reports
117
117
  - Quick summaries for rapid insights
118
118
  - Source tracking and verification
119
119
 
@@ -128,6 +128,12 @@ Access the web interface at `http://127.0.0.1:5000` in your browser.
128
128
  - **Local RAG search for private documents** - search your own documents with vector embeddings
129
129
  - Full webpage content retrieval and intelligent filtering
130
130
 
131
+ - 🎓 **Academic & Scientific Integration**
132
+ - Direct integration with PubMed, arXiv, Wikipedia, Semantic Scholar
133
+ - Properly formatted citations from academic sources
134
+ - Report structure suitable for literature reviews
135
+ - Cross-disciplinary synthesis of information
136
+
131
137
  ## Configuration System
132
138
 
133
139
  The package automatically creates and manages configuration files in your user directory:
@@ -261,20 +267,20 @@ You can use local document search in several ways:
261
267
 
262
268
  ## Available Search Engines
263
269
 
264
- | Engine | Purpose | API Key Required? |
265
- |--------|---------|-------------------|
266
- | `auto` | Intelligently selects the best engine | No |
267
- | `wikipedia` | General knowledge and facts | No |
268
- | `arxiv` | Scientific papers and research | No |
269
- | `pubmed` | Medical and biomedical research | No |
270
- | `semantic_scholar` | Academic literature across all fields | No |
271
- | `github` | Code repositories and documentation | No (but rate-limited) |
272
- | `brave` | Web search (privacy-focused) | Yes |
273
- | `serpapi` | Google search results | Yes |
274
- | `google_pse` | Custom Google search | Yes |
275
- | `wayback` | Historical web content | No |
276
- | `searxng` | Local web search engine | No (requires server) |
277
- | Any collection name | Search your local documents | No |
270
+ | Engine | Purpose | API Key Required? | Rate Limit |
271
+ |--------|---------|-------------------|------------|
272
+ | `auto` | Intelligently selects the best engine | No | Based on selected engine |
273
+ | `wikipedia` | General knowledge and facts | No | No strict limit |
274
+ | `arxiv` | Scientific papers and research | No | No strict limit |
275
+ | `pubmed` | Medical and biomedical research | No | No strict limit |
276
+ | `semantic_scholar` | Academic literature across all fields | No | 100/5min |
277
+ | `github` | Code repositories and documentation | No | 60/hour (unauthenticated) |
278
+ | `brave` | Web search (privacy-focused) | Yes | Based on plan |
279
+ | `serpapi` | Google search results | Yes | Based on plan |
280
+ | `google_pse` | Custom Google search | Yes | 100/day free tier |
281
+ | `wayback` | Historical web content | No | No strict limit |
282
+ | `searxng` | Local web search engine | No (requires local server) | No limit |
283
+ | Any collection name | Search your local documents | No | No limit |
278
284
 
279
285
  > **Support Free Knowledge:** If you frequently use the search engines in this tool, please consider making a donation to these organizations. They provide valuable services and rely on user support to maintain their operations:
280
286
  > - [Donate to Wikipedia](https://donate.wikimedia.org)
@@ -318,6 +324,9 @@ The web interface offers several features:
318
324
  - **PDF Export**: Download reports
319
325
  - **Research Management**: Terminate processes or delete records
320
326
 
327
+ ![Web Interface](./web1.png)
328
+ ![Web Interface](./web2.png)
329
+
321
330
  ## Command Line Interface
322
331
 
323
332
  The CLI version allows you to:
@@ -16,7 +16,7 @@ local_deep_research/utilties/search_utilities.py,sha256=-wj_-HCotqDUXYcPaKGN1C_t
16
16
  local_deep_research/utilties/setup_utils.py,sha256=t6GNp7lK1nLPdPNCkYUk82IATGM62vqy8UBD-KqShOs,215
17
17
  local_deep_research/web/__init__.py,sha256=3oHMatNu8r24FBtpojriIVbHYOVSHj4Q-quycMKOuDk,62
18
18
  local_deep_research/web/app.py,sha256=5_VLNdhJOqdgacucglUdS_lVURNgYNbXhK9vME6JmzA,72431
19
- local_deep_research/web/static/css/styles.css,sha256=mW217FfZNW1pzMtlbuXE2fRBJekeIdIoy4m-yXFirj4,23782
19
+ local_deep_research/web/static/css/styles.css,sha256=_26yBV1fKM51Dfv67CxKSbK8aeoYK5Tl7b2TPs5Whuo,24641
20
20
  local_deep_research/web/static/js/app.js,sha256=GPncdWpw2YNTs56JY-0tjTTr9JnX-fIZSZX0agwKZMU,172813
21
21
  local_deep_research/web/templates/api_keys_config.html,sha256=jA8Y-nfUGJ1dTvbw2jK_8xPy2x6UG_5gHpbrTJAex2g,3527
22
22
  local_deep_research/web/templates/collections_config.html,sha256=Dci7KumXBON8rAXRX8TVjgqS-bbht7d6aQiedDUnxQ0,3560
@@ -28,7 +28,7 @@ local_deep_research/web/templates/settings.html,sha256=S9A-tdpzMhP2Zw7kp2jxKlwaW
28
28
  local_deep_research/web/templates/settings_dashboard.html,sha256=De-v1KNdVvkXme5i3YZ6sIfU9aAKDc_N-AW9n4PZoso,9109
29
29
  local_deep_research/web_search_engines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
30
  local_deep_research/web_search_engines/search_engine_base.py,sha256=QmhfjuHK2deomh8tARghKuYnF-5t3wwBB661odS2VtU,8065
31
- local_deep_research/web_search_engines/search_engine_factory.py,sha256=B_QaqoAwnVXCmHNdqGbo94LekWY6wpBw_PWNkI120qE,10728
31
+ local_deep_research/web_search_engines/search_engine_factory.py,sha256=Sld6bYTwcyTxgVLx04t00sD7vfJhSHFOl6iiGJ08ZUE,11118
32
32
  local_deep_research/web_search_engines/search_engines_config.py,sha256=bNCuR09NOk5cjnKIgDQfhPipqmvDKeE7WP_6p8LLZf0,1979
33
33
  local_deep_research/web_search_engines/engines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
34
  local_deep_research/web_search_engines/engines/full_search.py,sha256=BuOz8dX-XocazCG7gGBKFnIY99FZtNFI0-Wq3fhsfp4,4689
@@ -47,9 +47,9 @@ local_deep_research/web_search_engines/engines/search_engine_semantic_scholar.py
47
47
  local_deep_research/web_search_engines/engines/search_engine_serpapi.py,sha256=XikEYnM-pAaR70VeAJ28lbqpRzCj4bCA9xY29taTV8g,9215
48
48
  local_deep_research/web_search_engines/engines/search_engine_wayback.py,sha256=astAvSLajDZ6rwgthJ3iBcHSWuDSYPO7uilIxaJhXmU,18132
49
49
  local_deep_research/web_search_engines/engines/search_engine_wikipedia.py,sha256=KSGJECbEcxZpVK-PhYsTCtzedSK0l1AjQmvGtx8KBks,9799
50
- local_deep_research-0.1.17.dist-info/licenses/LICENSE,sha256=Qg2CaTdu6SWnSqk1_JtgBPp_Da-LdqJDhT1Vt1MUc5s,1072
51
- local_deep_research-0.1.17.dist-info/METADATA,sha256=2uPvdSw878o2XCdEYAy4LlWCi_TrvwDz3hQBHq5z4CE,14428
52
- local_deep_research-0.1.17.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
53
- local_deep_research-0.1.17.dist-info/entry_points.txt,sha256=u-Y6Z3MWtR3dmsTDFYhXyfkPv7mALUA7YAnY4Fi1XDs,97
54
- local_deep_research-0.1.17.dist-info/top_level.txt,sha256=h6-uVE_wSuLOcoWwT9szhX23mBWufu77MqmM25UfbCY,20
55
- local_deep_research-0.1.17.dist-info/RECORD,,
50
+ local_deep_research-0.1.18.dist-info/licenses/LICENSE,sha256=Qg2CaTdu6SWnSqk1_JtgBPp_Da-LdqJDhT1Vt1MUc5s,1072
51
+ local_deep_research-0.1.18.dist-info/METADATA,sha256=6F15QvEwfPPqHVEGRUCPEYVXKoR8PvbXOwzM9Vemem8,15013
52
+ local_deep_research-0.1.18.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
53
+ local_deep_research-0.1.18.dist-info/entry_points.txt,sha256=u-Y6Z3MWtR3dmsTDFYhXyfkPv7mALUA7YAnY4Fi1XDs,97
54
+ local_deep_research-0.1.18.dist-info/top_level.txt,sha256=h6-uVE_wSuLOcoWwT9szhX23mBWufu77MqmM25UfbCY,20
55
+ local_deep_research-0.1.18.dist-info/RECORD,,