@llumiverse/common 1.2.0 → 1.4.0-dev.20260629.090753Z
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.
- package/lib/capability/anthropic.d.ts +3 -0
- package/lib/capability/anthropic.d.ts.map +1 -0
- package/lib/capability/anthropic.js +92 -0
- package/lib/capability/anthropic.js.map +1 -0
- package/lib/{types/capability → capability}/azure_foundry.d.ts +1 -1
- package/lib/capability/azure_foundry.d.ts.map +1 -0
- package/lib/capability/azure_foundry.js +394 -0
- package/lib/capability/azure_foundry.js.map +1 -0
- package/lib/{types/capability → capability}/bedrock.d.ts +1 -1
- package/lib/capability/bedrock.d.ts.map +1 -0
- package/lib/capability/bedrock.js +300 -0
- package/lib/capability/bedrock.js.map +1 -0
- package/lib/{types/capability → capability}/openai.d.ts +1 -1
- package/lib/capability/openai.d.ts.map +1 -0
- package/lib/capability/openai.js +179 -0
- package/lib/capability/openai.js.map +1 -0
- package/lib/{types/capability → capability}/vertexai.d.ts +1 -1
- package/lib/capability/vertexai.d.ts.map +1 -0
- package/lib/capability/vertexai.js +137 -0
- package/lib/capability/vertexai.js.map +1 -0
- package/lib/{types/capability.d.ts → capability.d.ts} +1 -1
- package/lib/capability.d.ts.map +1 -0
- package/lib/{esm/capability.js → capability.js} +21 -15
- package/lib/capability.js.map +1 -0
- package/lib/index.d.ts +14 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +14 -0
- package/lib/index.js.map +1 -0
- package/lib/options/anthropic.d.ts +16 -0
- package/lib/options/anthropic.d.ts.map +1 -0
- package/lib/options/anthropic.js +34 -0
- package/lib/options/anthropic.js.map +1 -0
- package/lib/{types/options → options}/azure_foundry.d.ts +14 -14
- package/lib/options/azure_foundry.d.ts.map +1 -0
- package/lib/{esm/options → options}/azure_foundry.js +126 -126
- package/lib/options/azure_foundry.js.map +1 -0
- package/lib/options/bedrock.d.ts +61 -0
- package/lib/options/bedrock.d.ts.map +1 -0
- package/lib/options/bedrock.js +489 -0
- package/lib/options/bedrock.js.map +1 -0
- package/lib/options/context-windows.d.ts.map +1 -0
- package/lib/options/context-windows.js.map +1 -0
- package/lib/options/embedding.d.ts +38 -0
- package/lib/options/embedding.d.ts.map +1 -0
- package/lib/options/embedding.js +77 -0
- package/lib/options/embedding.js.map +1 -0
- package/lib/{types/options → options}/fallback.d.ts +2 -2
- package/lib/options/fallback.d.ts.map +1 -0
- package/lib/options/fallback.js +65 -0
- package/lib/options/fallback.js.map +1 -0
- package/lib/{types/options → options}/groq.d.ts +2 -2
- package/lib/options/groq.d.ts.map +1 -0
- package/lib/options/groq.js +54 -0
- package/lib/options/groq.js.map +1 -0
- package/lib/options/openai.d.ts +40 -0
- package/lib/options/openai.d.ts.map +1 -0
- package/lib/options/openai.js +284 -0
- package/lib/options/openai.js.map +1 -0
- package/lib/{types/options → options}/shared-parsing.d.ts +1 -1
- package/lib/options/shared-parsing.d.ts.map +1 -0
- package/lib/{esm/options → options}/shared-parsing.js +14 -17
- package/lib/options/shared-parsing.js.map +1 -0
- package/lib/options/version-parsing.d.ts.map +1 -0
- package/lib/{esm/options → options}/version-parsing.js +15 -15
- package/lib/options/version-parsing.js.map +1 -0
- package/lib/{types/options → options}/vertexai.d.ts +18 -15
- package/lib/options/vertexai.d.ts.map +1 -0
- package/lib/options/vertexai.js +606 -0
- package/lib/options/vertexai.js.map +1 -0
- package/lib/{types/options.d.ts → options.d.ts} +1 -1
- package/lib/options.d.ts.map +1 -0
- package/lib/{esm/options.js → options.js} +10 -7
- package/lib/options.js.map +1 -0
- package/lib/{types/types.d.ts → types.d.ts} +161 -42
- package/lib/types.d.ts.map +1 -0
- package/lib/{esm/types.js → types.js} +28 -22
- package/lib/types.js.map +1 -0
- package/package.json +12 -34
- package/src/LlumiverseError.test.ts +18 -72
- package/src/capability/anthropic.ts +99 -0
- package/src/capability/azure_foundry.ts +303 -65
- package/src/capability/bedrock.ts +201 -56
- package/src/capability/openai.ts +135 -41
- package/src/capability/vertexai.ts +105 -35
- package/src/capability.ts +21 -16
- package/src/index.ts +13 -11
- package/src/options/anthropic.ts +59 -0
- package/src/options/azure_foundry.ts +157 -143
- package/src/options/bedrock.ts +266 -187
- package/src/options/context-windows.ts +2 -2
- package/src/options/embedding.ts +92 -0
- package/src/options/fallback.ts +50 -17
- package/src/options/groq.ts +48 -21
- package/src/options/openai.ts +231 -183
- package/src/options/shared-parsing.ts +16 -21
- package/src/options/version-parsing.ts +17 -17
- package/src/options/vertexai.ts +385 -288
- package/src/options.ts +11 -8
- package/src/types.ts +284 -160
- package/lib/cjs/capability/azure_foundry.js +0 -160
- package/lib/cjs/capability/azure_foundry.js.map +0 -1
- package/lib/cjs/capability/bedrock.js +0 -158
- package/lib/cjs/capability/bedrock.js.map +0 -1
- package/lib/cjs/capability/openai.js +0 -98
- package/lib/cjs/capability/openai.js.map +0 -1
- package/lib/cjs/capability/vertexai.js +0 -80
- package/lib/cjs/capability/vertexai.js.map +0 -1
- package/lib/cjs/capability.js +0 -109
- package/lib/cjs/capability.js.map +0 -1
- package/lib/cjs/index.js +0 -27
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/options/azure_foundry.js +0 -423
- package/lib/cjs/options/azure_foundry.js.map +0 -1
- package/lib/cjs/options/bedrock.js +0 -427
- package/lib/cjs/options/bedrock.js.map +0 -1
- package/lib/cjs/options/context-windows.js +0 -138
- package/lib/cjs/options/context-windows.js.map +0 -1
- package/lib/cjs/options/fallback.js +0 -35
- package/lib/cjs/options/fallback.js.map +0 -1
- package/lib/cjs/options/groq.js +0 -37
- package/lib/cjs/options/groq.js.map +0 -1
- package/lib/cjs/options/openai.js +0 -246
- package/lib/cjs/options/openai.js.map +0 -1
- package/lib/cjs/options/shared-parsing.js +0 -144
- package/lib/cjs/options/shared-parsing.js.map +0 -1
- package/lib/cjs/options/version-parsing.js +0 -326
- package/lib/cjs/options/version-parsing.js.map +0 -1
- package/lib/cjs/options/vertexai.js +0 -525
- package/lib/cjs/options/vertexai.js.map +0 -1
- package/lib/cjs/options.js +0 -30
- package/lib/cjs/options.js.map +0 -1
- package/lib/cjs/package.json +0 -3
- package/lib/cjs/types.js +0 -299
- package/lib/cjs/types.js.map +0 -1
- package/lib/esm/capability/azure_foundry.js +0 -157
- package/lib/esm/capability/azure_foundry.js.map +0 -1
- package/lib/esm/capability/bedrock.js +0 -155
- package/lib/esm/capability/bedrock.js.map +0 -1
- package/lib/esm/capability/openai.js +0 -95
- package/lib/esm/capability/openai.js.map +0 -1
- package/lib/esm/capability/vertexai.js +0 -77
- package/lib/esm/capability/vertexai.js.map +0 -1
- package/lib/esm/capability.js.map +0 -1
- package/lib/esm/index.js +0 -11
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/options/azure_foundry.js.map +0 -1
- package/lib/esm/options/bedrock.js +0 -423
- package/lib/esm/options/bedrock.js.map +0 -1
- package/lib/esm/options/context-windows.js.map +0 -1
- package/lib/esm/options/fallback.js +0 -32
- package/lib/esm/options/fallback.js.map +0 -1
- package/lib/esm/options/groq.js +0 -34
- package/lib/esm/options/groq.js.map +0 -1
- package/lib/esm/options/openai.js +0 -243
- package/lib/esm/options/openai.js.map +0 -1
- package/lib/esm/options/shared-parsing.js.map +0 -1
- package/lib/esm/options/version-parsing.js.map +0 -1
- package/lib/esm/options/vertexai.js +0 -519
- package/lib/esm/options/vertexai.js.map +0 -1
- package/lib/esm/options.js.map +0 -1
- package/lib/esm/types.js.map +0 -1
- package/lib/types/capability/azure_foundry.d.ts.map +0 -1
- package/lib/types/capability/bedrock.d.ts.map +0 -1
- package/lib/types/capability/openai.d.ts.map +0 -1
- package/lib/types/capability/vertexai.d.ts.map +0 -1
- package/lib/types/capability.d.ts.map +0 -1
- package/lib/types/index.d.ts +0 -11
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/options/azure_foundry.d.ts.map +0 -1
- package/lib/types/options/bedrock.d.ts +0 -54
- package/lib/types/options/bedrock.d.ts.map +0 -1
- package/lib/types/options/context-windows.d.ts.map +0 -1
- package/lib/types/options/fallback.d.ts.map +0 -1
- package/lib/types/options/groq.d.ts.map +0 -1
- package/lib/types/options/openai.d.ts +0 -37
- package/lib/types/options/openai.d.ts.map +0 -1
- package/lib/types/options/shared-parsing.d.ts.map +0 -1
- package/lib/types/options/version-parsing.d.ts.map +0 -1
- package/lib/types/options/vertexai.d.ts.map +0 -1
- package/lib/types/options.d.ts.map +0 -1
- package/lib/types/types.d.ts.map +0 -1
- /package/lib/{types/options → options}/context-windows.d.ts +0 -0
- /package/lib/{esm/options → options}/context-windows.js +0 -0
- /package/lib/{types/options → options}/version-parsing.d.ts +0 -0
package/src/options/bedrock.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ModelOptionInfoItem, type ModelOptions, type ModelOptionsInfo, OptionType } from
|
|
1
|
+
import { type ModelOptionInfoItem, type ModelOptions, type ModelOptionsInfo, OptionType } from '../types.js';
|
|
2
2
|
import {
|
|
3
3
|
buildClaudeCacheOptions,
|
|
4
4
|
buildClaudeCacheTtlOptions,
|
|
@@ -6,38 +6,64 @@ import {
|
|
|
6
6
|
buildClaudeIncludeThoughtsOption,
|
|
7
7
|
buildClaudeThinkingBudgetOption,
|
|
8
8
|
getClaudeMaxTokensLimit,
|
|
9
|
-
} from
|
|
10
|
-
import { hasSamplingParameterRestriction } from
|
|
9
|
+
} from './shared-parsing.js';
|
|
10
|
+
import { hasSamplingParameterRestriction } from './version-parsing.js';
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Union type of all Bedrock options
|
|
14
|
+
*
|
|
15
|
+
* @discriminator _option_id
|
|
16
|
+
*/
|
|
17
|
+
export type BedrockOptions =
|
|
18
|
+
| NovaCanvasOptions
|
|
19
|
+
| BedrockConverseOptions
|
|
20
|
+
| BedrockNovaOptions
|
|
21
|
+
| BedrockMistralOptions
|
|
22
|
+
| BedrockAI21Options
|
|
23
|
+
| BedrockCohereCommandOptions
|
|
24
|
+
| BedrockClaudeOptions
|
|
25
|
+
| BedrockPalmyraOptions
|
|
26
|
+
| BedrockGptOssOptions
|
|
27
|
+
| TwelvelabsPegasusOptions;
|
|
14
28
|
|
|
15
29
|
export interface NovaCanvasOptions {
|
|
16
|
-
_option_id:
|
|
17
|
-
taskType:
|
|
30
|
+
_option_id: 'bedrock-nova-canvas';
|
|
31
|
+
taskType:
|
|
32
|
+
| 'TEXT_IMAGE'
|
|
33
|
+
| 'TEXT_IMAGE_WITH_IMAGE_CONDITIONING'
|
|
34
|
+
| 'COLOR_GUIDED_GENERATION'
|
|
35
|
+
| 'IMAGE_VARIATION'
|
|
36
|
+
| 'INPAINTING'
|
|
37
|
+
| 'OUTPAINTING'
|
|
38
|
+
| 'BACKGROUND_REMOVAL';
|
|
18
39
|
width?: number;
|
|
19
40
|
height?: number;
|
|
20
|
-
quality?:
|
|
41
|
+
quality?: 'standard' | 'premium';
|
|
21
42
|
cfgScale?: number;
|
|
22
43
|
seed?: number;
|
|
23
44
|
numberOfImages?: number;
|
|
24
|
-
controlMode?:
|
|
45
|
+
controlMode?: 'CANNY_EDGE' | 'SEGMENTATION';
|
|
25
46
|
controlStrength?: number;
|
|
26
47
|
colors?: string[];
|
|
27
48
|
similarityStrength?: number;
|
|
28
|
-
outPaintingMode?:
|
|
49
|
+
outPaintingMode?: 'DEFAULT' | 'PRECISE';
|
|
29
50
|
}
|
|
30
51
|
|
|
31
|
-
export interface BaseConverseOptions {
|
|
32
|
-
_option_id:
|
|
52
|
+
export interface BaseConverseOptions<TOptionId extends string = string> {
|
|
53
|
+
_option_id: TOptionId;
|
|
33
54
|
max_tokens?: number;
|
|
34
55
|
temperature?: number;
|
|
35
56
|
top_p?: number;
|
|
36
57
|
stop_sequence?: string[];
|
|
37
58
|
}
|
|
38
59
|
|
|
39
|
-
export
|
|
40
|
-
|
|
60
|
+
export type BedrockConverseOptions = BaseConverseOptions<'bedrock-converse'>;
|
|
61
|
+
export type BedrockNovaOptions = BaseConverseOptions<'bedrock-nova'>;
|
|
62
|
+
export type BedrockMistralOptions = BaseConverseOptions<'bedrock-mistral'>;
|
|
63
|
+
export type BedrockAI21Options = BaseConverseOptions<'bedrock-ai21'>;
|
|
64
|
+
export type BedrockCohereCommandOptions = BaseConverseOptions<'bedrock-cohere-command'>;
|
|
65
|
+
|
|
66
|
+
export interface BedrockClaudeOptions extends BaseConverseOptions<'bedrock-claude'> {
|
|
41
67
|
top_k?: number;
|
|
42
68
|
thinking_budget_tokens?: number;
|
|
43
69
|
include_thoughts?: boolean;
|
|
@@ -46,100 +72,95 @@ export interface BedrockClaudeOptions extends BaseConverseOptions {
|
|
|
46
72
|
cache_ttl?: '5m' | '1h';
|
|
47
73
|
}
|
|
48
74
|
|
|
49
|
-
export interface BedrockPalmyraOptions extends BaseConverseOptions {
|
|
50
|
-
_option_id: "bedrock-palmyra";
|
|
75
|
+
export interface BedrockPalmyraOptions extends BaseConverseOptions<'bedrock-palmyra'> {
|
|
51
76
|
min_tokens?: number;
|
|
52
77
|
seed?: number;
|
|
53
78
|
frequency_penalty?: number;
|
|
54
79
|
presence_penalty?: number;
|
|
55
80
|
}
|
|
56
81
|
|
|
57
|
-
export interface BedrockGptOssOptions extends BaseConverseOptions {
|
|
58
|
-
|
|
59
|
-
reasoning_effort?: "low" | "medium" | "high";
|
|
82
|
+
export interface BedrockGptOssOptions extends BaseConverseOptions<'bedrock-gpt-oss'> {
|
|
83
|
+
reasoning_effort?: 'low' | 'medium' | 'high';
|
|
60
84
|
frequency_penalty?: number;
|
|
61
85
|
presence_penalty?: number;
|
|
62
86
|
}
|
|
63
87
|
|
|
64
88
|
export interface TwelvelabsPegasusOptions {
|
|
65
|
-
_option_id:
|
|
89
|
+
_option_id: 'bedrock-twelvelabs-pegasus';
|
|
66
90
|
temperature?: number;
|
|
67
91
|
max_tokens?: number;
|
|
68
92
|
}
|
|
69
93
|
|
|
70
94
|
export function getMaxTokensLimitBedrock(model: string): number | undefined {
|
|
71
95
|
// Claude models — delegate to shared limit logic (128K for 3.7 and Opus 4.7+)
|
|
72
|
-
if (model.includes(
|
|
96
|
+
if (model.includes('claude')) {
|
|
73
97
|
return getClaudeMaxTokensLimit(model);
|
|
74
98
|
}
|
|
75
99
|
// Amazon models
|
|
76
|
-
else if (model.includes(
|
|
77
|
-
if (model.includes(
|
|
78
|
-
if (model.includes(
|
|
100
|
+
else if (model.includes('amazon')) {
|
|
101
|
+
if (model.includes('titan')) {
|
|
102
|
+
if (model.includes('lite')) {
|
|
79
103
|
return 4096;
|
|
80
|
-
} else if (model.includes(
|
|
104
|
+
} else if (model.includes('express')) {
|
|
81
105
|
return 8192;
|
|
82
|
-
} else if (model.includes(
|
|
106
|
+
} else if (model.includes('premier')) {
|
|
83
107
|
return 3072;
|
|
84
108
|
}
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
else if (model.includes("nova")) {
|
|
109
|
+
} else if (model.includes('nova')) {
|
|
88
110
|
return 10000;
|
|
89
111
|
}
|
|
90
112
|
}
|
|
91
113
|
// Mistral models
|
|
92
|
-
else if (model.includes(
|
|
93
|
-
if (model.includes(
|
|
114
|
+
else if (model.includes('mistral')) {
|
|
115
|
+
if (model.includes('8x7b')) {
|
|
94
116
|
return 4096;
|
|
95
117
|
}
|
|
96
|
-
if (model.includes(
|
|
118
|
+
if (model.includes('pixtral-large')) {
|
|
97
119
|
return 4096;
|
|
98
120
|
}
|
|
99
121
|
return 8192;
|
|
100
122
|
}
|
|
101
123
|
// AI21 models
|
|
102
|
-
else if (model.includes(
|
|
103
|
-
if (model.includes(
|
|
104
|
-
if (model.includes(
|
|
124
|
+
else if (model.includes('ai21')) {
|
|
125
|
+
if (model.includes('j2')) {
|
|
126
|
+
if (model.includes('large') || model.includes('mid') || model.includes('ultra')) {
|
|
105
127
|
return 8191;
|
|
106
128
|
}
|
|
107
129
|
return 2048;
|
|
108
130
|
}
|
|
109
|
-
if (model.includes(
|
|
131
|
+
if (model.includes('jamba')) {
|
|
110
132
|
return 4096;
|
|
111
133
|
}
|
|
112
134
|
}
|
|
113
135
|
// Cohere models
|
|
114
|
-
else if (model.includes(
|
|
115
|
-
if (model.includes(
|
|
136
|
+
else if (model.includes('cohere.command')) {
|
|
137
|
+
if (model.includes('command-a')) {
|
|
116
138
|
return 8000;
|
|
117
139
|
}
|
|
118
140
|
return 4096;
|
|
119
141
|
}
|
|
120
142
|
// Meta models
|
|
121
|
-
else if (model.includes(
|
|
122
|
-
if (model.includes(
|
|
143
|
+
else if (model.includes('llama')) {
|
|
144
|
+
if (model.includes('3-70b') || model.includes('3-8b')) {
|
|
123
145
|
return 2048;
|
|
124
146
|
}
|
|
125
147
|
return 8192;
|
|
126
148
|
}
|
|
127
149
|
//Writer models
|
|
128
|
-
else if (model.includes(
|
|
129
|
-
if (model.includes(
|
|
150
|
+
else if (model.includes('writer')) {
|
|
151
|
+
if (model.includes('palmyra-x5')) {
|
|
130
152
|
return 8192;
|
|
131
|
-
}
|
|
132
|
-
else if (model.includes("palmyra-x4")) {
|
|
153
|
+
} else if (model.includes('palmyra-x4')) {
|
|
133
154
|
return 8192;
|
|
134
155
|
}
|
|
135
156
|
}
|
|
136
157
|
// OpenAI gpt-oss models
|
|
137
|
-
if (model.includes(
|
|
158
|
+
if (model.includes('gpt-oss')) {
|
|
138
159
|
return 8192;
|
|
139
160
|
}
|
|
140
161
|
// TwelveLabs models
|
|
141
|
-
else if (model.includes(
|
|
142
|
-
if (model.includes(
|
|
162
|
+
else if (model.includes('twelvelabs')) {
|
|
163
|
+
if (model.includes('pegasus')) {
|
|
143
164
|
return 4096; // Max output tokens for Pegasus
|
|
144
165
|
}
|
|
145
166
|
// Marengo is an embedding model, doesn't generate text
|
|
@@ -151,85 +172,143 @@ export function getMaxTokensLimitBedrock(model: string): number | undefined {
|
|
|
151
172
|
}
|
|
152
173
|
|
|
153
174
|
export function getBedrockOptions(model: string, option?: ModelOptions): ModelOptionsInfo {
|
|
154
|
-
if (model.includes(
|
|
175
|
+
if (model.includes('canvas')) {
|
|
155
176
|
const taskTypeList: ModelOptionInfoItem = {
|
|
156
|
-
name:
|
|
177
|
+
name: 'taskType',
|
|
157
178
|
type: OptionType.enum,
|
|
158
179
|
enum: {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
180
|
+
'Text-To-Image': 'TEXT_IMAGE',
|
|
181
|
+
'Text-To-Image-with-Image-Conditioning': 'TEXT_IMAGE_WITH_IMAGE_CONDITIONING',
|
|
182
|
+
'Color-Guided-Generation': 'COLOR_GUIDED_GENERATION',
|
|
183
|
+
'Image-Variation': 'IMAGE_VARIATION',
|
|
184
|
+
Inpainting: 'INPAINTING',
|
|
185
|
+
Outpainting: 'OUTPAINTING',
|
|
186
|
+
'Background-Removal': 'BACKGROUND_REMOVAL',
|
|
166
187
|
},
|
|
167
|
-
default:
|
|
168
|
-
description:
|
|
188
|
+
default: 'TEXT_IMAGE',
|
|
189
|
+
description: 'The type of task to perform',
|
|
169
190
|
refresh: true,
|
|
170
191
|
};
|
|
171
192
|
|
|
172
193
|
let otherOptions: ModelOptionInfoItem[] = [
|
|
173
|
-
{ name: "width", type: OptionType.numeric, min: 320, max: 4096, default: 512, step: 16, integer: true, description: "The width of the generated image" },
|
|
174
|
-
{ name: "height", type: OptionType.numeric, min: 320, max: 4096, default: 512, step: 16, integer: true, description: "The height of the generated image" },
|
|
175
194
|
{
|
|
176
|
-
name:
|
|
195
|
+
name: 'width',
|
|
196
|
+
type: OptionType.numeric,
|
|
197
|
+
min: 320,
|
|
198
|
+
max: 4096,
|
|
199
|
+
default: 512,
|
|
200
|
+
step: 16,
|
|
201
|
+
integer: true,
|
|
202
|
+
description: 'The width of the generated image',
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
name: 'height',
|
|
206
|
+
type: OptionType.numeric,
|
|
207
|
+
min: 320,
|
|
208
|
+
max: 4096,
|
|
209
|
+
default: 512,
|
|
210
|
+
step: 16,
|
|
211
|
+
integer: true,
|
|
212
|
+
description: 'The height of the generated image',
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
name: 'quality',
|
|
177
216
|
type: OptionType.enum,
|
|
178
|
-
enum: {
|
|
179
|
-
default:
|
|
180
|
-
description:
|
|
217
|
+
enum: { standard: 'standard', premium: 'premium' },
|
|
218
|
+
default: 'standard',
|
|
219
|
+
description: 'The quality of the generated image',
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
name: 'cfgScale',
|
|
223
|
+
type: OptionType.numeric,
|
|
224
|
+
min: 1.1,
|
|
225
|
+
max: 10.0,
|
|
226
|
+
default: 6.5,
|
|
227
|
+
step: 0.1,
|
|
228
|
+
integer: false,
|
|
229
|
+
description: 'The scale of the generated image',
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
name: 'seed',
|
|
233
|
+
type: OptionType.numeric,
|
|
234
|
+
min: 0,
|
|
235
|
+
max: 858993459,
|
|
236
|
+
default: 12,
|
|
237
|
+
integer: true,
|
|
238
|
+
description: 'The seed of the generated image',
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
name: 'numberOfImages',
|
|
242
|
+
type: OptionType.numeric,
|
|
243
|
+
min: 1,
|
|
244
|
+
max: 5,
|
|
245
|
+
default: 1,
|
|
246
|
+
integer: true,
|
|
247
|
+
description: 'The number of images to generate',
|
|
181
248
|
},
|
|
182
|
-
{ name: "cfgScale", type: OptionType.numeric, min: 1.1, max: 10.0, default: 6.5, step: 0.1, integer: false, description: "The scale of the generated image" },
|
|
183
|
-
{ name: "seed", type: OptionType.numeric, min: 0, max: 858993459, default: 12, integer: true, description: "The seed of the generated image" },
|
|
184
|
-
{ name: "numberOfImages", type: OptionType.numeric, min: 1, max: 5, default: 1, integer: true, description: "The number of images to generate" },
|
|
185
249
|
];
|
|
186
250
|
|
|
187
251
|
let dependentOptions: ModelOptionInfoItem[] = [];
|
|
188
252
|
|
|
189
|
-
switch ((option as NovaCanvasOptions)?.taskType ??
|
|
190
|
-
case
|
|
253
|
+
switch ((option as NovaCanvasOptions)?.taskType ?? 'TEXT_IMAGE') {
|
|
254
|
+
case 'TEXT_IMAGE_WITH_IMAGE_CONDITIONING':
|
|
191
255
|
dependentOptions.push(
|
|
192
256
|
{
|
|
193
|
-
name:
|
|
194
|
-
|
|
257
|
+
name: 'controlMode',
|
|
258
|
+
type: OptionType.enum,
|
|
259
|
+
enum: { CANNY_EDGE: 'CANNY_EDGE', SEGMENTATION: 'SEGMENTATION' },
|
|
260
|
+
default: 'CANNY_EDGE',
|
|
261
|
+
description: 'The control mode of the generated image',
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
name: 'controlStrength',
|
|
265
|
+
type: OptionType.numeric,
|
|
266
|
+
min: 0,
|
|
267
|
+
max: 1,
|
|
268
|
+
default: 0.7,
|
|
269
|
+
description: 'The control strength of the generated image',
|
|
195
270
|
},
|
|
196
|
-
{ name: "controlStrength", type: OptionType.numeric, min: 0, max: 1, default: 0.7, description: "The control strength of the generated image" },
|
|
197
271
|
);
|
|
198
272
|
break;
|
|
199
|
-
case
|
|
200
|
-
dependentOptions.push(
|
|
201
|
-
|
|
202
|
-
|
|
273
|
+
case 'COLOR_GUIDED_GENERATION':
|
|
274
|
+
dependentOptions.push({
|
|
275
|
+
name: 'colors',
|
|
276
|
+
type: OptionType.string_list,
|
|
277
|
+
value: [],
|
|
278
|
+
description: 'Hexadecimal color values to guide generation',
|
|
279
|
+
});
|
|
203
280
|
break;
|
|
204
|
-
case
|
|
205
|
-
dependentOptions.push(
|
|
206
|
-
|
|
207
|
-
|
|
281
|
+
case 'IMAGE_VARIATION':
|
|
282
|
+
dependentOptions.push({
|
|
283
|
+
name: 'similarityStrength',
|
|
284
|
+
type: OptionType.numeric,
|
|
285
|
+
min: 0.2,
|
|
286
|
+
max: 1,
|
|
287
|
+
default: 0.7,
|
|
288
|
+
description: 'The similarity strength of the generated image',
|
|
289
|
+
});
|
|
208
290
|
break;
|
|
209
|
-
case
|
|
291
|
+
case 'INPAINTING':
|
|
210
292
|
//No changes
|
|
211
293
|
break;
|
|
212
|
-
case
|
|
213
|
-
dependentOptions.push(
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
294
|
+
case 'OUTPAINTING':
|
|
295
|
+
dependentOptions.push({
|
|
296
|
+
name: 'outPaintingMode',
|
|
297
|
+
type: OptionType.enum,
|
|
298
|
+
enum: { DEFAULT: 'DEFAULT', PRECISE: 'PRECISE' },
|
|
299
|
+
default: 'default',
|
|
300
|
+
description: 'The outpainting mode of the generated image',
|
|
301
|
+
});
|
|
219
302
|
break;
|
|
220
|
-
case
|
|
303
|
+
case 'BACKGROUND_REMOVAL':
|
|
221
304
|
dependentOptions = [];
|
|
222
305
|
otherOptions = [];
|
|
223
306
|
break;
|
|
224
307
|
}
|
|
225
308
|
|
|
226
309
|
return {
|
|
227
|
-
_option_id:
|
|
228
|
-
options: [
|
|
229
|
-
taskTypeList,
|
|
230
|
-
...otherOptions,
|
|
231
|
-
...dependentOptions,
|
|
232
|
-
]
|
|
310
|
+
_option_id: 'bedrock-nova-canvas',
|
|
311
|
+
options: [taskTypeList, ...otherOptions, ...dependentOptions],
|
|
233
312
|
};
|
|
234
313
|
} else {
|
|
235
314
|
const max_tokens_limit = getMaxTokensLimitBedrock(model);
|
|
@@ -239,57 +318,59 @@ export function getBedrockOptions(model: string, option?: ModelOptions): ModelOp
|
|
|
239
318
|
const hasSamplingRestriction = hasSamplingParameterRestriction(model);
|
|
240
319
|
const baseConverseOptions: ModelOptionInfoItem[] = [
|
|
241
320
|
{
|
|
242
|
-
name:
|
|
321
|
+
name: 'max_tokens',
|
|
243
322
|
type: OptionType.numeric,
|
|
244
323
|
min: 1,
|
|
245
324
|
max: max_tokens_limit,
|
|
246
325
|
integer: true,
|
|
247
326
|
step: 200,
|
|
248
|
-
description:
|
|
327
|
+
description: 'The maximum number of tokens to generate',
|
|
249
328
|
},
|
|
250
329
|
];
|
|
251
330
|
|
|
252
331
|
// Opus 4.7+ models don't support temperature, top_p
|
|
253
332
|
if (!hasSamplingRestriction) {
|
|
254
333
|
baseConverseOptions.push({
|
|
255
|
-
name:
|
|
334
|
+
name: 'temperature',
|
|
256
335
|
type: OptionType.numeric,
|
|
257
336
|
min: 0.0,
|
|
258
337
|
default: 0.7,
|
|
259
338
|
step: 0.1,
|
|
260
|
-
description:
|
|
339
|
+
description: 'A higher temperature biases toward less likely tokens, making the model more creative',
|
|
261
340
|
});
|
|
262
341
|
baseConverseOptions.push({
|
|
263
|
-
name:
|
|
342
|
+
name: 'top_p',
|
|
264
343
|
type: OptionType.numeric,
|
|
265
344
|
min: 0,
|
|
266
345
|
max: 1,
|
|
267
346
|
step: 0.1,
|
|
268
|
-
description:
|
|
347
|
+
description: 'Limits token sampling to the cumulative probability of the top p tokens',
|
|
269
348
|
});
|
|
270
349
|
}
|
|
271
350
|
|
|
272
351
|
baseConverseOptions.push({
|
|
273
|
-
name:
|
|
352
|
+
name: 'stop_sequence',
|
|
274
353
|
type: OptionType.string_list,
|
|
275
354
|
value: [],
|
|
276
|
-
description:
|
|
355
|
+
description: 'The generation will halt if one of the stop sequences is output',
|
|
277
356
|
});
|
|
278
357
|
|
|
279
|
-
if (model.includes(
|
|
358
|
+
if (model.includes('claude')) {
|
|
280
359
|
// Opus 4.7+ models don't support top_k
|
|
281
|
-
const claudeConverseOptions: ModelOptionInfoItem[] = hasSamplingRestriction
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
360
|
+
const claudeConverseOptions: ModelOptionInfoItem[] = hasSamplingRestriction
|
|
361
|
+
? []
|
|
362
|
+
: [
|
|
363
|
+
{
|
|
364
|
+
name: 'top_k',
|
|
365
|
+
type: OptionType.numeric,
|
|
366
|
+
min: 1,
|
|
367
|
+
integer: true,
|
|
368
|
+
step: 1,
|
|
369
|
+
description: 'Limits token sampling to the top k tokens',
|
|
370
|
+
},
|
|
371
|
+
];
|
|
291
372
|
return {
|
|
292
|
-
_option_id:
|
|
373
|
+
_option_id: 'bedrock-claude',
|
|
293
374
|
options: [
|
|
294
375
|
...baseConverseOptions,
|
|
295
376
|
...claudeConverseOptions,
|
|
@@ -300,115 +381,111 @@ export function getBedrockOptions(model: string, option?: ModelOptions): ModelOp
|
|
|
300
381
|
...buildClaudeCacheTtlOptions((option as BedrockClaudeOptions)?.cache_enabled),
|
|
301
382
|
],
|
|
302
383
|
};
|
|
303
|
-
}
|
|
304
|
-
else if (model.includes("amazon")) {
|
|
384
|
+
} else if (model.includes('amazon')) {
|
|
305
385
|
//Titan models also exists but does not support any additional options
|
|
306
|
-
if (model.includes(
|
|
386
|
+
if (model.includes('nova')) {
|
|
307
387
|
const novaConverseOptions: ModelOptionInfoItem[] = [
|
|
308
388
|
{
|
|
309
|
-
name:
|
|
389
|
+
name: 'top_k',
|
|
310
390
|
type: OptionType.numeric,
|
|
311
391
|
min: 1,
|
|
312
392
|
integer: true,
|
|
313
393
|
step: 1,
|
|
314
|
-
description:
|
|
394
|
+
description: 'Limits token sampling to the top k tokens',
|
|
315
395
|
},
|
|
316
396
|
];
|
|
317
397
|
return {
|
|
318
|
-
_option_id:
|
|
319
|
-
options: [...baseConverseOptions, ...novaConverseOptions]
|
|
320
|
-
}
|
|
398
|
+
_option_id: 'bedrock-nova',
|
|
399
|
+
options: [...baseConverseOptions, ...novaConverseOptions],
|
|
400
|
+
};
|
|
321
401
|
}
|
|
322
|
-
}
|
|
323
|
-
else if (model.includes("mistral")) {
|
|
402
|
+
} else if (model.includes('mistral')) {
|
|
324
403
|
//7b and 8x7b instruct
|
|
325
|
-
if (model.includes(
|
|
404
|
+
if (model.includes('7b')) {
|
|
326
405
|
const mistralConverseOptions: ModelOptionInfoItem[] = [
|
|
327
406
|
{
|
|
328
|
-
name:
|
|
407
|
+
name: 'top_k',
|
|
329
408
|
type: OptionType.numeric,
|
|
330
409
|
min: 1,
|
|
331
410
|
integer: true,
|
|
332
411
|
step: 1,
|
|
333
|
-
description:
|
|
412
|
+
description: 'Limits token sampling to the top k tokens',
|
|
334
413
|
},
|
|
335
414
|
];
|
|
336
415
|
return {
|
|
337
|
-
_option_id:
|
|
338
|
-
options: [...baseConverseOptions, ...mistralConverseOptions]
|
|
339
|
-
}
|
|
416
|
+
_option_id: 'bedrock-mistral',
|
|
417
|
+
options: [...baseConverseOptions, ...mistralConverseOptions],
|
|
418
|
+
};
|
|
340
419
|
}
|
|
341
420
|
//Other models such as Mistral Small, Large and Large 2
|
|
342
421
|
//Support no additional options
|
|
343
|
-
}
|
|
344
|
-
else if (model.includes("ai21")) {
|
|
422
|
+
} else if (model.includes('ai21')) {
|
|
345
423
|
const ai21ConverseOptions: ModelOptionInfoItem[] = [
|
|
346
424
|
{
|
|
347
|
-
name:
|
|
425
|
+
name: 'presence_penalty',
|
|
348
426
|
type: OptionType.numeric,
|
|
349
427
|
min: -2,
|
|
350
428
|
max: 2,
|
|
351
429
|
default: 0,
|
|
352
430
|
step: 0.1,
|
|
353
|
-
description:
|
|
431
|
+
description: 'A higher presence penalty encourages the model to talk about new topics',
|
|
354
432
|
},
|
|
355
433
|
{
|
|
356
|
-
name:
|
|
434
|
+
name: 'frequency_penalty',
|
|
357
435
|
type: OptionType.numeric,
|
|
358
436
|
min: -2,
|
|
359
437
|
max: 2,
|
|
360
438
|
default: 0,
|
|
361
439
|
step: 0.1,
|
|
362
|
-
description:
|
|
440
|
+
description: 'A higher frequency penalty encourages the model to use less common words',
|
|
363
441
|
},
|
|
364
442
|
];
|
|
365
443
|
|
|
366
444
|
return {
|
|
367
|
-
_option_id:
|
|
368
|
-
options: [...baseConverseOptions, ...ai21ConverseOptions]
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
else if (model.includes("cohere.command")) {
|
|
445
|
+
_option_id: 'bedrock-ai21',
|
|
446
|
+
options: [...baseConverseOptions, ...ai21ConverseOptions],
|
|
447
|
+
};
|
|
448
|
+
} else if (model.includes('cohere.command')) {
|
|
372
449
|
const cohereCommandOptions: ModelOptionInfoItem[] = [
|
|
373
450
|
{
|
|
374
|
-
name:
|
|
451
|
+
name: 'top_k',
|
|
375
452
|
type: OptionType.numeric,
|
|
376
453
|
min: 1,
|
|
377
454
|
integer: true,
|
|
378
455
|
step: 1,
|
|
379
|
-
description:
|
|
456
|
+
description: 'Limits token sampling to the top k tokens',
|
|
380
457
|
},
|
|
381
458
|
];
|
|
382
|
-
if (model.includes(
|
|
459
|
+
if (model.includes('command-r')) {
|
|
383
460
|
const cohereCommandROptions: ModelOptionInfoItem[] = [
|
|
384
461
|
{
|
|
385
|
-
name:
|
|
462
|
+
name: 'frequency_penalty',
|
|
386
463
|
type: OptionType.numeric,
|
|
387
464
|
min: -2,
|
|
388
465
|
max: 2,
|
|
389
466
|
default: 0,
|
|
390
467
|
step: 0.1,
|
|
391
|
-
description:
|
|
468
|
+
description: 'A higher frequency penalty encourages the model to use less common words',
|
|
392
469
|
},
|
|
393
470
|
{
|
|
394
|
-
name:
|
|
471
|
+
name: 'presence_penalty',
|
|
395
472
|
type: OptionType.numeric,
|
|
396
473
|
min: -2,
|
|
397
474
|
max: 2,
|
|
398
475
|
default: 0,
|
|
399
476
|
step: 0.1,
|
|
400
|
-
description:
|
|
477
|
+
description: 'A higher presence penalty encourages the model to talk about new topics',
|
|
401
478
|
},
|
|
402
479
|
];
|
|
403
480
|
return {
|
|
404
|
-
_option_id:
|
|
405
|
-
options: [...baseConverseOptions, ...cohereCommandOptions, ...cohereCommandROptions]
|
|
406
|
-
}
|
|
481
|
+
_option_id: 'bedrock-cohere-command',
|
|
482
|
+
options: [...baseConverseOptions, ...cohereCommandOptions, ...cohereCommandROptions],
|
|
483
|
+
};
|
|
407
484
|
}
|
|
408
|
-
} else if (model.includes(
|
|
485
|
+
} else if (model.includes('writer')) {
|
|
409
486
|
const palmyraConverseOptions: ModelOptionInfoItem[] = [
|
|
410
487
|
{
|
|
411
|
-
name:
|
|
488
|
+
name: 'min_tokens',
|
|
412
489
|
type: OptionType.numeric,
|
|
413
490
|
min: 1,
|
|
414
491
|
max: max_tokens_limit,
|
|
@@ -416,91 +493,93 @@ export function getBedrockOptions(model: string, option?: ModelOptions): ModelOp
|
|
|
416
493
|
step: 100,
|
|
417
494
|
},
|
|
418
495
|
{
|
|
419
|
-
name:
|
|
496
|
+
name: 'seed',
|
|
420
497
|
type: OptionType.numeric,
|
|
421
498
|
integer: true,
|
|
422
|
-
description:
|
|
499
|
+
description: 'Random seed for generation',
|
|
423
500
|
},
|
|
424
501
|
{
|
|
425
|
-
name:
|
|
502
|
+
name: 'frequency_penalty',
|
|
426
503
|
type: OptionType.numeric,
|
|
427
504
|
min: -2,
|
|
428
505
|
max: 2,
|
|
429
506
|
default: 0,
|
|
430
507
|
step: 0.1,
|
|
431
|
-
description:
|
|
508
|
+
description: 'A higher frequency penalty encourages the model to use less common words',
|
|
432
509
|
},
|
|
433
510
|
{
|
|
434
|
-
name:
|
|
511
|
+
name: 'presence_penalty',
|
|
435
512
|
type: OptionType.numeric,
|
|
436
513
|
min: -2,
|
|
437
514
|
max: 2,
|
|
438
515
|
default: 0,
|
|
439
516
|
step: 0.1,
|
|
440
|
-
description:
|
|
517
|
+
description: 'A higher presence penalty encourages the model to talk about new topics',
|
|
441
518
|
},
|
|
442
|
-
]
|
|
519
|
+
];
|
|
443
520
|
return {
|
|
444
|
-
_option_id:
|
|
445
|
-
options: [...baseConverseOptions, ...palmyraConverseOptions]
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
else if (model.includes("gpt-oss")) {
|
|
521
|
+
_option_id: 'bedrock-palmyra',
|
|
522
|
+
options: [...baseConverseOptions, ...palmyraConverseOptions],
|
|
523
|
+
};
|
|
524
|
+
} else if (model.includes('gpt-oss')) {
|
|
449
525
|
const gptOssOptions: ModelOptionInfoItem[] = [
|
|
450
526
|
{
|
|
451
|
-
name:
|
|
527
|
+
name: 'reasoning_effort',
|
|
452
528
|
type: OptionType.enum,
|
|
453
529
|
enum: {
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
530
|
+
low: 'low',
|
|
531
|
+
medium: 'medium',
|
|
532
|
+
high: 'high',
|
|
457
533
|
},
|
|
458
|
-
default:
|
|
459
|
-
description:
|
|
534
|
+
default: 'medium',
|
|
535
|
+
description:
|
|
536
|
+
'The reasoning effort of the model, which affects the quality and speed of the response',
|
|
460
537
|
},
|
|
461
538
|
];
|
|
462
539
|
|
|
463
540
|
const baseConverseOptionsNoStop: ModelOptionInfoItem[] = [...baseConverseOptions];
|
|
464
541
|
// Remove stop_sequence for gpt-oss
|
|
465
|
-
baseConverseOptionsNoStop.splice(
|
|
542
|
+
baseConverseOptionsNoStop.splice(
|
|
543
|
+
baseConverseOptionsNoStop.findIndex((o) => o.name === 'stop_sequence'),
|
|
544
|
+
1,
|
|
545
|
+
);
|
|
466
546
|
return {
|
|
467
|
-
_option_id:
|
|
468
|
-
options: [...baseConverseOptionsNoStop, ...gptOssOptions]
|
|
547
|
+
_option_id: 'bedrock-gpt-oss',
|
|
548
|
+
options: [...baseConverseOptionsNoStop, ...gptOssOptions],
|
|
469
549
|
};
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
if (model.includes("pegasus")) {
|
|
550
|
+
} else if (model.includes('twelvelabs')) {
|
|
551
|
+
if (model.includes('pegasus')) {
|
|
473
552
|
const pegasusOptions: ModelOptionInfoItem[] = [
|
|
474
553
|
{
|
|
475
|
-
name:
|
|
554
|
+
name: 'temperature',
|
|
476
555
|
type: OptionType.numeric,
|
|
477
556
|
min: 0.0,
|
|
478
557
|
max: 1.0,
|
|
479
558
|
default: 0.2,
|
|
480
559
|
step: 0.1,
|
|
481
|
-
description:
|
|
560
|
+
description: 'Controls randomness in the output',
|
|
482
561
|
},
|
|
483
562
|
{
|
|
484
|
-
name:
|
|
563
|
+
name: 'max_tokens',
|
|
485
564
|
type: OptionType.numeric,
|
|
486
565
|
min: 1,
|
|
487
566
|
max: 4096,
|
|
488
567
|
integer: true,
|
|
489
568
|
step: 100,
|
|
490
|
-
description:
|
|
491
|
-
}
|
|
569
|
+
description: 'The maximum number of tokens to generate',
|
|
570
|
+
},
|
|
492
571
|
];
|
|
493
572
|
return {
|
|
494
|
-
_option_id:
|
|
495
|
-
options: pegasusOptions
|
|
573
|
+
_option_id: 'bedrock-twelvelabs-pegasus',
|
|
574
|
+
options: pegasusOptions,
|
|
496
575
|
};
|
|
497
576
|
}
|
|
498
577
|
}
|
|
499
578
|
|
|
500
579
|
//Fallback to converse standard.
|
|
501
580
|
return {
|
|
502
|
-
_option_id:
|
|
503
|
-
options: baseConverseOptions
|
|
581
|
+
_option_id: 'bedrock-converse',
|
|
582
|
+
options: baseConverseOptions,
|
|
504
583
|
};
|
|
505
584
|
}
|
|
506
585
|
}
|