Skip to content

Commit 1c04baf

Browse files
committed
feat: add support of IBM models to AI API (box/box-openapi#522)
1 parent 66b91fc commit 1c04baf

16 files changed

+94
-193
lines changed

.codegen.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ "engineHash": "c2a365c", "specHash": "6a332e7", "version": "1.14.0" }
1+
{ "engineHash": "c2a365c", "specHash": "4e677e3", "version": "1.14.0" }

box_sdk_gen/schemas/__init__.py

+4
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,12 @@
2222

2323
from box_sdk_gen.schemas.ai_llm_endpoint_params_google import *
2424

25+
from box_sdk_gen.schemas.ai_llm_endpoint_params_ibm import *
26+
2527
from box_sdk_gen.schemas.ai_llm_endpoint_params_open_ai import *
2628

29+
from box_sdk_gen.schemas.ai_llm_endpoint_params import *
30+
2731
from box_sdk_gen.schemas.ai_agent_basic_text_tool_base import *
2832

2933
from box_sdk_gen.schemas.ai_agent_basic_text_tool_text_gen import *

box_sdk_gen/schemas/ai_agent_basic_gen_tool.py

+2-16
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
from typing import Optional
22

3-
from typing import Union
4-
5-
from box_sdk_gen.schemas.ai_llm_endpoint_params_open_ai import AiLlmEndpointParamsOpenAi
6-
7-
from box_sdk_gen.schemas.ai_llm_endpoint_params_google import AiLlmEndpointParamsGoogle
8-
9-
from box_sdk_gen.schemas.ai_llm_endpoint_params_aws import AiLlmEndpointParamsAws
3+
from box_sdk_gen.schemas.ai_llm_endpoint_params import AiLlmEndpointParams
104

115
from box_sdk_gen.schemas.ai_agent_basic_text_tool_base import AiAgentBasicTextToolBase
126

@@ -35,13 +29,7 @@ def __init__(
3529
prompt_template: Optional[str] = None,
3630
model: Optional[str] = None,
3731
num_tokens_for_completion: Optional[int] = None,
38-
llm_endpoint_params: Optional[
39-
Union[
40-
AiLlmEndpointParamsOpenAi,
41-
AiLlmEndpointParamsGoogle,
42-
AiLlmEndpointParamsAws,
43-
]
44-
] = None,
32+
llm_endpoint_params: Optional[AiLlmEndpointParams] = None,
4533
**kwargs
4634
):
4735
"""
@@ -60,8 +48,6 @@ def __init__(
6048
:type model: Optional[str], optional
6149
:param num_tokens_for_completion: The number of tokens for completion., defaults to None
6250
:type num_tokens_for_completion: Optional[int], optional
63-
:param llm_endpoint_params: The parameters for the LLM endpoint specific to OpenAI / Google models., defaults to None
64-
:type llm_endpoint_params: Optional[Union[AiLlmEndpointParamsOpenAi, AiLlmEndpointParamsGoogle, AiLlmEndpointParamsAws]], optional
6551
"""
6652
super().__init__(
6753
embeddings=embeddings,

box_sdk_gen/schemas/ai_agent_basic_text_tool.py

+2-16
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
from typing import Optional
22

3-
from typing import Union
4-
5-
from box_sdk_gen.schemas.ai_llm_endpoint_params_open_ai import AiLlmEndpointParamsOpenAi
6-
7-
from box_sdk_gen.schemas.ai_llm_endpoint_params_google import AiLlmEndpointParamsGoogle
8-
9-
from box_sdk_gen.schemas.ai_llm_endpoint_params_aws import AiLlmEndpointParamsAws
3+
from box_sdk_gen.schemas.ai_llm_endpoint_params import AiLlmEndpointParams
104

115
from box_sdk_gen.schemas.ai_agent_basic_text_tool_base import AiAgentBasicTextToolBase
126

@@ -21,13 +15,7 @@ def __init__(
2115
prompt_template: Optional[str] = None,
2216
model: Optional[str] = None,
2317
num_tokens_for_completion: Optional[int] = None,
24-
llm_endpoint_params: Optional[
25-
Union[
26-
AiLlmEndpointParamsOpenAi,
27-
AiLlmEndpointParamsGoogle,
28-
AiLlmEndpointParamsAws,
29-
]
30-
] = None,
18+
llm_endpoint_params: Optional[AiLlmEndpointParams] = None,
3119
**kwargs
3220
):
3321
"""
@@ -41,8 +29,6 @@ def __init__(
4129
:type model: Optional[str], optional
4230
:param num_tokens_for_completion: The number of tokens for completion., defaults to None
4331
:type num_tokens_for_completion: Optional[int], optional
44-
:param llm_endpoint_params: The parameters for the LLM endpoint specific to OpenAI / Google models., defaults to None
45-
:type llm_endpoint_params: Optional[Union[AiLlmEndpointParamsOpenAi, AiLlmEndpointParamsGoogle, AiLlmEndpointParamsAws]], optional
4632
"""
4733
super().__init__(
4834
model=model,

box_sdk_gen/schemas/ai_agent_basic_text_tool_base.py

+2-16
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
from typing import Optional
22

3-
from typing import Union
4-
53
from box_sdk_gen.internal.base_object import BaseObject
64

7-
from box_sdk_gen.schemas.ai_llm_endpoint_params_open_ai import AiLlmEndpointParamsOpenAi
8-
9-
from box_sdk_gen.schemas.ai_llm_endpoint_params_google import AiLlmEndpointParamsGoogle
10-
11-
from box_sdk_gen.schemas.ai_llm_endpoint_params_aws import AiLlmEndpointParamsAws
5+
from box_sdk_gen.schemas.ai_llm_endpoint_params import AiLlmEndpointParams
126

137
from box_sdk_gen.box.errors import BoxSDKError
148

@@ -19,22 +13,14 @@ def __init__(
1913
*,
2014
model: Optional[str] = None,
2115
num_tokens_for_completion: Optional[int] = None,
22-
llm_endpoint_params: Optional[
23-
Union[
24-
AiLlmEndpointParamsOpenAi,
25-
AiLlmEndpointParamsGoogle,
26-
AiLlmEndpointParamsAws,
27-
]
28-
] = None,
16+
llm_endpoint_params: Optional[AiLlmEndpointParams] = None,
2917
**kwargs
3018
):
3119
"""
3220
:param model: The model used for the AI agent for basic text. For specific model values, see the [available models list](g://box-ai/supported-models)., defaults to None
3321
:type model: Optional[str], optional
3422
:param num_tokens_for_completion: The number of tokens for completion., defaults to None
3523
:type num_tokens_for_completion: Optional[int], optional
36-
:param llm_endpoint_params: The parameters for the LLM endpoint specific to OpenAI / Google models., defaults to None
37-
:type llm_endpoint_params: Optional[Union[AiLlmEndpointParamsOpenAi, AiLlmEndpointParamsGoogle, AiLlmEndpointParamsAws]], optional
3824
"""
3925
super().__init__(**kwargs)
4026
self.model = model

box_sdk_gen/schemas/ai_agent_basic_text_tool_text_gen.py

+2-16
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
from typing import Optional
22

3-
from typing import Union
4-
5-
from box_sdk_gen.schemas.ai_llm_endpoint_params_open_ai import AiLlmEndpointParamsOpenAi
6-
7-
from box_sdk_gen.schemas.ai_llm_endpoint_params_google import AiLlmEndpointParamsGoogle
8-
9-
from box_sdk_gen.schemas.ai_llm_endpoint_params_aws import AiLlmEndpointParamsAws
3+
from box_sdk_gen.schemas.ai_llm_endpoint_params import AiLlmEndpointParams
104

115
from box_sdk_gen.schemas.ai_agent_basic_text_tool_base import AiAgentBasicTextToolBase
126

@@ -21,13 +15,7 @@ def __init__(
2115
prompt_template: Optional[str] = None,
2216
model: Optional[str] = None,
2317
num_tokens_for_completion: Optional[int] = None,
24-
llm_endpoint_params: Optional[
25-
Union[
26-
AiLlmEndpointParamsOpenAi,
27-
AiLlmEndpointParamsGoogle,
28-
AiLlmEndpointParamsAws,
29-
]
30-
] = None,
18+
llm_endpoint_params: Optional[AiLlmEndpointParams] = None,
3119
**kwargs
3220
):
3321
"""
@@ -43,8 +31,6 @@ def __init__(
4331
:type model: Optional[str], optional
4432
:param num_tokens_for_completion: The number of tokens for completion., defaults to None
4533
:type num_tokens_for_completion: Optional[int], optional
46-
:param llm_endpoint_params: The parameters for the LLM endpoint specific to OpenAI / Google models., defaults to None
47-
:type llm_endpoint_params: Optional[Union[AiLlmEndpointParamsOpenAi, AiLlmEndpointParamsGoogle, AiLlmEndpointParamsAws]], optional
4834
"""
4935
super().__init__(
5036
model=model,

box_sdk_gen/schemas/ai_agent_long_text_tool.py

+2-16
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,7 @@
22

33
from box_sdk_gen.internal.base_object import BaseObject
44

5-
from typing import Union
6-
7-
from box_sdk_gen.schemas.ai_llm_endpoint_params_open_ai import AiLlmEndpointParamsOpenAi
8-
9-
from box_sdk_gen.schemas.ai_llm_endpoint_params_google import AiLlmEndpointParamsGoogle
10-
11-
from box_sdk_gen.schemas.ai_llm_endpoint_params_aws import AiLlmEndpointParamsAws
5+
from box_sdk_gen.schemas.ai_llm_endpoint_params import AiLlmEndpointParams
126

137
from box_sdk_gen.schemas.ai_agent_basic_text_tool_base import AiAgentBasicTextToolBase
148

@@ -62,13 +56,7 @@ def __init__(
6256
prompt_template: Optional[str] = None,
6357
model: Optional[str] = None,
6458
num_tokens_for_completion: Optional[int] = None,
65-
llm_endpoint_params: Optional[
66-
Union[
67-
AiLlmEndpointParamsOpenAi,
68-
AiLlmEndpointParamsGoogle,
69-
AiLlmEndpointParamsAws,
70-
]
71-
] = None,
59+
llm_endpoint_params: Optional[AiLlmEndpointParams] = None,
7260
**kwargs
7361
):
7462
"""
@@ -82,8 +70,6 @@ def __init__(
8270
:type model: Optional[str], optional
8371
:param num_tokens_for_completion: The number of tokens for completion., defaults to None
8472
:type num_tokens_for_completion: Optional[int], optional
85-
:param llm_endpoint_params: The parameters for the LLM endpoint specific to OpenAI / Google models., defaults to None
86-
:type llm_endpoint_params: Optional[Union[AiLlmEndpointParamsOpenAi, AiLlmEndpointParamsGoogle, AiLlmEndpointParamsAws]], optional
8773
"""
8874
super().__init__(
8975
system_message=system_message,

box_sdk_gen/schemas/ai_agent_long_text_tool_text_gen.py

+2-16
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,7 @@
22

33
from box_sdk_gen.internal.base_object import BaseObject
44

5-
from typing import Union
6-
7-
from box_sdk_gen.schemas.ai_llm_endpoint_params_open_ai import AiLlmEndpointParamsOpenAi
8-
9-
from box_sdk_gen.schemas.ai_llm_endpoint_params_google import AiLlmEndpointParamsGoogle
10-
11-
from box_sdk_gen.schemas.ai_llm_endpoint_params_aws import AiLlmEndpointParamsAws
5+
from box_sdk_gen.schemas.ai_llm_endpoint_params import AiLlmEndpointParams
126

137
from box_sdk_gen.schemas.ai_agent_basic_text_tool_base import AiAgentBasicTextToolBase
148

@@ -64,13 +58,7 @@ def __init__(
6458
prompt_template: Optional[str] = None,
6559
model: Optional[str] = None,
6660
num_tokens_for_completion: Optional[int] = None,
67-
llm_endpoint_params: Optional[
68-
Union[
69-
AiLlmEndpointParamsOpenAi,
70-
AiLlmEndpointParamsGoogle,
71-
AiLlmEndpointParamsAws,
72-
]
73-
] = None,
61+
llm_endpoint_params: Optional[AiLlmEndpointParams] = None,
7462
**kwargs
7563
):
7664
"""
@@ -86,8 +74,6 @@ def __init__(
8674
:type model: Optional[str], optional
8775
:param num_tokens_for_completion: The number of tokens for completion., defaults to None
8876
:type num_tokens_for_completion: Optional[int], optional
89-
:param llm_endpoint_params: The parameters for the LLM endpoint specific to OpenAI / Google models., defaults to None
90-
:type llm_endpoint_params: Optional[Union[AiLlmEndpointParamsOpenAi, AiLlmEndpointParamsGoogle, AiLlmEndpointParamsAws]], optional
9177
"""
9278
super().__init__(
9379
system_message=system_message,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from typing import Union
2+
3+
from box_sdk_gen.schemas.ai_llm_endpoint_params_open_ai import AiLlmEndpointParamsOpenAi
4+
5+
from box_sdk_gen.schemas.ai_llm_endpoint_params_google import AiLlmEndpointParamsGoogle
6+
7+
from box_sdk_gen.schemas.ai_llm_endpoint_params_aws import AiLlmEndpointParamsAws
8+
9+
from box_sdk_gen.schemas.ai_llm_endpoint_params_ibm import AiLlmEndpointParamsIbm
10+
11+
from box_sdk_gen.box.errors import BoxSDKError
12+
13+
AiLlmEndpointParams = Union[
14+
AiLlmEndpointParamsOpenAi,
15+
AiLlmEndpointParamsGoogle,
16+
AiLlmEndpointParamsAws,
17+
AiLlmEndpointParamsIbm,
18+
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
from enum import Enum
2+
3+
from typing import Optional
4+
5+
from box_sdk_gen.internal.base_object import BaseObject
6+
7+
from box_sdk_gen.box.errors import BoxSDKError
8+
9+
10+
class AiLlmEndpointParamsIbmTypeField(str, Enum):
11+
IBM_PARAMS = 'ibm_params'
12+
13+
14+
class AiLlmEndpointParamsIbm(BaseObject):
15+
_discriminator = 'type', {'ibm_params'}
16+
17+
def __init__(
18+
self,
19+
*,
20+
type: AiLlmEndpointParamsIbmTypeField = AiLlmEndpointParamsIbmTypeField.IBM_PARAMS,
21+
temperature: Optional[float] = None,
22+
top_p: Optional[float] = None,
23+
top_k: Optional[float] = None,
24+
**kwargs
25+
):
26+
"""
27+
:param type: The type of the AI LLM endpoint params object for IBM.
28+
This parameter is **required**., defaults to AiLlmEndpointParamsIbmTypeField.IBM_PARAMS
29+
:type type: AiLlmEndpointParamsIbmTypeField, optional
30+
:param temperature: What sampling temperature to use, between 0 and 1. Higher values like 0.8 will make the output more random,
31+
while lower values like 0.2 will make it more focused and deterministic.
32+
We generally recommend altering this or `top_p` but not both., defaults to None
33+
:type temperature: Optional[float], optional
34+
:param top_p: An alternative to sampling with temperature, called nucleus sampling, where the model considers the results
35+
of the tokens with `top_p` probability mass. So 0.1 means only the tokens comprising the top 10% probability
36+
mass are considered. We generally recommend altering this or temperature but not both., defaults to None
37+
:type top_p: Optional[float], optional
38+
:param top_k: `Top-K` changes how the model selects tokens for output. A `top-K` of 1 means the next selected token is
39+
the most probable among all tokens in the model's vocabulary (also called greedy decoding),
40+
while a `top-K` of 3 means that the next token is selected from among the three most probable tokens by using temperature., defaults to None
41+
:type top_k: Optional[float], optional
42+
"""
43+
super().__init__(**kwargs)
44+
self.type = type
45+
self.temperature = temperature
46+
self.top_p = top_p
47+
self.top_k = top_k

box_sdk_gen/schemas/ai_studio_agent_basic_gen_tool.py

+2-16
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
from typing import Optional
22

3-
from typing import Union
4-
5-
from box_sdk_gen.schemas.ai_llm_endpoint_params_open_ai import AiLlmEndpointParamsOpenAi
6-
7-
from box_sdk_gen.schemas.ai_llm_endpoint_params_google import AiLlmEndpointParamsGoogle
8-
9-
from box_sdk_gen.schemas.ai_llm_endpoint_params_aws import AiLlmEndpointParamsAws
3+
from box_sdk_gen.schemas.ai_llm_endpoint_params import AiLlmEndpointParams
104

115
from box_sdk_gen.schemas.ai_agent_basic_text_tool_base import AiAgentBasicTextToolBase
126

@@ -38,13 +32,7 @@ def __init__(
3832
prompt_template: Optional[str] = None,
3933
model: Optional[str] = None,
4034
num_tokens_for_completion: Optional[int] = None,
41-
llm_endpoint_params: Optional[
42-
Union[
43-
AiLlmEndpointParamsOpenAi,
44-
AiLlmEndpointParamsGoogle,
45-
AiLlmEndpointParamsAws,
46-
]
47-
] = None,
35+
llm_endpoint_params: Optional[AiLlmEndpointParams] = None,
4836
**kwargs
4937
):
5038
"""
@@ -65,8 +53,6 @@ def __init__(
6553
:type model: Optional[str], optional
6654
:param num_tokens_for_completion: The number of tokens for completion., defaults to None
6755
:type num_tokens_for_completion: Optional[int], optional
68-
:param llm_endpoint_params: The parameters for the LLM endpoint specific to OpenAI / Google models., defaults to None
69-
:type llm_endpoint_params: Optional[Union[AiLlmEndpointParamsOpenAi, AiLlmEndpointParamsGoogle, AiLlmEndpointParamsAws]], optional
7056
"""
7157
super().__init__(
7258
content_template=content_template,

box_sdk_gen/schemas/ai_studio_agent_basic_gen_tool_response.py

+2-16
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,7 @@
22

33
from typing import List
44

5-
from typing import Union
6-
7-
from box_sdk_gen.schemas.ai_llm_endpoint_params_open_ai import AiLlmEndpointParamsOpenAi
8-
9-
from box_sdk_gen.schemas.ai_llm_endpoint_params_google import AiLlmEndpointParamsGoogle
10-
11-
from box_sdk_gen.schemas.ai_llm_endpoint_params_aws import AiLlmEndpointParamsAws
5+
from box_sdk_gen.schemas.ai_llm_endpoint_params import AiLlmEndpointParams
126

137
from box_sdk_gen.schemas.ai_agent_basic_text_tool_base import AiAgentBasicTextToolBase
148

@@ -43,13 +37,7 @@ def __init__(
4337
prompt_template: Optional[str] = None,
4438
model: Optional[str] = None,
4539
num_tokens_for_completion: Optional[int] = None,
46-
llm_endpoint_params: Optional[
47-
Union[
48-
AiLlmEndpointParamsOpenAi,
49-
AiLlmEndpointParamsGoogle,
50-
AiLlmEndpointParamsAws,
51-
]
52-
] = None,
40+
llm_endpoint_params: Optional[AiLlmEndpointParams] = None,
5341
**kwargs
5442
):
5543
"""
@@ -72,8 +60,6 @@ def __init__(
7260
:type model: Optional[str], optional
7361
:param num_tokens_for_completion: The number of tokens for completion., defaults to None
7462
:type num_tokens_for_completion: Optional[int], optional
75-
:param llm_endpoint_params: The parameters for the LLM endpoint specific to OpenAI / Google models., defaults to None
76-
:type llm_endpoint_params: Optional[Union[AiLlmEndpointParamsOpenAi, AiLlmEndpointParamsGoogle, AiLlmEndpointParamsAws]], optional
7763
"""
7864
super().__init__(
7965
is_custom_instructions_included=is_custom_instructions_included,

0 commit comments

Comments
 (0)