Spaces:
Running
Running
fix: correct DuckDuckGo API call and database search execution
Browse files- Fix ddgs.news() to use query as first positional argument
- Fix database search to run synchronous function in executor
- Resolves TypeError: DDGS.news() missing required argument
- Resolves Database search error: unhashable type 'list'
src/core/orchestrator/query_orchestrator.py
CHANGED
|
@@ -378,11 +378,16 @@ class QueryOrchestrator:
|
|
| 378 |
search_tasks = []
|
| 379 |
for i, lang in enumerate(languages):
|
| 380 |
sparse_vec = sparse_embeddings[i].get("sparse")
|
| 381 |
-
|
| 382 |
-
|
| 383 |
-
|
| 384 |
-
|
| 385 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 386 |
)
|
| 387 |
search_tasks.append(task)
|
| 388 |
|
|
|
|
| 378 |
search_tasks = []
|
| 379 |
for i, lang in enumerate(languages):
|
| 380 |
sparse_vec = sparse_embeddings[i].get("sparse")
|
| 381 |
+
# search_with_vectors is synchronous, so we run it in executor
|
| 382 |
+
task = asyncio.get_event_loop().run_in_executor(
|
| 383 |
+
None,
|
| 384 |
+
vector_store.search_with_vectors,
|
| 385 |
+
dense_vec,
|
| 386 |
+
sparse_vec,
|
| 387 |
+
top_k,
|
| 388 |
+
None, # source_filter
|
| 389 |
+
lang, # language_filter
|
| 390 |
+
None # days_back
|
| 391 |
)
|
| 392 |
search_tasks.append(task)
|
| 393 |
|
src/infrastructure/adapters/duckduckgo_adapter.py
CHANGED
|
@@ -139,9 +139,9 @@ class DuckDuckGoAdapter:
|
|
| 139 |
results = []
|
| 140 |
|
| 141 |
try:
|
| 142 |
-
# DuckDuckGo news search
|
| 143 |
raw_results = self.ddgs.news(
|
| 144 |
-
|
| 145 |
region=region,
|
| 146 |
max_results=max_results
|
| 147 |
)
|
|
|
|
| 139 |
results = []
|
| 140 |
|
| 141 |
try:
|
| 142 |
+
# DuckDuckGo news search (ddgs package uses query as first positional arg)
|
| 143 |
raw_results = self.ddgs.news(
|
| 144 |
+
query, # First positional argument
|
| 145 |
region=region,
|
| 146 |
max_results=max_results
|
| 147 |
)
|