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