|
@@ -1,3 +1,4 @@
|
|
|
+import json
|
|
|
from typing import Any, Union
|
|
|
|
|
|
from yarl import URL
|
|
@@ -26,6 +27,15 @@ class JinaReaderTool(BuiltinTool):
|
|
|
if 'api_key' in self.runtime.credentials and self.runtime.credentials.get('api_key'):
|
|
|
headers['Authorization'] = "Bearer " + self.runtime.credentials.get('api_key')
|
|
|
|
|
|
+ request_params = tool_parameters.get('request_params')
|
|
|
+ if request_params is not None and request_params != '':
|
|
|
+ try:
|
|
|
+ request_params = json.loads(request_params)
|
|
|
+ if not isinstance(request_params, dict):
|
|
|
+ raise ValueError("request_params must be a JSON object")
|
|
|
+ except (json.JSONDecodeError, ValueError) as e:
|
|
|
+ raise ValueError(f"Invalid request_params: {e}")
|
|
|
+
|
|
|
target_selector = tool_parameters.get('target_selector')
|
|
|
if target_selector is not None and target_selector != '':
|
|
|
headers['X-Target-Selector'] = target_selector
|
|
@@ -53,7 +63,8 @@ class JinaReaderTool(BuiltinTool):
|
|
|
response = ssrf_proxy.get(
|
|
|
str(URL(self._jina_reader_endpoint + url)),
|
|
|
headers=headers,
|
|
|
- timeout=(10, 60)
|
|
|
+ params=request_params,
|
|
|
+ timeout=(10, 60),
|
|
|
)
|
|
|
|
|
|
if tool_parameters.get('summary', False):
|