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.
- local_deep_research/web/static/css/styles.css +43 -0
- local_deep_research/web_search_engines/search_engine_factory.py +11 -2
- {local_deep_research-0.1.17.dist-info → local_deep_research-0.1.18.dist-info}/METADATA +27 -18
- {local_deep_research-0.1.17.dist-info → local_deep_research-0.1.18.dist-info}/RECORD +8 -8
- {local_deep_research-0.1.17.dist-info → local_deep_research-0.1.18.dist-info}/WHEEL +0 -0
- {local_deep_research-0.1.17.dist-info → local_deep_research-0.1.18.dist-info}/entry_points.txt +0 -0
- {local_deep_research-0.1.17.dist-info → local_deep_research-0.1.18.dist-info}/licenses/LICENSE +0 -0
- {local_deep_research-0.1.17.dist-info → local_deep_research-0.1.18.dist-info}/top_level.txt +0 -0
@@ -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.
|
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
|
-
-
|
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
|
-
-
|
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 (
|
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
|
+

|
328
|
+

|
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=
|
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=
|
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.
|
51
|
-
local_deep_research-0.1.
|
52
|
-
local_deep_research-0.1.
|
53
|
-
local_deep_research-0.1.
|
54
|
-
local_deep_research-0.1.
|
55
|
-
local_deep_research-0.1.
|
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,,
|
File without changes
|
{local_deep_research-0.1.17.dist-info → local_deep_research-0.1.18.dist-info}/entry_points.txt
RENAMED
File without changes
|
{local_deep_research-0.1.17.dist-info → local_deep_research-0.1.18.dist-info}/licenses/LICENSE
RENAMED
File without changes
|
File without changes
|