|
|
|
|
@ -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):
|
|
|
|
|
|