local-deep-research 0.6.0__py3-none-any.whl → 0.6.1__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/__version__.py +1 -1
- local_deep_research/web/templates/pages/benchmark_results.html +146 -8
- {local_deep_research-0.6.0.dist-info → local_deep_research-0.6.1.dist-info}/METADATA +2 -2
- {local_deep_research-0.6.0.dist-info → local_deep_research-0.6.1.dist-info}/RECORD +7 -7
- {local_deep_research-0.6.0.dist-info → local_deep_research-0.6.1.dist-info}/WHEEL +0 -0
- {local_deep_research-0.6.0.dist-info → local_deep_research-0.6.1.dist-info}/entry_points.txt +0 -0
- {local_deep_research-0.6.0.dist-info → local_deep_research-0.6.1.dist-info}/licenses/LICENSE +0 -0
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.6.
|
1
|
+
__version__ = "0.6.1"
|
@@ -6,6 +6,7 @@
|
|
6
6
|
|
7
7
|
{% block extra_head %}
|
8
8
|
<meta name="csrf-token" content="{{ csrf_token() }}">
|
9
|
+
<meta name="app-version" content="{{ version }}">
|
9
10
|
<style>
|
10
11
|
.benchmark-results-card {
|
11
12
|
width: 100%;
|
@@ -769,14 +770,21 @@ function createRunCard(run) {
|
|
769
770
|
<div class="summary-label">Avg Time/Question</div>
|
770
771
|
</div>
|
771
772
|
<div class="summary-item">
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
773
|
+
<div style="display: flex; gap: 8px;">
|
774
|
+
${status === 'completed' ?
|
775
|
+
`<button class="btn btn-outline btn-sm" onclick="event.stopPropagation(); downloadBenchmarkYAML(${run.id})" style="background: #1e3a1e !important; border-color: #4caf50 !important; color: #4caf50 !important;">
|
776
|
+
<i class="fas fa-download"></i> YAML
|
777
|
+
</button>` : ''
|
778
|
+
}
|
779
|
+
${status === 'in_progress' ?
|
780
|
+
`<button class="btn btn-outline btn-sm delete-btn" onclick="event.stopPropagation(); cancelAndDeleteBenchmarkRun(${run.id})" style="background: #3a1e1e !important; border-color: #f44336 !important; color: #f44336 !important;">
|
781
|
+
<i class="fas fa-stop"></i> Cancel & Delete
|
782
|
+
</button>` :
|
783
|
+
`<button class="btn btn-outline btn-sm delete-btn" onclick="event.stopPropagation(); deleteBenchmarkRun(${run.id})">
|
784
|
+
<i class="fas fa-trash"></i> Delete
|
785
|
+
</button>`
|
786
|
+
}
|
787
|
+
</div>
|
780
788
|
<div class="summary-label">Actions</div>
|
781
789
|
</div>
|
782
790
|
</div>
|
@@ -1061,6 +1069,136 @@ async function cancelAndDeleteBenchmarkRun(runId) {
|
|
1061
1069
|
}
|
1062
1070
|
}
|
1063
1071
|
|
1072
|
+
async function downloadBenchmarkYAML(runId) {
|
1073
|
+
try {
|
1074
|
+
// Find the run in our local data
|
1075
|
+
const run = benchmarkRuns.find(r => r.id === runId);
|
1076
|
+
if (!run) {
|
1077
|
+
showAlert('Benchmark run not found', 'error');
|
1078
|
+
return;
|
1079
|
+
}
|
1080
|
+
|
1081
|
+
// Get current date for filename
|
1082
|
+
const date = new Date().toISOString().split('T')[0];
|
1083
|
+
|
1084
|
+
// Get app version from meta tag
|
1085
|
+
const appVersion = document.querySelector('meta[name="app-version"]')?.content || 'Could not fetch version';
|
1086
|
+
|
1087
|
+
// Extract model name and clean it for filename
|
1088
|
+
const modelName = run.search_config?.model_name || 'unknown-model';
|
1089
|
+
const cleanModelName = modelName.replace(/[^a-zA-Z0-9.-]/g, '-').toLowerCase();
|
1090
|
+
|
1091
|
+
// Get all relevant settings from database
|
1092
|
+
let localContextWindow = 'Could not fetch';
|
1093
|
+
let maxTokens = 'Could not fetch';
|
1094
|
+
let contextWindowUnrestricted = 'Could not fetch';
|
1095
|
+
let contextWindowSize = 'Could not fetch';
|
1096
|
+
let supportsMaxTokens = 'Could not fetch';
|
1097
|
+
|
1098
|
+
try {
|
1099
|
+
const settingsResponse = await fetch('/settings/api');
|
1100
|
+
if (settingsResponse.ok) {
|
1101
|
+
const data = await settingsResponse.json();
|
1102
|
+
if (data.status === 'success' && data.settings) {
|
1103
|
+
const settings = data.settings;
|
1104
|
+
// LLM settings - extract the 'value' property from each setting object
|
1105
|
+
localContextWindow = settings['llm.local_context_window_size']?.value || 'Could not fetch';
|
1106
|
+
maxTokens = settings['llm.max_tokens']?.value || 'Could not fetch';
|
1107
|
+
contextWindowUnrestricted = settings['llm.context_window_unrestricted']?.value !== undefined ?
|
1108
|
+
(settings['llm.context_window_unrestricted'].value ? 'Yes' : 'No') : 'Could not fetch';
|
1109
|
+
contextWindowSize = settings['llm.context_window_size']?.value || 'Could not fetch';
|
1110
|
+
supportsMaxTokens = settings['llm.supports_max_tokens']?.value !== undefined ?
|
1111
|
+
(settings['llm.supports_max_tokens'].value ? 'Yes' : 'No') : 'Could not fetch';
|
1112
|
+
}
|
1113
|
+
}
|
1114
|
+
} catch (e) {
|
1115
|
+
console.error('Could not fetch current settings:', e);
|
1116
|
+
}
|
1117
|
+
|
1118
|
+
// Calculate average search results if available
|
1119
|
+
const avgSearchResults = formatAvgSearchResults(run).replace(' results', '');
|
1120
|
+
const searchResultsNum = avgSearchResults !== 'N/A' ? avgSearchResults : '# Please fill in';
|
1121
|
+
|
1122
|
+
// Generate YAML content
|
1123
|
+
const yamlContent = `# Benchmark Result
|
1124
|
+
# Generated from Local Deep Research v${appVersion}
|
1125
|
+
# Date: ${date}
|
1126
|
+
|
1127
|
+
# Model Information
|
1128
|
+
model: ${modelName}
|
1129
|
+
model_provider: ${run.search_config?.provider || 'unknown'}
|
1130
|
+
quantization: # Please fill in if applicable
|
1131
|
+
|
1132
|
+
# Search Engine (critical for benchmark reproducibility)
|
1133
|
+
search_engine: ${run.search_config?.search_tool || 'unknown'}
|
1134
|
+
search_provider_version: # if known, e.g., "latest", "2024.1.0"
|
1135
|
+
average_results_per_query: ${searchResultsNum}
|
1136
|
+
|
1137
|
+
# Hardware
|
1138
|
+
hardware:
|
1139
|
+
gpu: # Please fill in
|
1140
|
+
ram: # Please fill in
|
1141
|
+
cpu: # Please fill in
|
1142
|
+
|
1143
|
+
# Benchmark Results
|
1144
|
+
results:
|
1145
|
+
dataset: SimpleQA
|
1146
|
+
total_questions: ${run.total_examples}
|
1147
|
+
|
1148
|
+
${run.search_config?.search_strategy === 'focused_iteration' ? 'focused_iteration' : 'source_based'}:
|
1149
|
+
accuracy: ${run.overall_accuracy ? run.overall_accuracy.toFixed(1) : 0}% (${Math.round(run.overall_accuracy * run.total_examples / 100)}/${run.total_examples})
|
1150
|
+
iterations: ${run.search_config?.iterations || 'N/A'}
|
1151
|
+
questions_per_iteration: ${run.search_config?.questions_per_iteration || 'N/A'}
|
1152
|
+
avg_time_per_question: ${formatAvgProcessingTime(run)}
|
1153
|
+
total_tokens_used: # if available
|
1154
|
+
|
1155
|
+
# Configuration
|
1156
|
+
configuration:
|
1157
|
+
context_window: ${localContextWindow} # Current setting at download time - may differ from benchmark run
|
1158
|
+
temperature: ${run.search_config?.temperature || 'N/A'}
|
1159
|
+
max_tokens: ${maxTokens} # Current setting at download time
|
1160
|
+
local_provider_context_window_size: ${localContextWindow} # Current setting at download time
|
1161
|
+
context_window_unrestricted: ${contextWindowUnrestricted} # Current setting at download time
|
1162
|
+
|
1163
|
+
# Versions
|
1164
|
+
versions:
|
1165
|
+
ldr_version: ${appVersion}
|
1166
|
+
ollama_version: # if applicable
|
1167
|
+
|
1168
|
+
# Test Details
|
1169
|
+
test_details:
|
1170
|
+
date_tested: ${date}
|
1171
|
+
rate_limiting_issues: # yes/no
|
1172
|
+
search_failures: # number of failed searches, if any
|
1173
|
+
|
1174
|
+
# Notes
|
1175
|
+
notes: |
|
1176
|
+
# Add any observations, errors, or insights here
|
1177
|
+
# Search strategy: ${run.search_config?.search_strategy || 'unknown'}
|
1178
|
+
# Provider: ${run.search_config?.provider || 'unknown'}
|
1179
|
+
# Note: Configuration values are from current settings at download time,
|
1180
|
+
# not necessarily the values used during the benchmark run
|
1181
|
+
`;
|
1182
|
+
|
1183
|
+
// Create blob and download
|
1184
|
+
const blob = new Blob([yamlContent], { type: 'text/yaml' });
|
1185
|
+
const url = window.URL.createObjectURL(blob);
|
1186
|
+
const a = document.createElement('a');
|
1187
|
+
a.style.display = 'none';
|
1188
|
+
a.href = url;
|
1189
|
+
a.download = `${cleanModelName}_${date}.yaml`;
|
1190
|
+
document.body.appendChild(a);
|
1191
|
+
a.click();
|
1192
|
+
window.URL.revokeObjectURL(url);
|
1193
|
+
document.body.removeChild(a);
|
1194
|
+
|
1195
|
+
showAlert('Benchmark YAML downloaded! Hardware details are optional but helpful for performance context.', 'success');
|
1196
|
+
} catch (error) {
|
1197
|
+
console.error('Error downloading YAML:', error);
|
1198
|
+
showAlert('Error downloading YAML: ' + error.message, 'error');
|
1199
|
+
}
|
1200
|
+
}
|
1201
|
+
|
1064
1202
|
async function deleteBenchmarkRun(runId) {
|
1065
1203
|
try {
|
1066
1204
|
const response = await fetch(`/benchmark/api/delete/${runId}`, {
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: local-deep-research
|
3
|
-
Version: 0.6.
|
3
|
+
Version: 0.6.1
|
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>, djpetti <djpetti@gmail.com>
|
6
6
|
License: MIT License
|
@@ -302,7 +302,7 @@ Early experiments on small SimpleQA dataset samples:
|
|
302
302
|
| Configuration | Accuracy | Notes |
|
303
303
|
|--------------|----------|--------|
|
304
304
|
| gpt-4.1-mini + SearXNG + focused_iteration | 90-95% | Limited sample size |
|
305
|
-
| gpt-4.1-mini + Tavily
|
305
|
+
| gpt-4.1-mini + Tavily + focused_iteration | 90-95% | Limited sample size |
|
306
306
|
| gemini-2.0-flash-001 + SearXNG | 82% | Single test run |
|
307
307
|
|
308
308
|
Note: These are preliminary results from initial testing. Performance varies significantly based on query types, model versions, and configurations. [Run your own benchmarks →](docs/BENCHMARKING.md)
|
@@ -1,9 +1,9 @@
|
|
1
|
-
local_deep_research-0.6.
|
2
|
-
local_deep_research-0.6.
|
3
|
-
local_deep_research-0.6.
|
4
|
-
local_deep_research-0.6.
|
1
|
+
local_deep_research-0.6.1.dist-info/METADATA,sha256=YMrqywP2xGWYA40UZUB51NA5A3k9iYUitu5kHiJlpO4,14522
|
2
|
+
local_deep_research-0.6.1.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
|
3
|
+
local_deep_research-0.6.1.dist-info/entry_points.txt,sha256=GcXS501Rjh-P80S8db7hnrQ23mS_Jg27PwpVQVO77as,113
|
4
|
+
local_deep_research-0.6.1.dist-info/licenses/LICENSE,sha256=Qg2CaTdu6SWnSqk1_JtgBPp_Da-LdqJDhT1Vt1MUc5s,1072
|
5
5
|
local_deep_research/__init__.py,sha256=j1ktf_e9HeXPe86NHibY5aINtZfTSGRTvLNtz9BJZa4,1071
|
6
|
-
local_deep_research/__version__.py,sha256=
|
6
|
+
local_deep_research/__version__.py,sha256=baAcEjLSYFIeNZF51tOMmA_zAMhN8HvKael-UU-Ruec,22
|
7
7
|
local_deep_research/advanced_search_system/__init__.py,sha256=sGusMj4eFIrhXR6QbOM16UDKB6aI-iS4IFivKWpMlh0,234
|
8
8
|
local_deep_research/advanced_search_system/answer_decoding/__init__.py,sha256=BmmbIPQnouYyboFD61CDq71fW5On555w7dbt42s9gV4,148
|
9
9
|
local_deep_research/advanced_search_system/answer_decoding/browsecomp_answer_decoder.py,sha256=4FDMP4n_z5DOzVIisH3_kexRqNm1AO3MDe-Md3WtgE0,12856
|
@@ -244,7 +244,7 @@ local_deep_research/web/templates/components/mobile_nav.html,sha256=6wbqweC5DGEy
|
|
244
244
|
local_deep_research/web/templates/components/settings_form.html,sha256=Z1eEQ_SFlioH24zrIDpjMQ-ajEJC2lLN4Tu8Y8uASLY,15987
|
245
245
|
local_deep_research/web/templates/components/sidebar.html,sha256=yvdex0rFt9IFEhVu50MEyvpBIlMKg8x9hLZf-cugPaY,1698
|
246
246
|
local_deep_research/web/templates/pages/benchmark.html,sha256=jeqe6koHeVmXKt0U8_JKWnSZEZouq5SuW_kEZMMKjRs,103838
|
247
|
-
local_deep_research/web/templates/pages/benchmark_results.html,sha256=
|
247
|
+
local_deep_research/web/templates/pages/benchmark_results.html,sha256=ijQesleJN-pCNoyQGViRH5bCwb15fYY3vliH5hWjTfM,39771
|
248
248
|
local_deep_research/web/templates/pages/benchmark_simple.html,sha256=mLvhzJqRj4rFRJPG9Jo-eHYSogeDVnpRgd5TwACZ1t8,14396
|
249
249
|
local_deep_research/web/templates/pages/cost_analytics.html,sha256=mXHw-MSXztJMh6xvW2D_9KXW5EuyrpNnMFTpP7Ob2GQ,46194
|
250
250
|
local_deep_research/web/templates/pages/details.html,sha256=Led51_cv97e_Z057_7QVWT7imVB4f71FWeL2q83CJrE,12413
|
@@ -289,4 +289,4 @@ local_deep_research/web_search_engines/retriever_registry.py,sha256=ZErfErn6s1LI
|
|
289
289
|
local_deep_research/web_search_engines/search_engine_base.py,sha256=0ys6nqm4WLTvYqHLZk4x5ZKFTc4BcqhUBjT1m1Jibp0,17114
|
290
290
|
local_deep_research/web_search_engines/search_engine_factory.py,sha256=jKvLkv6rHWSKTnqfLvyvA2WF4qu5qaelgd4IoGOcyVs,12588
|
291
291
|
local_deep_research/web_search_engines/search_engines_config.py,sha256=aZ1Y5YMPWgZqRC-wCJ4JUQgliBNSbU0dOUlCvR_elws,6086
|
292
|
-
local_deep_research-0.6.
|
292
|
+
local_deep_research-0.6.1.dist-info/RECORD,,
|
File without changes
|
{local_deep_research-0.6.0.dist-info → local_deep_research-0.6.1.dist-info}/entry_points.txt
RENAMED
File without changes
|
{local_deep_research-0.6.0.dist-info → local_deep_research-0.6.1.dist-info}/licenses/LICENSE
RENAMED
File without changes
|