aidial-sdk 0.37.0.dev3__tar.gz → 0.37.0.dev5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/PKG-INFO +2 -1
  2. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/README.md +1 -0
  3. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/application.py +5 -1
  4. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/env.py +6 -0
  5. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/pyproject.toml +1 -1
  6. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/LICENSE +0 -0
  7. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/__init__.py +0 -0
  8. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/_errors.py +0 -0
  9. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/_pydantic/__init__.py +0 -0
  10. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/_pydantic/_compat.py +0 -0
  11. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/_pydantic/_model_config.py +0 -0
  12. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/chat_completion/__init__.py +0 -0
  13. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/chat_completion/_types.py +0 -0
  14. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/chat_completion/base.py +0 -0
  15. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/chat_completion/choice.py +0 -0
  16. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/chat_completion/choice_base.py +0 -0
  17. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/chat_completion/chunks.py +0 -0
  18. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/chat_completion/enums.py +0 -0
  19. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/chat_completion/form.py +0 -0
  20. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/chat_completion/function_call.py +0 -0
  21. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/chat_completion/function_tool_call.py +0 -0
  22. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/chat_completion/request.py +0 -0
  23. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/chat_completion/response.py +0 -0
  24. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/chat_completion/stage.py +0 -0
  25. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/deployment/__init__.py +0 -0
  26. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/deployment/configuration.py +0 -0
  27. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/deployment/from_request_mixin.py +0 -0
  28. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/deployment/rate.py +0 -0
  29. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/deployment/tokenize.py +0 -0
  30. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/deployment/truncate_prompt.py +0 -0
  31. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/embeddings/__init__.py +0 -0
  32. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/embeddings/base.py +0 -0
  33. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/embeddings/request.py +0 -0
  34. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/embeddings/response.py +0 -0
  35. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/exceptions.py +0 -0
  36. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/header_propagator.py +0 -0
  37. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/py.typed +0 -0
  38. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/pydantic/v2.py +0 -0
  39. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/pydantic_v1/__init__.py +0 -0
  40. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/telemetry/__init__.py +0 -0
  41. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/telemetry/init.py +0 -0
  42. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/telemetry/types.py +0 -0
  43. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/__init__.py +0 -0
  44. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/_attachment.py +0 -0
  45. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/_cancel_scope.py +0 -0
  46. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/_content_stream.py +0 -0
  47. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/_disconnect_middleware.py +0 -0
  48. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/_indexed_list.py +0 -0
  49. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/_reflection.py +0 -0
  50. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/errors.py +0 -0
  51. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/json.py +0 -0
  52. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/log_config.py +0 -0
  53. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/logging.py +0 -0
  54. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/merge_chunks.py +0 -0
  55. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/pydantic.py +0 -0
  56. {aidial_sdk-0.37.0.dev3 → aidial_sdk-0.37.0.dev5}/aidial_sdk/utils/streaming.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aidial-sdk
3
- Version: 0.37.0.dev3
3
+ Version: 0.37.0.dev5
4
4
  Summary: Framework to create applications and model adapters for AI DIAL
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
@@ -88,6 +88,7 @@ Applications and model adapters implemented using this framework will be compati
88
88
  |---|---|---|
89
89
  |DIAL_SDK_LOG|WARNING|DIAL SDK log level|
90
90
  |DIAL_SDK_HEADERS_TO_PROXY|``|A comma-separated list of headers that should be proxied from incoming requests to outgoing requests to the DIAL API. By default, no headers are proxied.|
91
+ |DIAL_SDK_SSE_HEARTBEAT_INTERVAL||When set, the SDK inserts ping comments into streaming chat completion responses after the response has been idle for the specified number of seconds, helping prevent read timeouts when the DIAL application isn't responsive.|
91
92
  |PYDANTIC_V2|False|When `True` and Pydantic V2 is installed, DIAL SDK classes for requests/responses will be based on Pydantic V2 `BaseModel`. Otherwise, they will be based on Pydantic V1 `BaseModel`.|
92
93
 
93
94
  ---
@@ -49,6 +49,7 @@ Applications and model adapters implemented using this framework will be compati
49
49
  |---|---|---|
50
50
  |DIAL_SDK_LOG|WARNING|DIAL SDK log level|
51
51
  |DIAL_SDK_HEADERS_TO_PROXY|``|A comma-separated list of headers that should be proxied from incoming requests to outgoing requests to the DIAL API. By default, no headers are proxied.|
52
+ |DIAL_SDK_SSE_HEARTBEAT_INTERVAL||When set, the SDK inserts ping comments into streaming chat completion responses after the response has been idle for the specified number of seconds, helping prevent read timeouts when the DIAL application isn't responsive.|
52
53
  |PYDANTIC_V2|False|When `True` and Pydantic V2 is installed, DIAL SDK classes for requests/responses will be based on Pydantic V2 `BaseModel`. Otherwise, they will be based on Pydantic V1 `BaseModel`.|
53
54
 
54
55
  ---
@@ -32,7 +32,7 @@ from aidial_sdk.header_propagator import HeaderPropagator
32
32
  from aidial_sdk.telemetry.types import TelemetryConfig
33
33
  from aidial_sdk.utils._disconnect_middleware import DisconnectMiddleware
34
34
  from aidial_sdk.utils._reflection import get_method_implementation
35
- from aidial_sdk.utils.env import env_var_list
35
+ from aidial_sdk.utils.env import env_float, env_var_list
36
36
  from aidial_sdk.utils.log_config import LogConfig
37
37
  from aidial_sdk.utils.logging import log_debug, set_log_deployment
38
38
  from aidial_sdk.utils.pydantic import model_validate_extra_fields
@@ -279,6 +279,10 @@ class DIALApp(FastAPI):
279
279
  *,
280
280
  heartbeat_interval: float | None,
281
281
  ):
282
+ heartbeat_interval = heartbeat_interval or env_float(
283
+ "DIAL_SDK_SSE_HEARTBEAT_INTERVAL"
284
+ )
285
+
282
286
  async def _handler(original_request: Request):
283
287
  request = await self._parse_request(
284
288
  ChatCompletionRequest, original_request, deployment_id
@@ -5,6 +5,12 @@ def env_bool(name: str, default: bool) -> bool:
5
5
  return os.getenv(name, str(default)).lower() in ["true", "1"]
6
6
 
7
7
 
8
+ def env_float(name: str) -> float | None:
9
+ if (value := os.getenv(name)) is not None:
10
+ return float(value)
11
+ return None
12
+
13
+
8
14
  def env_var_list(name: str) -> list[str]:
9
15
  value = os.getenv(name)
10
16
  if value is None:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "aidial-sdk"
3
- version = "0.37.0.dev3"
3
+ version = "0.37.0.dev5"
4
4
  description = "Framework to create applications and model adapters for AI DIAL"
5
5
  authors = [{ name = "EPAM RAIL", email = "SpecialEPM-DIALDevTeam@epam.com" }]
6
6
  license = "Apache-2.0"