fix: Update external search/loader method to POST

This commit is contained in:
tth37 2025-04-14 18:17:27 +08:00
parent 22f0365cef
commit 008fec80c1
2 changed files with 7 additions and 8 deletions

View File

@ -19,9 +19,6 @@ class ExternalLoader(BaseLoader):
continue_on_failure: bool = True, continue_on_failure: bool = True,
**kwargs, **kwargs,
) -> None: ) -> None:
if not web_paths:
raise ValueError("At least one URL must be provided.")
self.external_url = external_url self.external_url = external_url
self.external_api_key = external_api_key self.external_api_key = external_api_key
self.urls = web_paths if isinstance(web_paths, list) else [web_paths] self.urls = web_paths if isinstance(web_paths, list) else [web_paths]
@ -32,13 +29,13 @@ class ExternalLoader(BaseLoader):
for i in range(0, len(self.urls), batch_size): for i in range(0, len(self.urls), batch_size):
urls = self.urls[i : i + batch_size] urls = self.urls[i : i + batch_size]
try: try:
response = requests.get( response = requests.post(
self.external_url, self.external_url,
headers={ headers={
"User-Agent": "Open WebUI (https://github.com/open-webui/open-webui) RAG Bot", "User-Agent": "Open WebUI (https://github.com/open-webui/open-webui) RAG Bot",
"Authorization": f"Bearer {self.external_api_key}", "Authorization": f"Bearer {self.external_api_key}",
}, },
params={ json={
"urls": urls, "urls": urls,
}, },
) )

View File

@ -17,13 +17,13 @@ def search_external(
filter_list: Optional[List[str]] = None, filter_list: Optional[List[str]] = None,
) -> List[SearchResult]: ) -> List[SearchResult]:
try: try:
response = requests.get( response = requests.post(
external_url, external_url,
headers={ headers={
"User-Agent": "Open WebUI (https://github.com/open-webui/open-webui) RAG Bot", "User-Agent": "Open WebUI (https://github.com/open-webui/open-webui) RAG Bot",
"Authorization": f"Bearer {external_api_key}", "Authorization": f"Bearer {external_api_key}",
}, },
params={ json={
"query": query, "query": query,
"count": count, "count": count,
}, },
@ -32,7 +32,7 @@ def search_external(
results = response.json() results = response.json()
if filter_list: if filter_list:
results = get_filtered_results(results, filter_list) results = get_filtered_results(results, filter_list)
return [ results = [
SearchResult( SearchResult(
link=result.get("link"), link=result.get("link"),
title=result.get("title"), title=result.get("title"),
@ -40,6 +40,8 @@ def search_external(
) )
for result in results[:count] for result in results[:count]
] ]
log.info(f"External search results: {results}")
return results
except Exception as e: except Exception as e:
log.error(f"Error in External search: {e}") log.error(f"Error in External search: {e}")
return [] return []