orq-ai-sdk 4.2.0rc28__py3-none-any.whl → 4.3.0rc7__py3-none-any.whl

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 (166) hide show
  1. orq_ai_sdk/_version.py +3 -3
  2. orq_ai_sdk/agents.py +186 -186
  3. orq_ai_sdk/audio.py +30 -0
  4. orq_ai_sdk/basesdk.py +20 -6
  5. orq_ai_sdk/chat.py +22 -0
  6. orq_ai_sdk/completions.py +438 -0
  7. orq_ai_sdk/contacts.py +43 -855
  8. orq_ai_sdk/deployments.py +61 -0
  9. orq_ai_sdk/edits.py +364 -0
  10. orq_ai_sdk/embeddings.py +344 -0
  11. orq_ai_sdk/generations.py +370 -0
  12. orq_ai_sdk/identities.py +1037 -0
  13. orq_ai_sdk/images.py +28 -0
  14. orq_ai_sdk/models/__init__.py +5746 -737
  15. orq_ai_sdk/models/actionreviewedstreamingevent.py +18 -1
  16. orq_ai_sdk/models/actionreviewrequestedstreamingevent.py +44 -1
  17. orq_ai_sdk/models/agenterroredstreamingevent.py +18 -1
  18. orq_ai_sdk/models/agentinactivestreamingevent.py +168 -70
  19. orq_ai_sdk/models/agentmessagecreatedstreamingevent.py +18 -2
  20. orq_ai_sdk/models/agentresponsemessage.py +18 -2
  21. orq_ai_sdk/models/agentstartedstreamingevent.py +127 -2
  22. orq_ai_sdk/models/agentthoughtstreamingevent.py +178 -211
  23. orq_ai_sdk/models/conversationresponse.py +31 -20
  24. orq_ai_sdk/models/conversationwithmessagesresponse.py +31 -20
  25. orq_ai_sdk/models/createagentrequestop.py +1945 -383
  26. orq_ai_sdk/models/createagentresponse.py +147 -91
  27. orq_ai_sdk/models/createagentresponserequestop.py +111 -2
  28. orq_ai_sdk/models/createchatcompletionop.py +1381 -861
  29. orq_ai_sdk/models/createchunkop.py +46 -19
  30. orq_ai_sdk/models/createcompletionop.py +2078 -0
  31. orq_ai_sdk/models/createcontactop.py +45 -56
  32. orq_ai_sdk/models/createconversationop.py +61 -39
  33. orq_ai_sdk/models/createconversationresponseop.py +68 -4
  34. orq_ai_sdk/models/createdatasetitemop.py +424 -80
  35. orq_ai_sdk/models/createdatasetop.py +19 -2
  36. orq_ai_sdk/models/createdatasourceop.py +92 -26
  37. orq_ai_sdk/models/createembeddingop.py +579 -0
  38. orq_ai_sdk/models/createevalop.py +552 -24
  39. orq_ai_sdk/models/createidentityop.py +176 -0
  40. orq_ai_sdk/models/createimageeditop.py +715 -0
  41. orq_ai_sdk/models/createimageop.py +407 -128
  42. orq_ai_sdk/models/createimagevariationop.py +706 -0
  43. orq_ai_sdk/models/createknowledgeop.py +186 -121
  44. orq_ai_sdk/models/creatememorydocumentop.py +50 -1
  45. orq_ai_sdk/models/creatememoryop.py +34 -21
  46. orq_ai_sdk/models/creatememorystoreop.py +34 -1
  47. orq_ai_sdk/models/createmoderationop.py +521 -0
  48. orq_ai_sdk/models/createpromptop.py +2759 -1251
  49. orq_ai_sdk/models/creatererankop.py +608 -0
  50. orq_ai_sdk/models/createresponseop.py +2567 -0
  51. orq_ai_sdk/models/createspeechop.py +466 -0
  52. orq_ai_sdk/models/createtoolop.py +537 -12
  53. orq_ai_sdk/models/createtranscriptionop.py +732 -0
  54. orq_ai_sdk/models/createtranslationop.py +702 -0
  55. orq_ai_sdk/models/datapart.py +18 -1
  56. orq_ai_sdk/models/deletechunksop.py +34 -1
  57. orq_ai_sdk/models/{deletecontactop.py → deleteidentityop.py} +9 -9
  58. orq_ai_sdk/models/deletepromptop.py +26 -0
  59. orq_ai_sdk/models/deploymentcreatemetricop.py +362 -76
  60. orq_ai_sdk/models/deploymentgetconfigop.py +635 -194
  61. orq_ai_sdk/models/deploymentinvokeop.py +168 -173
  62. orq_ai_sdk/models/deploymentsop.py +195 -58
  63. orq_ai_sdk/models/deploymentstreamop.py +652 -304
  64. orq_ai_sdk/models/errorpart.py +18 -1
  65. orq_ai_sdk/models/filecontentpartschema.py +18 -1
  66. orq_ai_sdk/models/filegetop.py +19 -2
  67. orq_ai_sdk/models/filelistop.py +35 -2
  68. orq_ai_sdk/models/filepart.py +50 -1
  69. orq_ai_sdk/models/fileuploadop.py +51 -2
  70. orq_ai_sdk/models/generateconversationnameop.py +31 -20
  71. orq_ai_sdk/models/get_v2_evaluators_id_versionsop.py +34 -1
  72. orq_ai_sdk/models/get_v2_tools_tool_id_versions_version_id_op.py +18 -1
  73. orq_ai_sdk/models/get_v2_tools_tool_id_versionsop.py +34 -1
  74. orq_ai_sdk/models/getallmemoriesop.py +34 -21
  75. orq_ai_sdk/models/getallmemorydocumentsop.py +42 -1
  76. orq_ai_sdk/models/getallmemorystoresop.py +34 -1
  77. orq_ai_sdk/models/getallpromptsop.py +1696 -230
  78. orq_ai_sdk/models/getalltoolsop.py +325 -8
  79. orq_ai_sdk/models/getchunkscountop.py +34 -1
  80. orq_ai_sdk/models/getevalsop.py +395 -43
  81. orq_ai_sdk/models/getonechunkop.py +14 -19
  82. orq_ai_sdk/models/getoneknowledgeop.py +116 -96
  83. orq_ai_sdk/models/getonepromptop.py +1679 -230
  84. orq_ai_sdk/models/getpromptversionop.py +1676 -216
  85. orq_ai_sdk/models/imagecontentpartschema.py +50 -1
  86. orq_ai_sdk/models/internal/globals.py +18 -1
  87. orq_ai_sdk/models/invokeagentop.py +140 -2
  88. orq_ai_sdk/models/invokedeploymentrequest.py +418 -80
  89. orq_ai_sdk/models/invokeevalop.py +160 -131
  90. orq_ai_sdk/models/listagentsop.py +805 -166
  91. orq_ai_sdk/models/listchunksop.py +32 -19
  92. orq_ai_sdk/models/listchunkspaginatedop.py +46 -19
  93. orq_ai_sdk/models/listconversationsop.py +18 -1
  94. orq_ai_sdk/models/listdatasetdatapointsop.py +252 -42
  95. orq_ai_sdk/models/listdatasetsop.py +35 -2
  96. orq_ai_sdk/models/listdatasourcesop.py +35 -26
  97. orq_ai_sdk/models/{listcontactsop.py → listidentitiesop.py} +89 -79
  98. orq_ai_sdk/models/listknowledgebasesop.py +132 -96
  99. orq_ai_sdk/models/listmodelsop.py +1 -0
  100. orq_ai_sdk/models/listpromptversionsop.py +1690 -216
  101. orq_ai_sdk/models/parseop.py +161 -17
  102. orq_ai_sdk/models/partdoneevent.py +19 -2
  103. orq_ai_sdk/models/post_v2_router_ocrop.py +408 -0
  104. orq_ai_sdk/models/publiccontact.py +27 -4
  105. orq_ai_sdk/models/publicidentity.py +62 -0
  106. orq_ai_sdk/models/reasoningpart.py +19 -2
  107. orq_ai_sdk/models/refusalpartschema.py +18 -1
  108. orq_ai_sdk/models/remoteconfigsgetconfigop.py +34 -1
  109. orq_ai_sdk/models/responsedoneevent.py +114 -84
  110. orq_ai_sdk/models/responsestartedevent.py +18 -1
  111. orq_ai_sdk/models/retrieveagentrequestop.py +799 -166
  112. orq_ai_sdk/models/retrievedatapointop.py +236 -42
  113. orq_ai_sdk/models/retrievedatasetop.py +19 -2
  114. orq_ai_sdk/models/retrievedatasourceop.py +17 -26
  115. orq_ai_sdk/models/{retrievecontactop.py → retrieveidentityop.py} +38 -41
  116. orq_ai_sdk/models/retrievememorydocumentop.py +18 -1
  117. orq_ai_sdk/models/retrievememoryop.py +18 -21
  118. orq_ai_sdk/models/retrievememorystoreop.py +18 -1
  119. orq_ai_sdk/models/retrievetoolop.py +309 -8
  120. orq_ai_sdk/models/runagentop.py +1462 -196
  121. orq_ai_sdk/models/searchknowledgeop.py +108 -1
  122. orq_ai_sdk/models/security.py +18 -1
  123. orq_ai_sdk/models/streamagentop.py +93 -2
  124. orq_ai_sdk/models/streamrunagentop.py +1439 -194
  125. orq_ai_sdk/models/textcontentpartschema.py +34 -1
  126. orq_ai_sdk/models/thinkingconfigenabledschema.py +18 -1
  127. orq_ai_sdk/models/toolcallpart.py +18 -1
  128. orq_ai_sdk/models/tooldoneevent.py +18 -1
  129. orq_ai_sdk/models/toolexecutionfailedstreamingevent.py +50 -1
  130. orq_ai_sdk/models/toolexecutionfinishedstreamingevent.py +34 -1
  131. orq_ai_sdk/models/toolexecutionstartedstreamingevent.py +34 -1
  132. orq_ai_sdk/models/toolresultpart.py +18 -1
  133. orq_ai_sdk/models/toolreviewrequestedevent.py +18 -1
  134. orq_ai_sdk/models/toolstartedevent.py +18 -1
  135. orq_ai_sdk/models/updateagentop.py +1968 -397
  136. orq_ai_sdk/models/updatechunkop.py +46 -19
  137. orq_ai_sdk/models/updateconversationop.py +61 -39
  138. orq_ai_sdk/models/updatedatapointop.py +424 -80
  139. orq_ai_sdk/models/updatedatasetop.py +51 -2
  140. orq_ai_sdk/models/updatedatasourceop.py +17 -26
  141. orq_ai_sdk/models/updateevalop.py +577 -16
  142. orq_ai_sdk/models/{updatecontactop.py → updateidentityop.py} +78 -68
  143. orq_ai_sdk/models/updateknowledgeop.py +234 -190
  144. orq_ai_sdk/models/updatememorydocumentop.py +50 -1
  145. orq_ai_sdk/models/updatememoryop.py +50 -21
  146. orq_ai_sdk/models/updatememorystoreop.py +66 -1
  147. orq_ai_sdk/models/updatepromptop.py +2854 -1448
  148. orq_ai_sdk/models/updatetoolop.py +592 -9
  149. orq_ai_sdk/models/usermessagerequest.py +18 -2
  150. orq_ai_sdk/moderations.py +218 -0
  151. orq_ai_sdk/orq_completions.py +666 -0
  152. orq_ai_sdk/orq_responses.py +398 -0
  153. orq_ai_sdk/prompts.py +28 -36
  154. orq_ai_sdk/rerank.py +330 -0
  155. orq_ai_sdk/router.py +89 -641
  156. orq_ai_sdk/sdk.py +3 -0
  157. orq_ai_sdk/speech.py +333 -0
  158. orq_ai_sdk/transcriptions.py +416 -0
  159. orq_ai_sdk/translations.py +384 -0
  160. orq_ai_sdk/utils/__init__.py +13 -1
  161. orq_ai_sdk/variations.py +364 -0
  162. {orq_ai_sdk-4.2.0rc28.dist-info → orq_ai_sdk-4.3.0rc7.dist-info}/METADATA +169 -148
  163. orq_ai_sdk-4.3.0rc7.dist-info/RECORD +263 -0
  164. {orq_ai_sdk-4.2.0rc28.dist-info → orq_ai_sdk-4.3.0rc7.dist-info}/WHEEL +2 -1
  165. orq_ai_sdk-4.3.0rc7.dist-info/top_level.txt +1 -0
  166. orq_ai_sdk-4.2.0rc28.dist-info/RECORD +0 -233
orq_ai_sdk/sdk.py CHANGED
@@ -26,6 +26,7 @@ if TYPE_CHECKING:
26
26
  from orq_ai_sdk.evaluators import Evaluators
27
27
  from orq_ai_sdk.feedback import Feedback
28
28
  from orq_ai_sdk.files import Files
29
+ from orq_ai_sdk.identities import Identities
29
30
  from orq_ai_sdk.internal import Internal
30
31
  from orq_ai_sdk.knowledge import Knowledge
31
32
  from orq_ai_sdk.memorystores import MemoryStores
@@ -45,6 +46,7 @@ class Orq(BaseSDK):
45
46
  feedback: "Feedback"
46
47
  evals: "Evals"
47
48
  evaluators: "Evaluators"
49
+ identities: "Identities"
48
50
  deployments: "Deployments"
49
51
  agents: "Agents"
50
52
  conversations: "Conversations"
@@ -64,6 +66,7 @@ class Orq(BaseSDK):
64
66
  "feedback": ("orq_ai_sdk.feedback", "Feedback"),
65
67
  "evals": ("orq_ai_sdk.evals", "Evals"),
66
68
  "evaluators": ("orq_ai_sdk.evaluators", "Evaluators"),
69
+ "identities": ("orq_ai_sdk.identities", "Identities"),
67
70
  "deployments": ("orq_ai_sdk.deployments", "Deployments"),
68
71
  "agents": ("orq_ai_sdk.agents", "Agents"),
69
72
  "conversations": ("orq_ai_sdk.conversations", "Conversations"),
orq_ai_sdk/speech.py ADDED
@@ -0,0 +1,333 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from .basesdk import BaseSDK
4
+ from orq_ai_sdk import models, utils
5
+ from orq_ai_sdk._hooks import HookContext
6
+ from orq_ai_sdk.models import createspeechop as models_createspeechop
7
+ from orq_ai_sdk.types import OptionalNullable, UNSET
8
+ from orq_ai_sdk.utils import get_security_from_env
9
+ from typing import List, Mapping, Optional, Union
10
+
11
+
12
+ class Speech(BaseSDK):
13
+ def create(
14
+ self,
15
+ *,
16
+ input_: str,
17
+ model: str,
18
+ voice: str,
19
+ response_format: Optional[
20
+ models_createspeechop.CreateSpeechResponseFormat
21
+ ] = "mp3",
22
+ speed: Optional[float] = 1,
23
+ name: Optional[str] = None,
24
+ fallbacks: Optional[
25
+ Union[
26
+ List[models_createspeechop.CreateSpeechFallbacks],
27
+ List[models_createspeechop.CreateSpeechFallbacksTypedDict],
28
+ ]
29
+ ] = None,
30
+ retry: Optional[
31
+ Union[
32
+ models_createspeechop.CreateSpeechRetry,
33
+ models_createspeechop.CreateSpeechRetryTypedDict,
34
+ ]
35
+ ] = None,
36
+ load_balancer: Optional[
37
+ Union[
38
+ models_createspeechop.CreateSpeechLoadBalancer,
39
+ models_createspeechop.CreateSpeechLoadBalancerTypedDict,
40
+ ]
41
+ ] = None,
42
+ timeout: Optional[
43
+ Union[
44
+ models_createspeechop.CreateSpeechTimeout,
45
+ models_createspeechop.CreateSpeechTimeoutTypedDict,
46
+ ]
47
+ ] = None,
48
+ orq: Optional[
49
+ Union[
50
+ models_createspeechop.CreateSpeechOrq,
51
+ models_createspeechop.CreateSpeechOrqTypedDict,
52
+ ]
53
+ ] = None,
54
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
55
+ server_url: Optional[str] = None,
56
+ timeout_ms: Optional[int] = None,
57
+ http_headers: Optional[Mapping[str, str]] = None,
58
+ ):
59
+ r"""Create speech
60
+
61
+ Generates audio from the input text.
62
+
63
+ :param input: The text to generate audio for. The maximum length is 4096 characters
64
+ :param model: ID of the model to use
65
+ :param voice: The voice to use.
66
+
67
+ Available voices for OpenAI
68
+
69
+ `alloy`, `echo`, `fable`, `onyx`, `nova`, and `shimmer`
70
+
71
+ Available voices for ElevenLabs
72
+
73
+ `aria`, `roger`, `sarah`, `laura`, `charlie`, `george`, `callum`, `river`, `liam`, `charlotte`, `alice`, `matilda`, `will`, `jessica`, `eric`, `chris`, `brian`, `daniel`, `lily`, `bill`
74
+ :param response_format: The format to audio in. Supported formats are `mp3`, `opus`, `aac`, `flac`, `wav`, and `pcm`. If a format is provided but not supported by the provider, the response will be in the default format. When the provided format is not supported by the provider, the response will be in the default format.
75
+ :param speed: The speed of the generated audio.
76
+ :param name: The name to display on the trace. If not specified, the default system name will be used.
77
+ :param fallbacks: Array of fallback models to use if primary model fails
78
+ :param retry: Retry configuration for the request
79
+ :param load_balancer: Load balancer configuration for the request.
80
+ :param timeout: Timeout configuration to apply to the request. If the request exceeds the timeout, it will be retried or fallback to the next model if configured.
81
+ :param orq:
82
+ :param retries: Override the default retry configuration for this method
83
+ :param server_url: Override the default server URL for this method
84
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
85
+ :param http_headers: Additional headers to set or replace on requests.
86
+ """
87
+ base_url = None
88
+ url_variables = None
89
+ if timeout_ms is None:
90
+ timeout_ms = self.sdk_configuration.timeout_ms
91
+
92
+ if timeout_ms is None:
93
+ timeout_ms = 600000
94
+
95
+ if server_url is not None:
96
+ base_url = server_url
97
+ else:
98
+ base_url = self._get_url(base_url, url_variables)
99
+
100
+ request = models.CreateSpeechRequestBody(
101
+ input=input_,
102
+ model=model,
103
+ voice=voice,
104
+ response_format=response_format,
105
+ speed=speed,
106
+ name=name,
107
+ fallbacks=utils.get_pydantic_model(
108
+ fallbacks, Optional[List[models.CreateSpeechFallbacks]]
109
+ ),
110
+ retry=utils.get_pydantic_model(retry, Optional[models.CreateSpeechRetry]),
111
+ load_balancer=utils.get_pydantic_model(
112
+ load_balancer, Optional[models.CreateSpeechLoadBalancer]
113
+ ),
114
+ timeout=utils.get_pydantic_model(
115
+ timeout, Optional[models.CreateSpeechTimeout]
116
+ ),
117
+ orq=utils.get_pydantic_model(orq, Optional[models.CreateSpeechOrq]),
118
+ )
119
+
120
+ req = self._build_request(
121
+ method="POST",
122
+ path="/v2/router/audio/speech",
123
+ base_url=base_url,
124
+ url_variables=url_variables,
125
+ request=request,
126
+ request_body_required=True,
127
+ request_has_path_params=False,
128
+ request_has_query_params=True,
129
+ user_agent_header="user-agent",
130
+ accept_header_value="*/*",
131
+ http_headers=http_headers,
132
+ security=self.sdk_configuration.security,
133
+ get_serialized_body=lambda: utils.serialize_request_body(
134
+ request, False, False, "json", models.CreateSpeechRequestBody
135
+ ),
136
+ allow_empty_value=None,
137
+ timeout_ms=timeout_ms,
138
+ )
139
+
140
+ if retries == UNSET:
141
+ if self.sdk_configuration.retry_config is not UNSET:
142
+ retries = self.sdk_configuration.retry_config
143
+
144
+ retry_config = None
145
+ if isinstance(retries, utils.RetryConfig):
146
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
147
+
148
+ http_res = self.do_request(
149
+ hook_ctx=HookContext(
150
+ config=self.sdk_configuration,
151
+ base_url=base_url or "",
152
+ operation_id="createSpeech",
153
+ oauth2_scopes=None,
154
+ security_source=get_security_from_env(
155
+ self.sdk_configuration.security, models.Security
156
+ ),
157
+ ),
158
+ request=req,
159
+ error_status_codes=["4XX", "5XX"],
160
+ retry_config=retry_config,
161
+ )
162
+
163
+ if utils.match_response(http_res, "200", "*"):
164
+ return
165
+ if utils.match_response(http_res, "4XX", "*"):
166
+ http_res_text = utils.stream_to_text(http_res)
167
+ raise models.APIError("API error occurred", http_res, http_res_text)
168
+ if utils.match_response(http_res, "5XX", "*"):
169
+ http_res_text = utils.stream_to_text(http_res)
170
+ raise models.APIError("API error occurred", http_res, http_res_text)
171
+
172
+ raise models.APIError("Unexpected response received", http_res)
173
+
174
+ async def create_async(
175
+ self,
176
+ *,
177
+ input_: str,
178
+ model: str,
179
+ voice: str,
180
+ response_format: Optional[
181
+ models_createspeechop.CreateSpeechResponseFormat
182
+ ] = "mp3",
183
+ speed: Optional[float] = 1,
184
+ name: Optional[str] = None,
185
+ fallbacks: Optional[
186
+ Union[
187
+ List[models_createspeechop.CreateSpeechFallbacks],
188
+ List[models_createspeechop.CreateSpeechFallbacksTypedDict],
189
+ ]
190
+ ] = None,
191
+ retry: Optional[
192
+ Union[
193
+ models_createspeechop.CreateSpeechRetry,
194
+ models_createspeechop.CreateSpeechRetryTypedDict,
195
+ ]
196
+ ] = None,
197
+ load_balancer: Optional[
198
+ Union[
199
+ models_createspeechop.CreateSpeechLoadBalancer,
200
+ models_createspeechop.CreateSpeechLoadBalancerTypedDict,
201
+ ]
202
+ ] = None,
203
+ timeout: Optional[
204
+ Union[
205
+ models_createspeechop.CreateSpeechTimeout,
206
+ models_createspeechop.CreateSpeechTimeoutTypedDict,
207
+ ]
208
+ ] = None,
209
+ orq: Optional[
210
+ Union[
211
+ models_createspeechop.CreateSpeechOrq,
212
+ models_createspeechop.CreateSpeechOrqTypedDict,
213
+ ]
214
+ ] = None,
215
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
216
+ server_url: Optional[str] = None,
217
+ timeout_ms: Optional[int] = None,
218
+ http_headers: Optional[Mapping[str, str]] = None,
219
+ ):
220
+ r"""Create speech
221
+
222
+ Generates audio from the input text.
223
+
224
+ :param input: The text to generate audio for. The maximum length is 4096 characters
225
+ :param model: ID of the model to use
226
+ :param voice: The voice to use.
227
+
228
+ Available voices for OpenAI
229
+
230
+ `alloy`, `echo`, `fable`, `onyx`, `nova`, and `shimmer`
231
+
232
+ Available voices for ElevenLabs
233
+
234
+ `aria`, `roger`, `sarah`, `laura`, `charlie`, `george`, `callum`, `river`, `liam`, `charlotte`, `alice`, `matilda`, `will`, `jessica`, `eric`, `chris`, `brian`, `daniel`, `lily`, `bill`
235
+ :param response_format: The format to audio in. Supported formats are `mp3`, `opus`, `aac`, `flac`, `wav`, and `pcm`. If a format is provided but not supported by the provider, the response will be in the default format. When the provided format is not supported by the provider, the response will be in the default format.
236
+ :param speed: The speed of the generated audio.
237
+ :param name: The name to display on the trace. If not specified, the default system name will be used.
238
+ :param fallbacks: Array of fallback models to use if primary model fails
239
+ :param retry: Retry configuration for the request
240
+ :param load_balancer: Load balancer configuration for the request.
241
+ :param timeout: Timeout configuration to apply to the request. If the request exceeds the timeout, it will be retried or fallback to the next model if configured.
242
+ :param orq:
243
+ :param retries: Override the default retry configuration for this method
244
+ :param server_url: Override the default server URL for this method
245
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
246
+ :param http_headers: Additional headers to set or replace on requests.
247
+ """
248
+ base_url = None
249
+ url_variables = None
250
+ if timeout_ms is None:
251
+ timeout_ms = self.sdk_configuration.timeout_ms
252
+
253
+ if timeout_ms is None:
254
+ timeout_ms = 600000
255
+
256
+ if server_url is not None:
257
+ base_url = server_url
258
+ else:
259
+ base_url = self._get_url(base_url, url_variables)
260
+
261
+ request = models.CreateSpeechRequestBody(
262
+ input=input_,
263
+ model=model,
264
+ voice=voice,
265
+ response_format=response_format,
266
+ speed=speed,
267
+ name=name,
268
+ fallbacks=utils.get_pydantic_model(
269
+ fallbacks, Optional[List[models.CreateSpeechFallbacks]]
270
+ ),
271
+ retry=utils.get_pydantic_model(retry, Optional[models.CreateSpeechRetry]),
272
+ load_balancer=utils.get_pydantic_model(
273
+ load_balancer, Optional[models.CreateSpeechLoadBalancer]
274
+ ),
275
+ timeout=utils.get_pydantic_model(
276
+ timeout, Optional[models.CreateSpeechTimeout]
277
+ ),
278
+ orq=utils.get_pydantic_model(orq, Optional[models.CreateSpeechOrq]),
279
+ )
280
+
281
+ req = self._build_request_async(
282
+ method="POST",
283
+ path="/v2/router/audio/speech",
284
+ base_url=base_url,
285
+ url_variables=url_variables,
286
+ request=request,
287
+ request_body_required=True,
288
+ request_has_path_params=False,
289
+ request_has_query_params=True,
290
+ user_agent_header="user-agent",
291
+ accept_header_value="*/*",
292
+ http_headers=http_headers,
293
+ security=self.sdk_configuration.security,
294
+ get_serialized_body=lambda: utils.serialize_request_body(
295
+ request, False, False, "json", models.CreateSpeechRequestBody
296
+ ),
297
+ allow_empty_value=None,
298
+ timeout_ms=timeout_ms,
299
+ )
300
+
301
+ if retries == UNSET:
302
+ if self.sdk_configuration.retry_config is not UNSET:
303
+ retries = self.sdk_configuration.retry_config
304
+
305
+ retry_config = None
306
+ if isinstance(retries, utils.RetryConfig):
307
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
308
+
309
+ http_res = await self.do_request_async(
310
+ hook_ctx=HookContext(
311
+ config=self.sdk_configuration,
312
+ base_url=base_url or "",
313
+ operation_id="createSpeech",
314
+ oauth2_scopes=None,
315
+ security_source=get_security_from_env(
316
+ self.sdk_configuration.security, models.Security
317
+ ),
318
+ ),
319
+ request=req,
320
+ error_status_codes=["4XX", "5XX"],
321
+ retry_config=retry_config,
322
+ )
323
+
324
+ if utils.match_response(http_res, "200", "*"):
325
+ return
326
+ if utils.match_response(http_res, "4XX", "*"):
327
+ http_res_text = await utils.stream_to_text_async(http_res)
328
+ raise models.APIError("API error occurred", http_res, http_res_text)
329
+ if utils.match_response(http_res, "5XX", "*"):
330
+ http_res_text = await utils.stream_to_text_async(http_res)
331
+ raise models.APIError("API error occurred", http_res, http_res_text)
332
+
333
+ raise models.APIError("Unexpected response received", http_res)