Browse Source

fix: Update external search/loader method to POST

tth37 3 months ago
parent
commit
008fec80c1

+ 2 - 5
backend/open_webui/retrieval/loaders/external.py

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

+ 5 - 3
backend/open_webui/retrieval/web/external.py

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