local-deep-research 0.1.19__tar.gz → 0.1.20__tar.gz

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.
Files changed (66) hide show
  1. {local_deep_research-0.1.19/src/local_deep_research.egg-info → local_deep_research-0.1.20}/PKG-INFO +1 -1
  2. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/pyproject.toml +2 -1
  3. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/defaults/llm_config.py +14 -35
  4. {local_deep_research-0.1.19 → local_deep_research-0.1.20/src/local_deep_research.egg-info}/PKG-INFO +1 -1
  5. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/LICENSE +0 -0
  6. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/MANIFEST.in +0 -0
  7. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/README.md +0 -0
  8. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/requirements.txt +0 -0
  9. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/setup.cfg +0 -0
  10. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/__init__.py +0 -0
  11. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/citation_handler.py +0 -0
  12. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/config.py +0 -0
  13. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/defaults/__init__.py +0 -0
  14. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/defaults/local_collections.toml +0 -0
  15. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/defaults/main.toml +0 -0
  16. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/defaults/search_engines.toml +0 -0
  17. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/main.py +0 -0
  18. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/report_generator.py +0 -0
  19. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/search_system.py +0 -0
  20. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/utilties/__init__.py +0 -0
  21. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/utilties/enums.py +0 -0
  22. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/utilties/llm_utils.py +0 -0
  23. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/utilties/search_utilities.py +0 -0
  24. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/utilties/setup_utils.py +0 -0
  25. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/__init__.py +0 -0
  26. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/app.py +0 -0
  27. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/static/css/styles.css +0 -0
  28. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/static/js/app.js +0 -0
  29. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/static/sounds/README.md +0 -0
  30. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/static/sounds/error.mp3 +0 -0
  31. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/static/sounds/success.mp3 +0 -0
  32. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/templates/api_keys_config.html +0 -0
  33. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/templates/collections_config.html +0 -0
  34. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/templates/index.html +0 -0
  35. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/templates/llm_config.html +0 -0
  36. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/templates/main_config.html +0 -0
  37. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/templates/search_engines_config.html +0 -0
  38. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/templates/settings.html +0 -0
  39. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web/templates/settings_dashboard.html +0 -0
  40. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/__init__.py +0 -0
  41. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/__init__.py +0 -0
  42. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/full_search.py +0 -0
  43. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/meta_search_engine.py +0 -0
  44. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_arxiv.py +0 -0
  45. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_brave.py +0 -0
  46. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_ddg.py +0 -0
  47. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_github.py +0 -0
  48. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_google_pse.py +0 -0
  49. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_guardian.py +0 -0
  50. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_local.py +0 -0
  51. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_local_all.py +0 -0
  52. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_pubmed.py +0 -0
  53. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_searxng.py +0 -0
  54. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_semantic_scholar.py +0 -0
  55. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_serpapi.py +0 -0
  56. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_wayback.py +0 -0
  57. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/engines/search_engine_wikipedia.py +0 -0
  58. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/search_engine_base.py +0 -0
  59. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/search_engine_factory.py +0 -0
  60. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research/web_search_engines/search_engines_config.py +0 -0
  61. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research.egg-info/SOURCES.txt +0 -0
  62. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research.egg-info/dependency_links.txt +0 -0
  63. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research.egg-info/entry_points.txt +0 -0
  64. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research.egg-info/requires.txt +0 -0
  65. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/src/local_deep_research.egg-info/top_level.txt +0 -0
  66. {local_deep_research-0.1.19 → local_deep_research-0.1.20}/tests/test_google_pse.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: local-deep-research
3
- Version: 0.1.19
3
+ Version: 0.1.20
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "local-deep-research"
7
- version = "0.1.19"
7
+ version = "0.1.20"
8
8
  description = "AI-powered research assistant with deep, iterative analysis using LLMs and web searches"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -51,6 +51,7 @@ dependencies = [
51
51
  "lxml>=4.9.2",
52
52
  "pdfplumber>=0.9.0",
53
53
  "unstructured>=0.10.0",
54
+
54
55
  ]
55
56
 
56
57
  [project.urls]
@@ -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
- try:
119
- # Import LM Studio package
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
- # Create LM Studio LLM instance
127
- model = lmstudio.llm(model_name)
128
-
129
- # Return a LangChain compatible wrapper
130
- class LMStudioLLM(BaseLLM):
131
- def _call(self, prompt, stop=None, **kwargs):
132
- result = model.complete(prompt, temperature=temperature)
133
- return result.completion
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
- try:
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
- # Try to connect to check if running
282
- response = requests.get(f"{lmstudio_url}/health", timeout=1.0)
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: local-deep-research
3
- Version: 0.1.19
3
+ Version: 0.1.20
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