letta-client 0.1.157__py3-none-any.whl → 0.1.159__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.

Potentially problematic release.


This version of letta-client might be problematic. Click here for more details.

letta_client/__init__.py CHANGED
@@ -205,6 +205,7 @@ from .types import (
205
205
  TextContent,
206
206
  TextResponseFormat,
207
207
  Tool,
208
+ ToolAnnotations,
208
209
  ToolCall,
209
210
  ToolCallContent,
210
211
  ToolCallDelta,
@@ -308,7 +309,6 @@ from .tools import (
308
309
  ListMcpServersResponseValue,
309
310
  )
310
311
  from .version import __version__
311
- from .voice import CreateVoiceChatCompletionsRequestBody
312
312
 
313
313
  __all__ = [
314
314
  "ActionModel",
@@ -414,7 +414,6 @@ __all__ = [
414
414
  "CreateAgentRequestResponseFormat",
415
415
  "CreateAgentRequestToolRulesItem",
416
416
  "CreateBlock",
417
- "CreateVoiceChatCompletionsRequestBody",
418
417
  "DeleteMcpServerResponseItem",
419
418
  "DynamicManager",
420
419
  "DynamicManagerUpdate",
@@ -549,6 +548,7 @@ __all__ = [
549
548
  "TextContent",
550
549
  "TextResponseFormat",
551
550
  "Tool",
551
+ "ToolAnnotations",
552
552
  "ToolCall",
553
553
  "ToolCallContent",
554
554
  "ToolCallDelta",
@@ -16,7 +16,7 @@ class BaseClientWrapper:
16
16
  headers: typing.Dict[str, str] = {
17
17
  "X-Fern-Language": "Python",
18
18
  "X-Fern-SDK-Name": "letta-client",
19
- "X-Fern-SDK-Version": "0.1.157",
19
+ "X-Fern-SDK-Version": "0.1.159",
20
20
  }
21
21
  if self.token is not None:
22
22
  headers["Authorization"] = f"Bearer {self.token}"
@@ -208,6 +208,7 @@ from .terminal_tool_rule import TerminalToolRule
208
208
  from .text_content import TextContent
209
209
  from .text_response_format import TextResponseFormat
210
210
  from .tool import Tool
211
+ from .tool_annotations import ToolAnnotations
211
212
  from .tool_call import ToolCall
212
213
  from .tool_call_content import ToolCallContent
213
214
  from .tool_call_delta import ToolCallDelta
@@ -452,6 +453,7 @@ __all__ = [
452
453
  "TextContent",
453
454
  "TextResponseFormat",
454
455
  "Tool",
456
+ "ToolAnnotations",
455
457
  "ToolCall",
456
458
  "ToolCallContent",
457
459
  "ToolCallDelta",
@@ -2,4 +2,4 @@
2
2
 
3
3
  import typing
4
4
 
5
- McpServerType = typing.Union[typing.Literal["sse", "stdio"], typing.Any]
5
+ McpServerType = typing.Union[typing.Literal["sse", "stdio", "streamable_http"], typing.Any]
@@ -4,6 +4,7 @@ from ..core.unchecked_base_model import UncheckedBaseModel
4
4
  import typing
5
5
  import typing_extensions
6
6
  from ..core.serialization import FieldMetadata
7
+ from .tool_annotations import ToolAnnotations
7
8
  from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
9
  import pydantic
9
10
 
@@ -18,6 +19,7 @@ class McpTool(UncheckedBaseModel):
18
19
  input_schema: typing_extensions.Annotated[
19
20
  typing.Dict[str, typing.Optional[typing.Any]], FieldMetadata(alias="inputSchema")
20
21
  ]
22
+ annotations: typing.Optional[ToolAnnotations] = None
21
23
 
22
24
  if IS_PYDANTIC_V2:
23
25
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -8,6 +8,17 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
8
 
9
9
 
10
10
  class SseServerConfig(UncheckedBaseModel):
11
+ """
12
+ Configuration for an MCP server using SSE
13
+
14
+ Authentication can be provided in multiple ways:
15
+ 1. Using auth_header + auth_token: Will add a specific header with the token
16
+ Example: auth_header="Authorization", auth_token="Bearer abc123"
17
+
18
+ 2. Using the custom_headers dict: For more complex authentication scenarios
19
+ Example: custom_headers={"X-API-Key": "abc123", "X-Custom-Header": "value"}
20
+ """
21
+
11
22
  server_name: str = pydantic.Field()
12
23
  """
13
24
  The name of the server
@@ -19,6 +30,21 @@ class SseServerConfig(UncheckedBaseModel):
19
30
  The URL of the server (MCP SSE client will connect to this URL)
20
31
  """
21
32
 
33
+ auth_header: typing.Optional[str] = pydantic.Field(default=None)
34
+ """
35
+ The name of the authentication header (e.g., 'Authorization')
36
+ """
37
+
38
+ auth_token: typing.Optional[str] = pydantic.Field(default=None)
39
+ """
40
+ The authentication token or API key value
41
+ """
42
+
43
+ custom_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = pydantic.Field(default=None)
44
+ """
45
+ Custom HTTP headers to include with SSE requests
46
+ """
47
+
22
48
  if IS_PYDANTIC_V2:
23
49
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
24
50
  else:
@@ -0,0 +1,36 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.unchecked_base_model import UncheckedBaseModel
4
+ import typing
5
+ import typing_extensions
6
+ from ..core.serialization import FieldMetadata
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
+ import pydantic
9
+
10
+
11
+ class ToolAnnotations(UncheckedBaseModel):
12
+ """
13
+ Additional properties describing a Tool to clients.
14
+
15
+ NOTE: all properties in ToolAnnotations are **hints**.
16
+ They are not guaranteed to provide a faithful description of
17
+ tool behavior (including descriptive properties like `title`).
18
+
19
+ Clients should never make tool use decisions based on ToolAnnotations
20
+ received from untrusted servers.
21
+ """
22
+
23
+ title: typing.Optional[str] = None
24
+ read_only_hint: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="readOnlyHint")] = None
25
+ destructive_hint: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="destructiveHint")] = None
26
+ idempotent_hint: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="idempotentHint")] = None
27
+ open_world_hint: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="openWorldHint")] = None
28
+
29
+ if IS_PYDANTIC_V2:
30
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
31
+ else:
32
+
33
+ class Config:
34
+ frozen = True
35
+ smart_union = True
36
+ extra = pydantic.Extra.allow
@@ -1,5 +1,2 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from .types import CreateVoiceChatCompletionsRequestBody
4
-
5
- __all__ = ["CreateVoiceChatCompletionsRequestBody"]
@@ -2,10 +2,8 @@
2
2
 
3
3
  import typing
4
4
  from ..core.client_wrapper import SyncClientWrapper
5
- from .types.create_voice_chat_completions_request_body import CreateVoiceChatCompletionsRequestBody
6
5
  from ..core.request_options import RequestOptions
7
6
  from ..core.jsonable_encoder import jsonable_encoder
8
- from ..core.serialization import convert_and_respect_annotation_metadata
9
7
  from ..core.unchecked_base_model import construct_type
10
8
  from ..errors.unprocessable_entity_error import UnprocessableEntityError
11
9
  from ..types.http_validation_error import HttpValidationError
@@ -25,7 +23,7 @@ class VoiceClient:
25
23
  self,
26
24
  agent_id: str,
27
25
  *,
28
- request: CreateVoiceChatCompletionsRequestBody,
26
+ request: typing.Dict[str, typing.Optional[typing.Any]],
29
27
  user_id: typing.Optional[str] = None,
30
28
  request_options: typing.Optional[RequestOptions] = None,
31
29
  ) -> typing.Optional[typing.Any]:
@@ -34,7 +32,7 @@ class VoiceClient:
34
32
  ----------
35
33
  agent_id : str
36
34
 
37
- request : CreateVoiceChatCompletionsRequestBody
35
+ request : typing.Dict[str, typing.Optional[typing.Any]]
38
36
 
39
37
  user_id : typing.Optional[str]
40
38
 
@@ -48,33 +46,20 @@ class VoiceClient:
48
46
 
49
47
  Examples
50
48
  --------
51
- from letta_client import (
52
- ChatCompletionDeveloperMessageParam,
53
- CompletionCreateParamsNonStreaming,
54
- Letta,
55
- )
49
+ from letta_client import Letta
56
50
 
57
51
  client = Letta(
58
52
  token="YOUR_TOKEN",
59
53
  )
60
54
  client.voice.create_voice_chat_completions(
61
55
  agent_id="agent_id",
62
- request=CompletionCreateParamsNonStreaming(
63
- messages=[
64
- ChatCompletionDeveloperMessageParam(
65
- content="content",
66
- )
67
- ],
68
- model="model",
69
- ),
56
+ request={"key": "value"},
70
57
  )
71
58
  """
72
59
  _response = self._client_wrapper.httpx_client.request(
73
60
  f"v1/voice-beta/{jsonable_encoder(agent_id)}/chat/completions",
74
61
  method="POST",
75
- json=convert_and_respect_annotation_metadata(
76
- object_=request, annotation=CreateVoiceChatCompletionsRequestBody, direction="write"
77
- ),
62
+ json=request,
78
63
  headers={
79
64
  "user-id": str(user_id) if user_id is not None else None,
80
65
  },
@@ -114,7 +99,7 @@ class AsyncVoiceClient:
114
99
  self,
115
100
  agent_id: str,
116
101
  *,
117
- request: CreateVoiceChatCompletionsRequestBody,
102
+ request: typing.Dict[str, typing.Optional[typing.Any]],
118
103
  user_id: typing.Optional[str] = None,
119
104
  request_options: typing.Optional[RequestOptions] = None,
120
105
  ) -> typing.Optional[typing.Any]:
@@ -123,7 +108,7 @@ class AsyncVoiceClient:
123
108
  ----------
124
109
  agent_id : str
125
110
 
126
- request : CreateVoiceChatCompletionsRequestBody
111
+ request : typing.Dict[str, typing.Optional[typing.Any]]
127
112
 
128
113
  user_id : typing.Optional[str]
129
114
 
@@ -139,11 +124,7 @@ class AsyncVoiceClient:
139
124
  --------
140
125
  import asyncio
141
126
 
142
- from letta_client import (
143
- AsyncLetta,
144
- ChatCompletionDeveloperMessageParam,
145
- CompletionCreateParamsNonStreaming,
146
- )
127
+ from letta_client import AsyncLetta
147
128
 
148
129
  client = AsyncLetta(
149
130
  token="YOUR_TOKEN",
@@ -153,14 +134,7 @@ class AsyncVoiceClient:
153
134
  async def main() -> None:
154
135
  await client.voice.create_voice_chat_completions(
155
136
  agent_id="agent_id",
156
- request=CompletionCreateParamsNonStreaming(
157
- messages=[
158
- ChatCompletionDeveloperMessageParam(
159
- content="content",
160
- )
161
- ],
162
- model="model",
163
- ),
137
+ request={"key": "value"},
164
138
  )
165
139
 
166
140
 
@@ -169,9 +143,7 @@ class AsyncVoiceClient:
169
143
  _response = await self._client_wrapper.httpx_client.request(
170
144
  f"v1/voice-beta/{jsonable_encoder(agent_id)}/chat/completions",
171
145
  method="POST",
172
- json=convert_and_respect_annotation_metadata(
173
- object_=request, annotation=CreateVoiceChatCompletionsRequestBody, direction="write"
174
- ),
146
+ json=request,
175
147
  headers={
176
148
  "user-id": str(user_id) if user_id is not None else None,
177
149
  },
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-client
3
- Version: 0.1.157
3
+ Version: 0.1.159
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -1,4 +1,4 @@
1
- letta_client/__init__.py,sha256=3sbezRbLEKZ-rnaS6-nXun5XE7OV0MRTHIsZV_0jhoQ,17296
1
+ letta_client/__init__.py,sha256=glnhnX4D68CyvKpQaE5MZg0hobKzThfIUMTzxN537t8,17238
2
2
  letta_client/agents/__init__.py,sha256=3oFWVxaaxkphkjGJVk31Llb9ll9dKoCGx3B_r3qqtes,1716
3
3
  letta_client/agents/blocks/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
4
4
  letta_client/agents/blocks/client.py,sha256=ecE03lE5tP1AtCMFLT9FzdYyQMx_D7NI5m42b41pV40,24684
@@ -62,7 +62,7 @@ letta_client/client_side_access_tokens/types/client_side_access_tokens_create_re
62
62
  letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy_data_item_access_item.py,sha256=R-H25IpNp9feSrW8Yj3h9O3UTMVvFniQJElogKxLuoE,254
63
63
  letta_client/core/__init__.py,sha256=OKbX2aCZXgHCDUsCouqv-OiX32xA6eFFCKIUH9M5Vzk,1591
64
64
  letta_client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
65
- letta_client/core/client_wrapper.py,sha256=9GkWd2xxe4Mx486XARKuDwdQ8DkirLsKAp8cOct4mTg,1998
65
+ letta_client/core/client_wrapper.py,sha256=X5H41jCGtyF3C-omyRpZ3bTT5wRtGWihLCaWNRnUyYs,1998
66
66
  letta_client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
67
67
  letta_client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
68
68
  letta_client/core/http_client.py,sha256=Z77OIxIbL4OAB2IDqjRq_sYa5yNYAWfmdhdCSSvh6Y4,19552
@@ -150,7 +150,7 @@ letta_client/tools/types/add_mcp_server_request.py,sha256=EieZjfOT95sjkpxXdqy7gl
150
150
  letta_client/tools/types/add_mcp_server_response_item.py,sha256=pb3A4IoP7Qpen0UDDniXrASYEJZWnYnnrZThtPkvZt4,270
151
151
  letta_client/tools/types/delete_mcp_server_response_item.py,sha256=hKc4uehqcubO8BzpgMlvk2jJAjHXOWRM_zmWsCz_vZE,273
152
152
  letta_client/tools/types/list_mcp_servers_response_value.py,sha256=AIoXu4bO8QNSU7zjL1jj0Rg4313wVtPaTt13W0aevLQ,273
153
- letta_client/types/__init__.py,sha256=4sJJKkC2a_9Tt-jwNSuO_he06cojsUlkYpk45V3cL3Q,21720
153
+ letta_client/types/__init__.py,sha256=QQWOfs0PC9QLo9L7vXvkcNVdGqaZFV2j1mmeNj8o1fI,21789
154
154
  letta_client/types/action_model.py,sha256=y1e2XMv3skFaNJIBdYoBKgiORzGh05aOVvu-qVR9uHg,1240
155
155
  letta_client/types/action_parameters_model.py,sha256=LgKf5aPZG3-OHGxFdXiSokIDgce8c02xPYIAY05VgW8,828
156
156
  letta_client/types/action_response_model.py,sha256=yq2Fd9UU8j7vvtE3VqXUoRRvDzWcfJPj_95ynGdeHCs,824
@@ -291,8 +291,8 @@ letta_client/types/local_sandbox_config.py,sha256=jfe7akG_YrJJ8csLaLdev04Zg1x-PT
291
291
  letta_client/types/manager_type.py,sha256=3ztXv2xWw6PIgDoqqxaHwdIcssDYqdqB0KqUDSW3Bc0,222
292
292
  letta_client/types/max_count_per_step_tool_rule.py,sha256=6vBWeGH2FW3ze--lr4DVuqG5aikPjKAAwHd4bfv4YcM,1225
293
293
  letta_client/types/max_count_per_step_tool_rule_schema.py,sha256=1Zq4vblRTqFycqk7cBQ3gVCUy-MPWvE_tNXV5Fz0VTs,618
294
- letta_client/types/mcp_server_type.py,sha256=Hv45mKMPzmey2UVjwrTAvWXP1sDd13UwAtvtogBloLo,153
295
- letta_client/types/mcp_tool.py,sha256=_GSTb0k8l-IUEflRkQ6-v45UnbTcA4Nv1N8sgmExJQ0,912
294
+ letta_client/types/mcp_server_type.py,sha256=cEiRY8zJw3YdV0RV6tt4JUYd0AHT_UNeLgxaouU-_4A,172
295
+ letta_client/types/mcp_tool.py,sha256=1Bdh9eDfLWxEB_5spzGXImmcoEQ2XRo8BTaeolaMA1M,1015
296
296
  letta_client/types/memory.py,sha256=Fa07vLHBsc4eNK65Yla2zOuzYhtgFGlnPzAGo9GvJ-c,1210
297
297
  letta_client/types/message.py,sha256=xLOrSRBL3GHlEN_aZAVR_ruftSqqDMu3CVnRnB01ZD0,4493
298
298
  letta_client/types/message_content_item.py,sha256=FrwERKfU5MpV4Y8LC5ejKFkoqqSV_Ooww-r32VGBbME,629
@@ -343,7 +343,7 @@ letta_client/types/sandbox_type.py,sha256=XSWmX3JIFFrDPQ4i89E8LauXY8kjmJEtaz6e_J
343
343
  letta_client/types/sleeptime_manager.py,sha256=oKI3CCoA4guwktWs1bbPdCmv9jg94EeMvbXQWvzbt6M,778
344
344
  letta_client/types/sleeptime_manager_update.py,sha256=JMzgtvGMDI5VBzlTuzm4FpuFAL7uwPbQgN9TYxip93s,813
345
345
  letta_client/types/source.py,sha256=BsfE9yrefXREQtskGZnR-TFGqmHkFKIGHC5udtHUi14,2370
346
- letta_client/types/sse_server_config.py,sha256=b-h5FLm5MELZ5A9bwZt-02Zx_f3UbfKAQS--yHQVOQU,844
346
+ letta_client/types/sse_server_config.py,sha256=IN-FdECflYF-XiIM_fvVOwyDu215Csoixepv44PAVvQ,1738
347
347
  letta_client/types/stdio_server_config.py,sha256=dEQ7bguiLikGemLxYZJ3JCmmEQgAMsSPO_P52oHZSl0,1091
348
348
  letta_client/types/step.py,sha256=-5KHfBc6NZnYGLXHJMK6Bdyw2ae0G1zPFzsURjPiN3c,3133
349
349
  letta_client/types/stop_reason_type.py,sha256=PyYTS9bIvCSDfzyG4wJyk6bi9fCdDBNsoleLd7nMJYI,228
@@ -355,6 +355,7 @@ letta_client/types/terminal_tool_rule.py,sha256=E9XJMsIOAAERnTztXhbB0z4P-oBH0Bxn
355
355
  letta_client/types/text_content.py,sha256=Z8UL4Sqqq2qClKU_nCgR9XFCj3dwYyhZMmvnnz1F0AE,670
356
356
  letta_client/types/text_response_format.py,sha256=daIziOp-O4cEDqFH1CSIqb0p5BL721_kA0JSOtWlt0k,654
357
357
  letta_client/types/tool.py,sha256=5BtitT8tljb53PAVCZWeeKX6sLDUajgGAAJ2mJhiBp0,3054
358
+ letta_client/types/tool_annotations.py,sha256=Is8FsHSHmA1NsH9_gx9f99I7Er4Xix2GV0khCjw7mGE,1504
358
359
  letta_client/types/tool_call.py,sha256=EKGAFwzoa6zMTpOkG55hWzFn_AgPrbLXSOu5M84x8WU,594
359
360
  letta_client/types/tool_call_content.py,sha256=5aceJgOQSkL05Hw5LXG49yxN8CmTcp6jj9aeQp-Wtks,995
360
361
  letta_client/types/tool_call_delta.py,sha256=wGeZwJ9pwYHD5-f4Unf5-vJqefK40eHw9i0w3bCjRoE,671
@@ -394,10 +395,8 @@ letta_client/types/web_search_options_search_context_size.py,sha256=RgJGV4rkuaCT
394
395
  letta_client/types/web_search_options_user_location.py,sha256=4aXfFcwUBu7YNA5XBjfhmD6tgRb0e8LTFexmn-rkDfw,770
395
396
  letta_client/types/web_search_options_user_location_approximate.py,sha256=Ywk01J9H67L6_498E5E6ceJ2VbJUfcLiIJWD_s92_M0,731
396
397
  letta_client/version.py,sha256=bttKLbIhO3UonCYQlqs600zzbQgfhCCMjeXR9WRzid4,79
397
- letta_client/voice/__init__.py,sha256=7hX85553PiRMtIMM12a0DSoFzsglNiUziYR2ekS84Qw,175
398
- letta_client/voice/client.py,sha256=STjswa5oOLoP59QwTJvQwi73kgn0UzKOaXc2CsTRI4k,6912
399
- letta_client/voice/types/__init__.py,sha256=FRc3iKRTONE4N8Lf1IqvnqWZ2kXdrFFvkL7PxVcR8Ew,212
400
- letta_client/voice/types/create_voice_chat_completions_request_body.py,sha256=ZLfKgNK1T6IAwLEvaBVFfy7jEAoPUXP28n-nfmHkklc,391
401
- letta_client-0.1.157.dist-info/METADATA,sha256=w7z6ETlR-Zej8k3g0BRow7q-pGW1J-Lb6heUnwbnZpQ,5093
402
- letta_client-0.1.157.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
403
- letta_client-0.1.157.dist-info/RECORD,,
398
+ letta_client/voice/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
399
+ letta_client/voice/client.py,sha256=EX79F2D5bieXNP8g1ZPw8xwAzqE1A3hshCHUSlTV1kw,5739
400
+ letta_client-0.1.159.dist-info/METADATA,sha256=SdB49p2t2hQBKXGDEjpJeJYtcn57OnmhmOOBN0nq0Jg,5093
401
+ letta_client-0.1.159.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
402
+ letta_client-0.1.159.dist-info/RECORD,,
@@ -1,5 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- from .create_voice_chat_completions_request_body import CreateVoiceChatCompletionsRequestBody
4
-
5
- __all__ = ["CreateVoiceChatCompletionsRequestBody"]
@@ -1,9 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
- from ...types.completion_create_params_non_streaming import CompletionCreateParamsNonStreaming
5
- from ...types.completion_create_params_streaming import CompletionCreateParamsStreaming
6
-
7
- CreateVoiceChatCompletionsRequestBody = typing.Union[
8
- CompletionCreateParamsNonStreaming, CompletionCreateParamsStreaming
9
- ]