external knowledge

This commit is contained in:
jyong 2024-08-20 12:47:51 +08:00
parent 4fd57929df
commit f6c8390b0b

View File

@ -1,6 +1,7 @@
import json
from datetime import datetime, timezone
from core.helper import ssrf_proxy
from extensions.ext_database import db
from extensions.ext_redis import redis_client
from libs import helper
@ -169,8 +170,21 @@ class ExternalDatasetService:
return dataset
@staticmethod
def process_external_api(api_template_id: str, data_source: dict, process_parameter: dict):
pass
def process_external_api(self, headers: dict[str, Any]) -> httpx.Response:
"""
do http request depending on api bundle
"""
kwargs = {
'url': self.server_url,
'headers': headers,
'params': self.params,
'timeout': (self.timeout.connect, self.timeout.read, self.timeout.write),
'follow_redirects': True,
}
if self.method in ('get', 'head', 'post', 'put', 'delete', 'patch'):
response = getattr(ssrf_proxy, self.method)(data=self.body, files=self.files, **kwargs)
else:
raise ValueError(f'Invalid http method {self.method}')
return response