Skip to content

Commit d34e2d0

Browse files
committed
Connect and read timeouts for simple_http
1 parent 1ed1110 commit d34e2d0

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

llmstack/common/utils/prequests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ def request(method, url, **kwargs):
7474

7575
# Add Promptly User-Agent to headers
7676
kwargs["headers"] = {
77-
**kwargs.get("headers", {}),
7877
**{"User-Agent": "Promptly"},
78+
**kwargs.get("headers", {}),
7979
}
8080
return requests.request(method=method, url=url, **kwargs)
8181

llmstack/processors/providers/promptly/simple_http.py

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ class SimpleHTTPProcessorConfiguration(ApiProcessorSchema):
8484
description="Use your authenticated connection to make the request",
8585
)
8686
output_type: OutputType = Field(description="The type of output to return", default=OutputType.STRING)
87+
connect_timeout: float = Field(description="The connect timeout for the request", default=5.0, le=10.0)
88+
read_timeout: float = Field(description="The read timeout for the request", default=10.0, le=30.0)
89+
user_agent: Optional[str] = Field(description="The user agent to use for the request", default=None)
8790

8891

8992
class SimpleHTTPProcessor(
@@ -126,6 +129,8 @@ def process(self) -> dict:
126129
else None
127130
)
128131
headers = {kv.key: kv.value for kv in self._config.headers}
132+
if self._config.user_agent:
133+
headers["User-Agent"] = self._config.user_agent
129134
query_params = {kv.key: kv.value for kv in self._config.query_params}
130135
body = json.loads(self._config.body) if self._config.body else {}
131136
cookie_jar = prequests.requests.cookies.RequestsCookieJar()
@@ -144,7 +149,12 @@ def process(self) -> dict:
144149

145150
if self._config.method == HTTPMethod.GET:
146151
response = prequests.get(
147-
self._input.url, params=query_params, headers=headers, cookies=cookie_jar, _connection=connection
152+
self._input.url,
153+
params=query_params,
154+
headers=headers,
155+
cookies=cookie_jar,
156+
_connection=connection,
157+
timeout=(self._config.connect_timeout, self._config.read_timeout),
148158
)
149159
elif self._config.method == HTTPMethod.POST:
150160
response = prequests.post(
@@ -154,6 +164,7 @@ def process(self) -> dict:
154164
headers=headers,
155165
cookies=cookie_jar,
156166
_connection=connection,
167+
timeout=(self._config.connect_timeout, self._config.read_timeout),
157168
)
158169
elif self._config.method == HTTPMethod.PUT:
159170
response = prequests.put(
@@ -163,14 +174,25 @@ def process(self) -> dict:
163174
headers=headers,
164175
cookies=cookie_jar,
165176
_connection=connection,
177+
timeout=(self._config.connect_timeout, self._config.read_timeout),
166178
)
167179
elif self._config.method == HTTPMethod.DELETE:
168180
response = prequests.delete(
169-
self._input.url, params=query_params, headers=headers, cookies=cookie_jar, _connection=connection
181+
self._input.url,
182+
params=query_params,
183+
headers=headers,
184+
cookies=cookie_jar,
185+
_connection=connection,
186+
timeout=(self._config.connect_timeout, self._config.read_timeout),
170187
)
171188
elif self._config.method == HTTPMethod.HEAD:
172189
response = prequests.head(
173-
self._input.url, params=query_params, headers=headers, cookies=cookie_jar, _connection=connection
190+
self._input.url,
191+
params=query_params,
192+
headers=headers,
193+
cookies=cookie_jar,
194+
_connection=connection,
195+
timeout=(self._config.connect_timeout, self._config.read_timeout),
174196
)
175197
else:
176198
raise ValueError("Invalid HTTP method")

0 commit comments

Comments
 (0)