airia 0.1.36__tar.gz → 0.1.37__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 (107) hide show
  1. {airia-0.1.36 → airia-0.1.37}/PKG-INFO +1 -1
  2. {airia-0.1.36 → airia-0.1.37}/airia/client/models/async_models.py +68 -0
  3. {airia-0.1.36 → airia-0.1.37}/airia/client/models/base_models.py +34 -0
  4. {airia-0.1.36 → airia-0.1.37}/airia/client/models/sync_models.py +68 -0
  5. {airia-0.1.36 → airia-0.1.37}/airia.egg-info/PKG-INFO +1 -1
  6. {airia-0.1.36 → airia-0.1.37}/pyproject.toml +1 -1
  7. {airia-0.1.36 → airia-0.1.37}/LICENSE +0 -0
  8. {airia-0.1.36 → airia-0.1.37}/README.md +0 -0
  9. {airia-0.1.36 → airia-0.1.37}/airia/__init__.py +0 -0
  10. {airia-0.1.36 → airia-0.1.37}/airia/client/__init__.py +0 -0
  11. {airia-0.1.36 → airia-0.1.37}/airia/client/_request_handler/__init__.py +0 -0
  12. {airia-0.1.36 → airia-0.1.37}/airia/client/_request_handler/async_request_handler.py +0 -0
  13. {airia-0.1.36 → airia-0.1.37}/airia/client/_request_handler/base_request_handler.py +0 -0
  14. {airia-0.1.36 → airia-0.1.37}/airia/client/_request_handler/sync_request_handler.py +0 -0
  15. {airia-0.1.36 → airia-0.1.37}/airia/client/async_client.py +0 -0
  16. {airia-0.1.36 → airia-0.1.37}/airia/client/attachments/__init__.py +0 -0
  17. {airia-0.1.36 → airia-0.1.37}/airia/client/attachments/async_attachments.py +0 -0
  18. {airia-0.1.36 → airia-0.1.37}/airia/client/attachments/base_attachments.py +0 -0
  19. {airia-0.1.36 → airia-0.1.37}/airia/client/attachments/sync_attachments.py +0 -0
  20. {airia-0.1.36 → airia-0.1.37}/airia/client/base_client.py +0 -0
  21. {airia-0.1.36 → airia-0.1.37}/airia/client/conversations/__init__.py +0 -0
  22. {airia-0.1.36 → airia-0.1.37}/airia/client/conversations/async_conversations.py +0 -0
  23. {airia-0.1.36 → airia-0.1.37}/airia/client/conversations/base_conversations.py +0 -0
  24. {airia-0.1.36 → airia-0.1.37}/airia/client/conversations/sync_conversations.py +0 -0
  25. {airia-0.1.36 → airia-0.1.37}/airia/client/data_vector_search/__init__.py +0 -0
  26. {airia-0.1.36 → airia-0.1.37}/airia/client/data_vector_search/async_data_vector_search.py +0 -0
  27. {airia-0.1.36 → airia-0.1.37}/airia/client/data_vector_search/base_data_vector_search.py +0 -0
  28. {airia-0.1.36 → airia-0.1.37}/airia/client/data_vector_search/sync_data_vector_search.py +0 -0
  29. {airia-0.1.36 → airia-0.1.37}/airia/client/deployments/__init__.py +0 -0
  30. {airia-0.1.36 → airia-0.1.37}/airia/client/deployments/async_deployments.py +0 -0
  31. {airia-0.1.36 → airia-0.1.37}/airia/client/deployments/base_deployments.py +0 -0
  32. {airia-0.1.36 → airia-0.1.37}/airia/client/deployments/sync_deployments.py +0 -0
  33. {airia-0.1.36 → airia-0.1.37}/airia/client/library/__init__.py +0 -0
  34. {airia-0.1.36 → airia-0.1.37}/airia/client/library/async_library.py +0 -0
  35. {airia-0.1.36 → airia-0.1.37}/airia/client/library/base_library.py +0 -0
  36. {airia-0.1.36 → airia-0.1.37}/airia/client/library/sync_library.py +0 -0
  37. {airia-0.1.36 → airia-0.1.37}/airia/client/models/__init__.py +0 -0
  38. {airia-0.1.36 → airia-0.1.37}/airia/client/pipeline_execution/__init__.py +0 -0
  39. {airia-0.1.36 → airia-0.1.37}/airia/client/pipeline_execution/async_pipeline_execution.py +0 -0
  40. {airia-0.1.36 → airia-0.1.37}/airia/client/pipeline_execution/base_pipeline_execution.py +0 -0
  41. {airia-0.1.36 → airia-0.1.37}/airia/client/pipeline_execution/sync_pipeline_execution.py +0 -0
  42. {airia-0.1.36 → airia-0.1.37}/airia/client/pipeline_import/__init__.py +0 -0
  43. {airia-0.1.36 → airia-0.1.37}/airia/client/pipeline_import/async_pipeline_import.py +0 -0
  44. {airia-0.1.36 → airia-0.1.37}/airia/client/pipeline_import/base_pipeline_import.py +0 -0
  45. {airia-0.1.36 → airia-0.1.37}/airia/client/pipeline_import/sync_pipeline_import.py +0 -0
  46. {airia-0.1.36 → airia-0.1.37}/airia/client/pipelines_config/__init__.py +0 -0
  47. {airia-0.1.36 → airia-0.1.37}/airia/client/pipelines_config/async_pipelines_config.py +0 -0
  48. {airia-0.1.36 → airia-0.1.37}/airia/client/pipelines_config/base_pipelines_config.py +0 -0
  49. {airia-0.1.36 → airia-0.1.37}/airia/client/pipelines_config/sync_pipelines_config.py +0 -0
  50. {airia-0.1.36 → airia-0.1.37}/airia/client/project/__init__.py +0 -0
  51. {airia-0.1.36 → airia-0.1.37}/airia/client/project/async_project.py +0 -0
  52. {airia-0.1.36 → airia-0.1.37}/airia/client/project/base_project.py +0 -0
  53. {airia-0.1.36 → airia-0.1.37}/airia/client/project/sync_project.py +0 -0
  54. {airia-0.1.36 → airia-0.1.37}/airia/client/store/__init__.py +0 -0
  55. {airia-0.1.36 → airia-0.1.37}/airia/client/store/async_store.py +0 -0
  56. {airia-0.1.36 → airia-0.1.37}/airia/client/store/base_store.py +0 -0
  57. {airia-0.1.36 → airia-0.1.37}/airia/client/store/sync_store.py +0 -0
  58. {airia-0.1.36 → airia-0.1.37}/airia/client/sync_client.py +0 -0
  59. {airia-0.1.36 → airia-0.1.37}/airia/client/tools/__init__.py +0 -0
  60. {airia-0.1.36 → airia-0.1.37}/airia/client/tools/async_tools.py +0 -0
  61. {airia-0.1.36 → airia-0.1.37}/airia/client/tools/base_tools.py +0 -0
  62. {airia-0.1.36 → airia-0.1.37}/airia/client/tools/sync_tools.py +0 -0
  63. {airia-0.1.36 → airia-0.1.37}/airia/constants.py +0 -0
  64. {airia-0.1.36 → airia-0.1.37}/airia/exceptions.py +0 -0
  65. {airia-0.1.36 → airia-0.1.37}/airia/logs.py +0 -0
  66. {airia-0.1.36 → airia-0.1.37}/airia/types/__init__.py +0 -0
  67. {airia-0.1.36 → airia-0.1.37}/airia/types/_api_version.py +0 -0
  68. {airia-0.1.36 → airia-0.1.37}/airia/types/_request_data.py +0 -0
  69. {airia-0.1.36 → airia-0.1.37}/airia/types/_structured_output.py +0 -0
  70. {airia-0.1.36 → airia-0.1.37}/airia/types/api/__init__.py +0 -0
  71. {airia-0.1.36 → airia-0.1.37}/airia/types/api/attachments/__init__.py +0 -0
  72. {airia-0.1.36 → airia-0.1.37}/airia/types/api/attachments/upload_file.py +0 -0
  73. {airia-0.1.36 → airia-0.1.37}/airia/types/api/conversations/__init__.py +0 -0
  74. {airia-0.1.36 → airia-0.1.37}/airia/types/api/conversations/_conversations.py +0 -0
  75. {airia-0.1.36 → airia-0.1.37}/airia/types/api/data_vector_search/__init__.py +0 -0
  76. {airia-0.1.36 → airia-0.1.37}/airia/types/api/data_vector_search/get_file_chunks.py +0 -0
  77. {airia-0.1.36 → airia-0.1.37}/airia/types/api/deployments/__init__.py +0 -0
  78. {airia-0.1.36 → airia-0.1.37}/airia/types/api/deployments/get_deployment.py +0 -0
  79. {airia-0.1.36 → airia-0.1.37}/airia/types/api/deployments/get_deployments.py +0 -0
  80. {airia-0.1.36 → airia-0.1.37}/airia/types/api/library/__init__.py +0 -0
  81. {airia-0.1.36 → airia-0.1.37}/airia/types/api/library/_library_models.py +0 -0
  82. {airia-0.1.36 → airia-0.1.37}/airia/types/api/models/__init__.py +0 -0
  83. {airia-0.1.36 → airia-0.1.37}/airia/types/api/models/list_models.py +0 -0
  84. {airia-0.1.36 → airia-0.1.37}/airia/types/api/pipeline_execution/__init__.py +0 -0
  85. {airia-0.1.36 → airia-0.1.37}/airia/types/api/pipeline_execution/_pipeline_execution.py +0 -0
  86. {airia-0.1.36 → airia-0.1.37}/airia/types/api/pipeline_execution/get_pipeline_execution.py +0 -0
  87. {airia-0.1.36 → airia-0.1.37}/airia/types/api/pipeline_import/__init__.py +0 -0
  88. {airia-0.1.36 → airia-0.1.37}/airia/types/api/pipeline_import/create_agent_from_pipeline_definition.py +0 -0
  89. {airia-0.1.36 → airia-0.1.37}/airia/types/api/pipelines_config/__init__.py +0 -0
  90. {airia-0.1.36 → airia-0.1.37}/airia/types/api/pipelines_config/export_pipeline_definition.py +0 -0
  91. {airia-0.1.36 → airia-0.1.37}/airia/types/api/pipelines_config/get_pipeline_config.py +0 -0
  92. {airia-0.1.36 → airia-0.1.37}/airia/types/api/pipelines_config/get_pipelines_config.py +0 -0
  93. {airia-0.1.36 → airia-0.1.37}/airia/types/api/project/__init__.py +0 -0
  94. {airia-0.1.36 → airia-0.1.37}/airia/types/api/project/get_projects.py +0 -0
  95. {airia-0.1.36 → airia-0.1.37}/airia/types/api/store/__init__.py +0 -0
  96. {airia-0.1.36 → airia-0.1.37}/airia/types/api/store/get_file.py +0 -0
  97. {airia-0.1.36 → airia-0.1.37}/airia/types/api/store/get_files.py +0 -0
  98. {airia-0.1.36 → airia-0.1.37}/airia/types/api/tools/__init__.py +0 -0
  99. {airia-0.1.36 → airia-0.1.37}/airia/types/api/tools/_tools.py +0 -0
  100. {airia-0.1.36 → airia-0.1.37}/airia/types/sse/__init__.py +0 -0
  101. {airia-0.1.36 → airia-0.1.37}/airia/types/sse/sse_messages.py +0 -0
  102. {airia-0.1.36 → airia-0.1.37}/airia/utils/sse_parser.py +0 -0
  103. {airia-0.1.36 → airia-0.1.37}/airia.egg-info/SOURCES.txt +0 -0
  104. {airia-0.1.36 → airia-0.1.37}/airia.egg-info/dependency_links.txt +0 -0
  105. {airia-0.1.36 → airia-0.1.37}/airia.egg-info/requires.txt +0 -0
  106. {airia-0.1.36 → airia-0.1.37}/airia.egg-info/top_level.txt +0 -0
  107. {airia-0.1.36 → airia-0.1.37}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airia
3
- Version: 0.1.36
3
+ Version: 0.1.37
4
4
  Summary: Python SDK for Airia API
5
5
  Author-email: Airia LLC <support@airia.com>
6
6
  License: MIT
@@ -95,6 +95,74 @@ class AsyncModels(BaseModels):
95
95
 
96
96
  return [ModelItem(**item) for item in resp["items"]]
97
97
 
98
+ async def get_model(
99
+ self,
100
+ model_id: str,
101
+ correlation_id: Optional[str] = None,
102
+ ) -> ModelItem:
103
+ """
104
+ Retrieve a model by its ID.
105
+
106
+ This method fetches detailed information about a specific model, including
107
+ its configuration, pricing, capabilities, and associated project details.
108
+
109
+ Args:
110
+ model_id (str): The unique identifier of the model to retrieve.
111
+ correlation_id (str, optional): A unique identifier for request tracing
112
+ and logging. If not provided, one will be automatically generated.
113
+
114
+ Returns:
115
+ ModelItem: A ModelItem object containing comprehensive model information
116
+ including configuration, pricing, capabilities, and project associations.
117
+
118
+ Raises:
119
+ AiriaAPIError: If the API request fails, including cases where:
120
+ - Model not found (404)
121
+ - Authentication fails (401)
122
+ - Access is forbidden (403)
123
+ - Server errors (5xx)
124
+
125
+ Example:
126
+ ```python
127
+ from airia import AiriaAsyncClient
128
+
129
+ client = AiriaAsyncClient(api_key="your_api_key")
130
+
131
+ # Get a specific model
132
+ model = await client.models.get_model(
133
+ model_id="447589d8-f82f-4a0c-ad15-215a2eaee7b8"
134
+ )
135
+
136
+ print(f"Model: {model.display_name}")
137
+ print(f"Provider: {model.provider}")
138
+ print(f"Model Name: {model.model_name}")
139
+ print(f"Has tool support: {model.has_tool_support}")
140
+ print(f"Has stream support: {model.has_stream_support}")
141
+
142
+ # Access pricing information
143
+ if model.user_provided_details:
144
+ print(f"Input token price: {model.user_provided_details.input_token_price}")
145
+ print(f"Output token price: {model.user_provided_details.output_token_price}")
146
+
147
+ # Get model with correlation ID for tracking
148
+ model = await client.models.get_model(
149
+ model_id="447589d8-f82f-4a0c-ad15-215a2eaee7b8",
150
+ correlation_id="my-correlation-id"
151
+ )
152
+ ```
153
+
154
+ Note:
155
+ The model must be accessible to the authenticated user. Users will only
156
+ be able to retrieve models they have been granted access to.
157
+ """
158
+ request_data = self._pre_get_model(
159
+ model_id=model_id,
160
+ correlation_id=correlation_id,
161
+ api_version=ApiVersion.V1.value,
162
+ )
163
+ resp = await self._request_handler.make_request("GET", request_data)
164
+ return ModelItem(**resp)
165
+
98
166
  async def delete_model(
99
167
  self,
100
168
  model_id: str,
@@ -67,6 +67,40 @@ class BaseModels:
67
67
 
68
68
  return request_data
69
69
 
70
+ def _pre_get_model(
71
+ self,
72
+ model_id: str,
73
+ correlation_id: Optional[str] = None,
74
+ api_version: str = ApiVersion.V1.value,
75
+ ):
76
+ """
77
+ Prepare request data for retrieving a single model.
78
+
79
+ Args:
80
+ model_id: The ID of the model to retrieve
81
+ correlation_id: Optional correlation ID for tracing
82
+ api_version: API version to use for the request
83
+
84
+ Returns:
85
+ RequestData: Prepared request data for the get endpoint
86
+
87
+ Raises:
88
+ ValueError: If an invalid API version is provided
89
+ """
90
+ if api_version not in ApiVersion.as_list():
91
+ raise ValueError(
92
+ f"Invalid API version: {api_version}. Valid versions are: {', '.join(ApiVersion.as_list())}"
93
+ )
94
+
95
+ url = urljoin(
96
+ self._request_handler.base_url,
97
+ f"{api_version}/Models/{model_id}",
98
+ )
99
+ request_data = self._request_handler.prepare_request(
100
+ url, correlation_id=correlation_id
101
+ )
102
+ return request_data
103
+
70
104
  def _pre_delete_model(
71
105
  self,
72
106
  model_id: str,
@@ -95,6 +95,74 @@ class Models(BaseModels):
95
95
 
96
96
  return [ModelItem(**item) for item in resp["items"]]
97
97
 
98
+ def get_model(
99
+ self,
100
+ model_id: str,
101
+ correlation_id: Optional[str] = None,
102
+ ) -> ModelItem:
103
+ """
104
+ Retrieve a model by its ID.
105
+
106
+ This method fetches detailed information about a specific model, including
107
+ its configuration, pricing, capabilities, and associated project details.
108
+
109
+ Args:
110
+ model_id (str): The unique identifier of the model to retrieve.
111
+ correlation_id (str, optional): A unique identifier for request tracing
112
+ and logging. If not provided, one will be automatically generated.
113
+
114
+ Returns:
115
+ ModelItem: A ModelItem object containing comprehensive model information
116
+ including configuration, pricing, capabilities, and project associations.
117
+
118
+ Raises:
119
+ AiriaAPIError: If the API request fails, including cases where:
120
+ - Model not found (404)
121
+ - Authentication fails (401)
122
+ - Access is forbidden (403)
123
+ - Server errors (5xx)
124
+
125
+ Example:
126
+ ```python
127
+ from airia import AiriaClient
128
+
129
+ client = AiriaClient(api_key="your_api_key")
130
+
131
+ # Get a specific model
132
+ model = client.models.get_model(
133
+ model_id="447589d8-f82f-4a0c-ad15-215a2eaee7b8"
134
+ )
135
+
136
+ print(f"Model: {model.display_name}")
137
+ print(f"Provider: {model.provider}")
138
+ print(f"Model Name: {model.model_name}")
139
+ print(f"Has tool support: {model.has_tool_support}")
140
+ print(f"Has stream support: {model.has_stream_support}")
141
+
142
+ # Access pricing information
143
+ if model.user_provided_details:
144
+ print(f"Input token price: {model.user_provided_details.input_token_price}")
145
+ print(f"Output token price: {model.user_provided_details.output_token_price}")
146
+
147
+ # Get model with correlation ID for tracking
148
+ model = client.models.get_model(
149
+ model_id="447589d8-f82f-4a0c-ad15-215a2eaee7b8",
150
+ correlation_id="my-correlation-id"
151
+ )
152
+ ```
153
+
154
+ Note:
155
+ The model must be accessible to the authenticated user. Users will only
156
+ be able to retrieve models they have been granted access to.
157
+ """
158
+ request_data = self._pre_get_model(
159
+ model_id=model_id,
160
+ correlation_id=correlation_id,
161
+ api_version=ApiVersion.V1.value,
162
+ )
163
+ resp = self._request_handler.make_request("GET", request_data)
164
+ return ModelItem(**resp)
165
+
98
166
  def delete_model(
99
167
  self,
100
168
  model_id: str,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airia
3
- Version: 0.1.36
3
+ Version: 0.1.37
4
4
  Summary: Python SDK for Airia API
5
5
  Author-email: Airia LLC <support@airia.com>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "airia"
7
- version = "0.1.36"
7
+ version = "0.1.37"
8
8
  description = "Python SDK for Airia API"
9
9
  license = { text = "MIT" }
10
10
  authors = [{ name = "Airia LLC", email = "support@airia.com" }]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes