local-deep-research 0.1.19__py3-none-any.whl → 0.1.21__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/defaults/llm_config.py +14 -35
- local_deep_research/defaults/search_engines.toml +33 -33
- {local_deep_research-0.1.19.dist-info → local_deep_research-0.1.21.dist-info}/METADATA +99 -87
- {local_deep_research-0.1.19.dist-info → local_deep_research-0.1.21.dist-info}/RECORD +8 -8
- {local_deep_research-0.1.19.dist-info → local_deep_research-0.1.21.dist-info}/WHEEL +1 -1
- {local_deep_research-0.1.19.dist-info → local_deep_research-0.1.21.dist-info}/entry_points.txt +0 -0
- {local_deep_research-0.1.19.dist-info → local_deep_research-0.1.21.dist-info}/licenses/LICENSE +0 -0
- {local_deep_research-0.1.19.dist-info → local_deep_research-0.1.21.dist-info}/top_level.txt +0 -0
@@ -115,38 +115,21 @@ def get_llm(model_name=None, temperature=None, provider=None):
|
|
115
115
|
return get_fallback_model(temperature)
|
116
116
|
|
117
117
|
elif provider == "lmstudio":
|
118
|
-
|
119
|
-
#
|
120
|
-
import lmstudio
|
121
|
-
from langchain_core.language_models import BaseLLM
|
122
|
-
|
123
|
-
# Get LM Studio URL from settings
|
118
|
+
|
119
|
+
# LM Studio supports OpenAI API format, so we can use ChatOpenAI directly
|
124
120
|
lmstudio_url = settings.llm.get('lmstudio_url', "http://localhost:1234")
|
125
121
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
@property
|
136
|
-
def _identifying_params(self):
|
137
|
-
return {"model_name": model_name}
|
138
|
-
|
139
|
-
@property
|
140
|
-
def _llm_type(self):
|
141
|
-
return "lmstudio"
|
142
|
-
|
143
|
-
return LMStudioLLM()
|
144
|
-
except ImportError:
|
145
|
-
logger.error("LM Studio package not installed. Run 'pip install lmstudio'")
|
146
|
-
raise ImportError("LM Studio package not installed. Run 'pip install lmstudio'")
|
147
|
-
|
122
|
+
return ChatOpenAI(
|
123
|
+
model=model_name,
|
124
|
+
api_key="lm-studio", # LM Studio doesn't require a real API key
|
125
|
+
base_url=f"{lmstudio_url}/v1", # Use the configured URL with /v1 endpoint
|
126
|
+
temperature=temperature,
|
127
|
+
max_tokens=settings.llm.max_tokens
|
128
|
+
)
|
129
|
+
|
130
|
+
|
148
131
|
elif provider == "llamacpp":
|
149
|
-
|
132
|
+
|
150
133
|
# Import LlamaCpp
|
151
134
|
from langchain_community.llms import LlamaCpp
|
152
135
|
|
@@ -171,9 +154,6 @@ def get_llm(model_name=None, temperature=None, provider=None):
|
|
171
154
|
f16_kv=f16_kv,
|
172
155
|
verbose=True
|
173
156
|
)
|
174
|
-
except ImportError:
|
175
|
-
logger.error("LlamaCpp package not installed. Run 'pip install llama-cpp-python'")
|
176
|
-
raise ImportError("LlamaCpp package not installed. Run 'pip install llama-cpp-python'")
|
177
157
|
|
178
158
|
else:
|
179
159
|
return get_fallback_model(temperature)
|
@@ -275,11 +255,10 @@ def is_vllm_available():
|
|
275
255
|
def is_lmstudio_available():
|
276
256
|
"""Check if LM Studio is available"""
|
277
257
|
try:
|
278
|
-
import lmstudio
|
279
258
|
import requests
|
280
259
|
lmstudio_url = settings.llm.get('lmstudio_url', 'http://localhost:1234')
|
281
|
-
#
|
282
|
-
response = requests.get(f"{lmstudio_url}/
|
260
|
+
# LM Studio typically uses OpenAI-compatible endpoints
|
261
|
+
response = requests.get(f"{lmstudio_url}/v1/models", timeout=1.0)
|
283
262
|
return response.status_code == 200
|
284
263
|
except:
|
285
264
|
return False
|
@@ -186,40 +186,40 @@ strengths = ["searches all local collections", "personal documents", "offline ac
|
|
186
186
|
weaknesses = ["may return too many results", "requires indexing"]
|
187
187
|
requires_llm = true
|
188
188
|
|
189
|
-
[semantic_scholar]
|
190
|
-
module_path = "local_deep_research.web_search_engines.engines.search_engine_semantic_scholar"
|
191
|
-
class_name = "SemanticScholarSearchEngine"
|
192
|
-
requires_api_key = false
|
193
|
-
api_key_env = "S2_API_KEY"
|
194
|
-
reliability = 0.87
|
195
|
-
strengths = [
|
196
|
-
"comprehensive scientific literature",
|
197
|
-
"extensive citation network",
|
198
|
-
"AI-generated summaries (TLDRs)",
|
199
|
-
"academic paper metadata",
|
200
|
-
"cross-disciplinary coverage",
|
201
|
-
"200M+ papers across all fields",
|
202
|
-
"usable without API key"
|
203
|
-
]
|
204
|
-
weaknesses = [
|
205
|
-
"rate limited (1000 requests/day) without API key",
|
206
|
-
"limited to academic content"
|
207
|
-
]
|
208
|
-
supports_full_search = true
|
209
|
-
requires_llm = false
|
189
|
+
#[semantic_scholar]
|
190
|
+
#module_path = "local_deep_research.web_search_engines.engines.search_engine_semantic_scholar"
|
191
|
+
#class_name = "SemanticScholarSearchEngine"
|
192
|
+
#requires_api_key = false
|
193
|
+
#api_key_env = "S2_API_KEY"
|
194
|
+
#reliability = 0.87
|
195
|
+
#strengths = [
|
196
|
+
# "comprehensive scientific literature",
|
197
|
+
# "extensive citation network",
|
198
|
+
# "AI-generated summaries (TLDRs)",
|
199
|
+
# "academic paper metadata",
|
200
|
+
# "cross-disciplinary coverage",
|
201
|
+
# "200M+ papers across all fields",
|
202
|
+
# "usable without API key"
|
203
|
+
#]
|
204
|
+
#weaknesses = [
|
205
|
+
# "rate limited (1000 requests/day) without API key",
|
206
|
+
# "limited to academic content"
|
207
|
+
#]
|
208
|
+
#supports_full_search = true
|
209
|
+
#requires_llm = false
|
210
210
|
|
211
|
-
[semantic_scholar.default_params]
|
212
|
-
max_results = 20
|
213
|
-
get_abstracts = true
|
214
|
-
get_tldr = true
|
215
|
-
get_references = false
|
216
|
-
get_citations = false
|
217
|
-
get_embeddings = false
|
218
|
-
citation_limit = 10
|
219
|
-
reference_limit = 10
|
220
|
-
optimize_queries = true
|
221
|
-
max_retries = 5
|
222
|
-
retry_backoff_factor = 1.0
|
211
|
+
#[semantic_scholar.default_params]
|
212
|
+
#max_results = 20
|
213
|
+
#get_abstracts = true
|
214
|
+
#get_tldr = true
|
215
|
+
#get_references = false
|
216
|
+
#get_citations = false
|
217
|
+
#get_embeddings = false
|
218
|
+
#citation_limit = 10
|
219
|
+
#reference_limit = 10
|
220
|
+
#optimize_queries = true
|
221
|
+
#max_retries = 5
|
222
|
+
#retry_backoff_factor = 1.0
|
223
223
|
|
224
224
|
# Default search engine to use if none specified
|
225
225
|
DEFAULT_SEARCH_ENGINE = "wikipedia"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: local-deep-research
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.21
|
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
|
@@ -106,6 +106,13 @@ ldr # (OR python -m local_deep_research.main)
|
|
106
106
|
Access the web interface at `http://127.0.0.1:5000` in your browser.
|
107
107
|
|
108
108
|
## Features
|
109
|
+
<div align="center">
|
110
|
+
<a href="https://www.youtube.com/watch?v=4tDqV__jzKY">
|
111
|
+
<img src="https://img.youtube.com/vi/4tDqV__jzKY/0.jpg" alt="Local Deep Research">
|
112
|
+
<br>
|
113
|
+
<span>▶️ Watch Video</span>
|
114
|
+
</a>
|
115
|
+
</div>
|
109
116
|
|
110
117
|
- 🔍 **Advanced Research Capabilities**
|
111
118
|
- Automated deep research with intelligent follow-up questions
|
@@ -151,17 +158,17 @@ The package automatically creates and manages configuration files in your user d
|
|
151
158
|
|
152
159
|
### Default Configuration Files
|
153
160
|
|
154
|
-
If you prefere environment variables please refere to this file: https://github.com/LearningCircuit/local-deep-research/blob/main/docs/env_configuration.md
|
155
|
-
|
156
161
|
When you first run the tool, it creates these configuration files:
|
157
162
|
|
158
163
|
| File | Purpose |
|
159
164
|
|------|---------|
|
160
165
|
| `settings.toml` | General settings for research, web interface, and search |
|
161
|
-
| `llm_config.py` |
|
166
|
+
| `llm_config.py` | Advanced LLM configuration (rarely needs modification) |
|
162
167
|
| `search_engines.toml` | Define and configure search engines |
|
163
168
|
| `local_collections.toml` | Configure local document collections for RAG |
|
164
|
-
| `.
|
169
|
+
| `.env` | Environment variables for configuration (recommended for API keys) |
|
170
|
+
|
171
|
+
> **Note:** For comprehensive environment variable configuration, see our [Environment Variables Guide](https://github.com/LearningCircuit/local-deep-research/blob/main/docs/env_configuration.md).
|
165
172
|
|
166
173
|
## Setting Up AI Models
|
167
174
|
|
@@ -175,42 +182,34 @@ The system supports multiple LLM providers:
|
|
175
182
|
|
176
183
|
### Cloud Models
|
177
184
|
|
178
|
-
|
185
|
+
Add API keys to your environment variables (recommended) by creating a `.env` file in your config directory:
|
179
186
|
|
180
|
-
```
|
181
|
-
|
182
|
-
|
183
|
-
|
187
|
+
```bash
|
188
|
+
# Set API keys for cloud providers in .env
|
189
|
+
ANTHROPIC_API_KEY=your-api-key-here # For Claude models
|
190
|
+
OPENAI_API_KEY=your-openai-key-here # For GPT models
|
191
|
+
OPENAI_ENDPOINT_API_KEY=your-key-here # For OpenRouter or similar services
|
192
|
+
|
193
|
+
# Set your preferred LLM provider and model (no need to edit llm_config.py)
|
194
|
+
LDR_LLM__PROVIDER=ollama # Options: ollama, openai, anthropic, etc.
|
195
|
+
LDR_LLM__MODEL=gemma3:12b # Model name to use
|
184
196
|
```
|
185
197
|
|
186
|
-
|
187
|
-
|
188
|
-
```python
|
189
|
-
# Set your preferred model provider here
|
190
|
-
DEFAULT_PROVIDER = ModelProvider.OLLAMA # Change to your preferred provider
|
191
|
-
|
192
|
-
# Set your default model name here
|
193
|
-
DEFAULT_MODEL = "mistral" # Change to your preferred model
|
194
|
-
```
|
198
|
+
> **Important:** In most cases, you don't need to modify the `llm_config.py` file. Simply set the `LDR_LLM__PROVIDER` and `LDR_LLM__MODEL` environment variables to use your preferred model.
|
195
199
|
|
196
200
|
### Supported LLM Providers
|
197
201
|
|
198
202
|
The system supports multiple LLM providers:
|
199
203
|
|
200
|
-
| Provider | Type |
|
201
|
-
|
202
|
-
| `OLLAMA` | Local | No
|
203
|
-
| `OPENAI` | Cloud |
|
204
|
-
| `ANTHROPIC` | Cloud |
|
205
|
-
| `OPENAI_ENDPOINT` | Cloud |
|
206
|
-
| `VLLM` | Local | No
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
```python
|
211
|
-
# For OpenRouter, Together.ai, Azure OpenAI, or any compatible endpoint
|
212
|
-
OPENAI_ENDPOINT_URL = "https://openrouter.ai/api/v1"
|
213
|
-
```
|
204
|
+
| Provider | Type | API Key | Setup Details | Models |
|
205
|
+
|----------|------|---------|---------------|--------|
|
206
|
+
| `OLLAMA` | Local | No | Install from [ollama.ai](https://ollama.ai) | Mistral, Llama, Gemma, etc. |
|
207
|
+
| `OPENAI` | Cloud | `OPENAI_API_KEY` | Set in environment | GPT-3.5, GPT-4, GPT-4o |
|
208
|
+
| `ANTHROPIC` | Cloud | `ANTHROPIC_API_KEY` | Set in environment | Claude 3 Opus, Sonnet, Haiku |
|
209
|
+
| `OPENAI_ENDPOINT` | Cloud | `OPENAI_ENDPOINT_API_KEY` | Set in environment | Any OpenAI-compatible model |
|
210
|
+
| `VLLM` | Local | No | Requires GPU setup | Any supported by vLLM |
|
211
|
+
| `LMSTUDIO` | Local | No | Use LM Studio server | Models from LM Studio |
|
212
|
+
| `LLAMACPP` | Local | No | Configure model path | GGUF model formats |
|
214
213
|
|
215
214
|
The `OPENAI_ENDPOINT` provider can access any service with an OpenAI-compatible API, including:
|
216
215
|
- OpenRouter (access to hundreds of models)
|
@@ -219,26 +218,43 @@ The `OPENAI_ENDPOINT` provider can access any service with an OpenAI-compatible
|
|
219
218
|
- Groq
|
220
219
|
- Anyscale
|
221
220
|
- Self-hosted LLM servers with OpenAI compatibility
|
222
|
-
- Any other service that implements the OpenAI API specification
|
223
221
|
|
224
222
|
## Setting Up Search Engines
|
225
223
|
|
226
|
-
|
224
|
+
Some search engines require API keys. Add them to your environment variables by creating a `.env` file in your config directory:
|
227
225
|
|
228
|
-
|
226
|
+
```bash
|
227
|
+
# Search engine API keys (add to .env file)
|
228
|
+
SERP_API_KEY=your-serpapi-key-here # For Google results via SerpAPI
|
229
|
+
GOOGLE_PSE_API_KEY=your-google-key-here # For Google Programmable Search
|
230
|
+
GOOGLE_PSE_ENGINE_ID=your-pse-id-here # For Google Programmable Search
|
231
|
+
BRAVE_API_KEY=your-brave-search-key-here # For Brave Search
|
232
|
+
GUARDIAN_API_KEY=your-guardian-key-here # For The Guardian
|
233
|
+
|
234
|
+
# Set your preferred search tool
|
235
|
+
LDR_SEARCH__TOOL=auto # Default: intelligently selects best engine
|
236
|
+
```
|
229
237
|
|
230
|
-
|
238
|
+
> **Tip:** To override other settings via environment variables (e.g., to change the web port), use: **LDR_WEB__PORT=8080**
|
231
239
|
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
+
### Available Search Engines
|
241
|
+
|
242
|
+
| Engine | Purpose | API Key Required? | Rate Limit |
|
243
|
+
|--------|---------|-------------------|------------|
|
244
|
+
| `auto` | Intelligently selects the best engine | No | Based on selected engine |
|
245
|
+
| `wikipedia` | General knowledge and facts | No | No strict limit |
|
246
|
+
| `arxiv` | Scientific papers and research | No | No strict limit |
|
247
|
+
| `pubmed` | Medical and biomedical research | No | No strict limit |
|
248
|
+
| `semantic_scholar` | Academic literature across all fields | No | 100/5min |
|
249
|
+
| `github` | Code repositories and documentation | No | 60/hour (unauthenticated) |
|
250
|
+
| `brave` | Web search (privacy-focused) | Yes | Based on plan |
|
251
|
+
| `serpapi` | Google search results | Yes | Based on plan |
|
252
|
+
| `google_pse` | Custom Google search | Yes | 100/day free tier |
|
253
|
+
| `wayback` | Historical web content | No | No strict limit |
|
254
|
+
| `searxng` | Local web search engine | No (requires local server) | No limit |
|
255
|
+
| Any collection name | Search your local documents | No | No limit |
|
240
256
|
|
241
|
-
|
257
|
+
> **Note:** For detailed SearXNG setup, see our [SearXNG Setup Guide](https://github.com/LearningCircuit/local-deep-research/blob/main/docs/SearXNG-Setup.md).
|
242
258
|
|
243
259
|
## Local Document Search (RAG)
|
244
260
|
|
@@ -262,8 +278,6 @@ max_filtered_results = 5
|
|
262
278
|
chunk_size = 1000
|
263
279
|
chunk_overlap = 200
|
264
280
|
cache_dir = "__CACHE_DIR__/local_search/project_docs"
|
265
|
-
|
266
|
-
# More collections defined in the file...
|
267
281
|
```
|
268
282
|
|
269
283
|
2. Create your document directories:
|
@@ -279,34 +293,29 @@ You can use local document search in several ways:
|
|
279
293
|
3. **All collections**: Set `tool = "local_all"` to search across all collections
|
280
294
|
4. **Query syntax**: Type `collection:project_docs your query` to target a specific collection
|
281
295
|
|
282
|
-
##
|
296
|
+
## Docker Support
|
283
297
|
|
284
|
-
|
285
|
-
|--------|---------|-------------------|------------|
|
286
|
-
| `auto` | Intelligently selects the best engine | No | Based on selected engine |
|
287
|
-
| `wikipedia` | General knowledge and facts | No | No strict limit |
|
288
|
-
| `arxiv` | Scientific papers and research | No | No strict limit |
|
289
|
-
| `pubmed` | Medical and biomedical research | No | No strict limit |
|
290
|
-
| `semantic_scholar` | Academic literature across all fields | No | 100/5min |
|
291
|
-
| `github` | Code repositories and documentation | No | 60/hour (unauthenticated) |
|
292
|
-
| `brave` | Web search (privacy-focused) | Yes | Based on plan |
|
293
|
-
| `serpapi` | Google search results | Yes | Based on plan |
|
294
|
-
| `google_pse` | Custom Google search | Yes | 100/day free tier |
|
295
|
-
| `wayback` | Historical web content | No | No strict limit |
|
296
|
-
| `searxng` | Local web search engine | No (requires local server) | No limit |
|
297
|
-
| Any collection name | Search your local documents | No | No limit |
|
298
|
+
Local Deep Research can run in Docker containers for easy deployment across environments.
|
298
299
|
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
300
|
+
### Quick Docker Run
|
301
|
+
|
302
|
+
```bash
|
303
|
+
# Run with default settings (connects to Ollama running on the host)
|
304
|
+
docker run --network=host \
|
305
|
+
-e LDR_LLM__PROVIDER="ollama" \
|
306
|
+
-e LDR_LLM__MODEL="mistral" \
|
307
|
+
local-deep-research
|
308
|
+
```
|
309
|
+
|
310
|
+
For comprehensive Docker setup information, see:
|
311
|
+
- [Docker Usage Guide](https://github.com/LearningCircuit/local-deep-research/blob/main/docs/docker-usage-readme.md)
|
312
|
+
- [Docker Compose Guide](https://github.com/LearningCircuit/local-deep-research/blob/main/docs/docker-compose-guide.md)
|
304
313
|
|
305
314
|
## Advanced Configuration
|
306
315
|
|
307
316
|
### Research Parameters
|
308
317
|
|
309
|
-
Edit `settings.toml` to customize research parameters:
|
318
|
+
Edit `settings.toml` to customize research parameters or use environment variables:
|
310
319
|
|
311
320
|
```toml
|
312
321
|
[search]
|
@@ -324,8 +333,13 @@ max_results = 50
|
|
324
333
|
|
325
334
|
# Results after relevance filtering
|
326
335
|
max_filtered_results = 5
|
336
|
+
```
|
327
337
|
|
328
|
-
|
338
|
+
Using environment variables:
|
339
|
+
```bash
|
340
|
+
LDR_SEARCH__TOOL=auto
|
341
|
+
LDR_SEARCH__ITERATIONS=3
|
342
|
+
LDR_SEARCH__QUESTIONS_PER_ITERATION=2
|
329
343
|
```
|
330
344
|
|
331
345
|
## Web Interface
|
@@ -338,9 +352,6 @@ The web interface offers several features:
|
|
338
352
|
- **PDF Export**: Download reports
|
339
353
|
- **Research Management**: Terminate processes or delete records
|
340
354
|
|
341
|
-

|
342
|
-

|
343
|
-
|
344
355
|
## Command Line Interface
|
345
356
|
|
346
357
|
The CLI version allows you to:
|
@@ -363,8 +374,6 @@ cd local-deep-research
|
|
363
374
|
pip install -e .
|
364
375
|
```
|
365
376
|
|
366
|
-
This creates an "editable" installation that uses your local code, so any changes you make are immediately available without reinstalling.
|
367
|
-
|
368
377
|
You can run the application directly using Python module syntax:
|
369
378
|
|
370
379
|
```bash
|
@@ -375,12 +384,6 @@ python -m local_deep_research.web.app
|
|
375
384
|
python -m local_deep_research.main
|
376
385
|
```
|
377
386
|
|
378
|
-
This approach is useful for development and debugging, as it provides more detailed error messages and allows you to make code changes on the fly.
|
379
|
-
|
380
|
-
## Example Research
|
381
|
-
|
382
|
-
The repository includes complete research examples like our [fusion energy research analysis](https://github.com/LearningCircuit/local-deep-research/blob/main/examples/fusion-energy-research-developments.md) showcasing the system's capabilities.
|
383
|
-
|
384
387
|
## Community & Support
|
385
388
|
|
386
389
|
Join our [Discord server](https://discord.gg/2E6gYU2Z) to exchange ideas, discuss usage patterns, and share research approaches.
|
@@ -393,24 +396,33 @@ This project is licensed under the MIT License.
|
|
393
396
|
|
394
397
|
- Built with [Ollama](https://ollama.ai) for local AI processing
|
395
398
|
- Search powered by multiple sources:
|
396
|
-
- [Wikipedia](https://www.wikipedia.org/) for factual knowledge
|
399
|
+
- [Wikipedia](https://www.wikipedia.org/) for factual knowledge
|
397
400
|
- [arXiv](https://arxiv.org/) for scientific papers
|
398
401
|
- [PubMed](https://pubmed.ncbi.nlm.nih.gov/) for biomedical literature
|
402
|
+
- [Semantic Scholar](https://www.semanticscholar.org/) for academic literature
|
399
403
|
- [DuckDuckGo](https://duckduckgo.com) for web search
|
400
404
|
- [The Guardian](https://www.theguardian.com/) for journalism
|
401
|
-
- [SerpAPI](https://serpapi.com) for Google search results
|
405
|
+
- [SerpAPI](https://serpapi.com) for Google search results
|
402
406
|
- [SearXNG](https://searxng.org/) for local web-search engine
|
403
407
|
- [Brave Search](https://search.brave.com/) for privacy-focused web search
|
404
|
-
- [Semantic Scholar](https://www.semanticscholar.org/) for academic literature
|
405
408
|
- Built on [LangChain](https://github.com/hwchase17/langchain) framework
|
406
409
|
- Uses [justext](https://github.com/miso-belica/justext), [Playwright](https://playwright.dev), [FAISS](https://github.com/facebookresearch/faiss), and more
|
407
410
|
|
411
|
+
> **Support Free Knowledge:** If you frequently use the search engines in this tool, please consider making a donation to these organizations:
|
412
|
+
> - [Donate to Wikipedia](https://donate.wikimedia.org)
|
413
|
+
> - [Support arXiv](https://arxiv.org/about/give)
|
414
|
+
> - [Donate to DuckDuckGo](https://duckduckgo.com/donations)
|
415
|
+
> - [Support PubMed/NCBI](https://www.nlm.nih.gov/pubs/donations/donations.html)
|
416
|
+
|
408
417
|
## Contributing
|
409
418
|
|
410
419
|
Contributions are welcome! Please feel free to submit a Pull Request.
|
411
420
|
|
412
421
|
1. Fork the repository
|
413
422
|
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
|
414
|
-
3.
|
415
|
-
4.
|
416
|
-
5.
|
423
|
+
3. Make your changes
|
424
|
+
4. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
|
425
|
+
5. Push to the branch (`git push origin feature/AmazingFeature`)
|
426
|
+
6. **Important:** Open a Pull Request against the `dev` branch, not the `main` branch
|
427
|
+
|
428
|
+
We prefer all pull requests to be submitted against the `dev` branch for easier testing and integration before releasing to the main branch.
|
@@ -5,10 +5,10 @@ local_deep_research/main.py,sha256=uQXtGQ6LtZNd5Qw63D5ke4Q_LjYimouWVSUknVsk3JQ,3
|
|
5
5
|
local_deep_research/report_generator.py,sha256=EvaArnWirMgg42fMzmZeJczoEYujEbJ2ryHHYuuoXx8,8058
|
6
6
|
local_deep_research/search_system.py,sha256=yY3BEzX68vdtUcYF9h6lC3yVao0YA_NSBj6W3-RwlKk,15459
|
7
7
|
local_deep_research/defaults/__init__.py,sha256=2Vvlkl-gmP_qPYWegE4JBgummypogl3VXrQ1XzptFDU,1381
|
8
|
-
local_deep_research/defaults/llm_config.py,sha256=
|
8
|
+
local_deep_research/defaults/llm_config.py,sha256=7wTIugVYD_ypG7Xwvu3DBt0yO8TWBf_drOIQOSOkdQQ,9628
|
9
9
|
local_deep_research/defaults/local_collections.toml,sha256=zNa03PVnFrZ757JdZOuW6QDxkOc6ep5tG8baGBrMmXM,1778
|
10
10
|
local_deep_research/defaults/main.toml,sha256=6Lzbc5sVLxMwu83bLBp_tpYOZgmtThCfPL1L42eTGro,1939
|
11
|
-
local_deep_research/defaults/search_engines.toml,sha256=
|
11
|
+
local_deep_research/defaults/search_engines.toml,sha256=g0-qrw10oMgW74z_lYpPDkGwMje25mvalfY1EJ0nL3g,8134
|
12
12
|
local_deep_research/utilties/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
13
|
local_deep_research/utilties/enums.py,sha256=TVAZiu9szNbdacfb7whgaQJJlSk7oYByADaAierD4CE,229
|
14
14
|
local_deep_research/utilties/llm_utils.py,sha256=IGv-_gJWqLTpO3_op1NHIwxKaFEzmXhhVYSLTTSMnIA,4522
|
@@ -50,9 +50,9 @@ local_deep_research/web_search_engines/engines/search_engine_semantic_scholar.py
|
|
50
50
|
local_deep_research/web_search_engines/engines/search_engine_serpapi.py,sha256=XikEYnM-pAaR70VeAJ28lbqpRzCj4bCA9xY29taTV8g,9215
|
51
51
|
local_deep_research/web_search_engines/engines/search_engine_wayback.py,sha256=astAvSLajDZ6rwgthJ3iBcHSWuDSYPO7uilIxaJhXmU,18132
|
52
52
|
local_deep_research/web_search_engines/engines/search_engine_wikipedia.py,sha256=KSGJECbEcxZpVK-PhYsTCtzedSK0l1AjQmvGtx8KBks,9799
|
53
|
-
local_deep_research-0.1.
|
54
|
-
local_deep_research-0.1.
|
55
|
-
local_deep_research-0.1.
|
56
|
-
local_deep_research-0.1.
|
57
|
-
local_deep_research-0.1.
|
58
|
-
local_deep_research-0.1.
|
53
|
+
local_deep_research-0.1.21.dist-info/licenses/LICENSE,sha256=Qg2CaTdu6SWnSqk1_JtgBPp_Da-LdqJDhT1Vt1MUc5s,1072
|
54
|
+
local_deep_research-0.1.21.dist-info/METADATA,sha256=wmEq00-MvscM4aUEqNZWCmNa4ytEAfiBvljEx3px5DQ,16405
|
55
|
+
local_deep_research-0.1.21.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
56
|
+
local_deep_research-0.1.21.dist-info/entry_points.txt,sha256=u-Y6Z3MWtR3dmsTDFYhXyfkPv7mALUA7YAnY4Fi1XDs,97
|
57
|
+
local_deep_research-0.1.21.dist-info/top_level.txt,sha256=h6-uVE_wSuLOcoWwT9szhX23mBWufu77MqmM25UfbCY,20
|
58
|
+
local_deep_research-0.1.21.dist-info/RECORD,,
|
{local_deep_research-0.1.19.dist-info → local_deep_research-0.1.21.dist-info}/entry_points.txt
RENAMED
File without changes
|
{local_deep_research-0.1.19.dist-info → local_deep_research-0.1.21.dist-info}/licenses/LICENSE
RENAMED
File without changes
|
File without changes
|