@llumiverse/common 0.25.0 → 0.25.1
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/cjs/capability/azure_foundry.js +160 -0
- package/lib/cjs/capability/azure_foundry.js.map +1 -0
- package/lib/cjs/capability/bedrock.js +158 -0
- package/lib/cjs/capability/bedrock.js.map +1 -0
- package/lib/cjs/capability/openai.js +95 -0
- package/lib/cjs/capability/openai.js.map +1 -0
- package/lib/cjs/capability/vertexai.js +80 -0
- package/lib/cjs/capability/vertexai.js.map +1 -0
- package/lib/cjs/capability.js +82 -0
- package/lib/cjs/capability.js.map +1 -0
- package/lib/cjs/index.js +25 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/options/azure_foundry.js +428 -0
- package/lib/cjs/options/azure_foundry.js.map +1 -0
- package/lib/cjs/options/bedrock.js +462 -0
- package/lib/cjs/options/bedrock.js.map +1 -0
- package/lib/cjs/options/fallback.js +35 -0
- package/lib/cjs/options/fallback.js.map +1 -0
- package/lib/cjs/options/groq.js +37 -0
- package/lib/cjs/options/groq.js.map +1 -0
- package/lib/cjs/options/openai.js +126 -0
- package/lib/cjs/options/openai.js.map +1 -0
- package/lib/cjs/options/vertexai.js +503 -0
- package/lib/cjs/options/vertexai.js.map +1 -0
- package/lib/cjs/options.js +30 -0
- package/lib/cjs/options.js.map +1 -0
- package/lib/cjs/package.json +3 -0
- package/lib/cjs/types.js +195 -0
- package/lib/cjs/types.js.map +1 -0
- package/lib/esm/capability/azure_foundry.js +157 -0
- package/lib/esm/capability/azure_foundry.js.map +1 -0
- package/lib/esm/capability/bedrock.js +155 -0
- package/lib/esm/capability/bedrock.js.map +1 -0
- package/lib/esm/capability/openai.js +92 -0
- package/lib/esm/capability/openai.js.map +1 -0
- package/lib/esm/capability/vertexai.js +77 -0
- package/lib/esm/capability/vertexai.js.map +1 -0
- package/lib/esm/capability.js +77 -0
- package/lib/esm/capability.js.map +1 -0
- package/lib/esm/index.js +9 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/options/azure_foundry.js +424 -0
- package/lib/esm/options/azure_foundry.js.map +1 -0
- package/lib/esm/options/bedrock.js +458 -0
- package/lib/esm/options/bedrock.js.map +1 -0
- package/lib/esm/options/fallback.js +32 -0
- package/lib/esm/options/fallback.js.map +1 -0
- package/lib/esm/options/groq.js +34 -0
- package/lib/esm/options/groq.js.map +1 -0
- package/lib/esm/options/openai.js +123 -0
- package/lib/esm/options/openai.js.map +1 -0
- package/lib/esm/options/vertexai.js +498 -0
- package/lib/esm/options/vertexai.js.map +1 -0
- package/lib/esm/options.js +27 -0
- package/lib/esm/options.js.map +1 -0
- package/lib/esm/types.js +192 -0
- package/lib/esm/types.js.map +1 -0
- package/lib/types/capability/azure_foundry.d.ts +7 -0
- package/lib/types/capability/azure_foundry.d.ts.map +1 -0
- package/lib/types/capability/bedrock.d.ts +7 -0
- package/lib/types/capability/bedrock.d.ts.map +1 -0
- package/lib/types/capability/openai.d.ts +13 -0
- package/lib/types/capability/openai.d.ts.map +1 -0
- package/lib/types/capability/vertexai.d.ts +11 -0
- package/lib/types/capability/vertexai.d.ts.map +1 -0
- package/lib/types/capability.d.ts +5 -0
- package/lib/types/capability.d.ts.map +1 -0
- package/lib/types/index.d.ts +9 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/options/azure_foundry.d.ts +52 -0
- package/lib/types/options/azure_foundry.d.ts.map +1 -0
- package/lib/types/options/bedrock.d.ts +52 -0
- package/lib/types/options/bedrock.d.ts.map +1 -0
- package/lib/types/options/fallback.d.ts +13 -0
- package/lib/types/options/fallback.d.ts.map +1 -0
- package/lib/types/options/groq.d.ts +12 -0
- package/lib/types/options/groq.d.ts.map +1 -0
- package/lib/types/options/openai.d.ts +21 -0
- package/lib/types/options/openai.d.ts.map +1 -0
- package/lib/types/options/vertexai.d.ts +74 -0
- package/lib/types/options/vertexai.d.ts.map +1 -0
- package/lib/types/options.d.ts +3 -0
- package/lib/types/options.d.ts.map +1 -0
- package/lib/types/types.d.ts +442 -0
- package/lib/types/types.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { OptionType, SharedOptions } from "../types.js";
|
|
2
|
+
import { textOptionsFallback } from "./fallback.js";
|
|
3
|
+
export function getOpenAiOptions(model, _option) {
|
|
4
|
+
const visionOptions = isVisionModel(model) ? [
|
|
5
|
+
{
|
|
6
|
+
name: "image_detail", type: OptionType.enum, enum: { "Low": "low", "High": "high", "Auto": "auto" },
|
|
7
|
+
default: "auto", description: "Controls how the model processes an input image."
|
|
8
|
+
},
|
|
9
|
+
] : [];
|
|
10
|
+
if (model.includes("o1") || model.includes("o3")) {
|
|
11
|
+
//Is thinking text model
|
|
12
|
+
let max_tokens_limit = 4096;
|
|
13
|
+
if (model.includes("o1")) {
|
|
14
|
+
if (model.includes("preview")) {
|
|
15
|
+
max_tokens_limit = 32768;
|
|
16
|
+
}
|
|
17
|
+
else if (model.includes("mini")) {
|
|
18
|
+
max_tokens_limit = 65536;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
max_tokens_limit = 100000;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else if (model.includes("o3")) {
|
|
25
|
+
max_tokens_limit = 100000;
|
|
26
|
+
}
|
|
27
|
+
const commonOptions = [
|
|
28
|
+
{
|
|
29
|
+
name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1, max: max_tokens_limit,
|
|
30
|
+
integer: true, description: "The maximum number of tokens to generate",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: SharedOptions.stop_sequence, type: OptionType.string_list, value: [],
|
|
34
|
+
description: "The stop sequence of the generated image",
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
const reasoningOptions = model.includes("o3") || isO1Full(model) ? [
|
|
38
|
+
{
|
|
39
|
+
name: "reasoning_effort", type: OptionType.enum, enum: { "Low": "low", "Medium": "medium", "High": "high" },
|
|
40
|
+
default: "medium", description: "How much effort the model should put into reasoning, lower values result in faster responses and less tokens used."
|
|
41
|
+
},
|
|
42
|
+
] : [];
|
|
43
|
+
return {
|
|
44
|
+
_option_id: "openai-thinking",
|
|
45
|
+
options: [
|
|
46
|
+
...commonOptions,
|
|
47
|
+
...reasoningOptions,
|
|
48
|
+
...visionOptions,
|
|
49
|
+
],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
let max_tokens_limit = 4096;
|
|
54
|
+
if (model.includes("gpt-4o")) {
|
|
55
|
+
max_tokens_limit = 16384;
|
|
56
|
+
if (model.includes("gpt-4o-2024-05-13") || model.includes("realtime")) {
|
|
57
|
+
max_tokens_limit = 4096;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else if (model.includes("gpt-4")) {
|
|
61
|
+
if (model.includes("turbo")) {
|
|
62
|
+
max_tokens_limit = 4096;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
max_tokens_limit = 8192;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else if (model.includes("gpt-3-5")) {
|
|
69
|
+
max_tokens_limit = 4096;
|
|
70
|
+
}
|
|
71
|
+
else if (model.includes("gpt-5")) {
|
|
72
|
+
max_tokens_limit = 128000;
|
|
73
|
+
}
|
|
74
|
+
//Is non-thinking text model
|
|
75
|
+
const commonOptions = [
|
|
76
|
+
{
|
|
77
|
+
name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1, max: max_tokens_limit,
|
|
78
|
+
integer: true, step: 200, description: "The maximum number of tokens to generate",
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: "temperature", type: OptionType.numeric, min: 0.0, max: 2.0, default: 0.7,
|
|
82
|
+
integer: false, step: 0.1, description: "A higher temperature biases toward less likely tokens, making the model more creative"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: "top_p", type: OptionType.numeric, min: 0, max: 1,
|
|
86
|
+
integer: false, step: 0.1, description: "Limits token sampling to the cumulative probability of the top p tokens"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
name: "presence_penalty", type: OptionType.numeric, min: -2.0, max: 2.0,
|
|
90
|
+
integer: false, step: 0.1, description: "Penalise tokens if they appear at least once in the text"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: "frequency_penalty", type: OptionType.numeric, min: -2.0, max: 2.0,
|
|
94
|
+
integer: false, step: 0.1, description: "Penalise tokens based on their frequency in the text"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: SharedOptions.stop_sequence, type: OptionType.string_list, value: [],
|
|
98
|
+
description: "The generation will halt if one of the stop sequences is output",
|
|
99
|
+
}
|
|
100
|
+
];
|
|
101
|
+
return {
|
|
102
|
+
_option_id: "openai-text",
|
|
103
|
+
options: [
|
|
104
|
+
...commonOptions,
|
|
105
|
+
...visionOptions,
|
|
106
|
+
],
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
return textOptionsFallback;
|
|
110
|
+
}
|
|
111
|
+
function isO1Full(model) {
|
|
112
|
+
if (model.includes("o1")) {
|
|
113
|
+
if (model.includes("mini") || model.includes("preview")) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
function isVisionModel(model) {
|
|
121
|
+
return model.includes("gpt-4o") || isO1Full(model) || model.includes("gpt-4-turbo");
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/options/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAwBpD,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,OAAsB;IAClE,MAAM,aAAa,GAA0B,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChE;YACI,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;YACnG,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,kDAAkD;SACnF;KACJ,CAAC,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,wBAAwB;QACxB,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5B,gBAAgB,GAAG,KAAK,CAAC;YAC7B,CAAC;iBACI,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,gBAAgB,GAAG,KAAK,CAAC;YAC7B,CAAC;iBACI,CAAC;gBACF,gBAAgB,GAAG,MAAM,CAAC;YAC9B,CAAC;QACL,CAAC;aACI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,gBAAgB,GAAG,MAAM,CAAC;QAC9B,CAAC;QAED,MAAM,aAAa,GAA0B;YACzC;gBACI,IAAI,EAAE,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,gBAAgB;gBACvF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,0CAA0C;aACzE;YACD;gBACI,IAAI,EAAE,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;gBAC1E,WAAW,EAAE,0CAA0C;aAC1D;SACJ,CAAC;QAEF,MAAM,gBAAgB,GAA0B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtF;gBACI,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC3G,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,oHAAoH;aACvJ;SACJ,CAAC,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;YACH,UAAU,EAAE,iBAAiB;YAC7B,OAAO,EAAE;gBACL,GAAG,aAAa;gBAChB,GAAG,gBAAgB;gBACnB,GAAG,aAAa;aACnB;SACJ,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,gBAAgB,GAAG,KAAK,CAAC;YACzB,IAAI,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpE,gBAAgB,GAAG,IAAI,CAAC;YAC5B,CAAC;QACL,CAAC;aACI,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,gBAAgB,GAAG,IAAI,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACJ,gBAAgB,GAAG,IAAI,CAAC;YAC5B,CAAC;QACL,CAAC;aACI,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,gBAAgB,GAAG,IAAI,CAAC;QAC5B,CAAC;aACI,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,gBAAgB,GAAG,MAAM,CAAC;QAC9B,CAAC;QAED,4BAA4B;QAC5B,MAAM,aAAa,GAA0B;YACzC;gBACI,IAAI,EAAE,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,gBAAgB;gBACvF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,0CAA0C;aACpF;YACD;gBACI,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;gBAC/E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,uFAAuF;aAClI;YACD;gBACI,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;gBACvD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,yEAAyE;aACpH;YACD;gBACI,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG;gBACvE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,0DAA0D;aACrG;YACD;gBACI,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG;gBACxE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,sDAAsD;aACjG;YACD;gBACI,IAAI,EAAE,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;gBAC1E,WAAW,EAAE,iEAAiE;aACjF;SACJ,CAAA;QAED,OAAO;YACH,UAAU,EAAE,aAAa;YACzB,OAAO,EAAE;gBACL,GAAG,aAAa;gBAChB,GAAG,aAAa;aACnB;SACJ,CAAA;IACL,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACtD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,498 @@
|
|
|
1
|
+
import { OptionType, SharedOptions } from "../types.js";
|
|
2
|
+
import { textOptionsFallback } from "./fallback.js";
|
|
3
|
+
export var ImagenTaskType;
|
|
4
|
+
(function (ImagenTaskType) {
|
|
5
|
+
ImagenTaskType["TEXT_IMAGE"] = "TEXT_IMAGE";
|
|
6
|
+
ImagenTaskType["EDIT_MODE_INPAINT_REMOVAL"] = "EDIT_MODE_INPAINT_REMOVAL";
|
|
7
|
+
ImagenTaskType["EDIT_MODE_INPAINT_INSERTION"] = "EDIT_MODE_INPAINT_INSERTION";
|
|
8
|
+
ImagenTaskType["EDIT_MODE_BGSWAP"] = "EDIT_MODE_BGSWAP";
|
|
9
|
+
ImagenTaskType["EDIT_MODE_OUTPAINT"] = "EDIT_MODE_OUTPAINT";
|
|
10
|
+
ImagenTaskType["CUSTOMIZATION_SUBJECT"] = "CUSTOMIZATION_SUBJECT";
|
|
11
|
+
ImagenTaskType["CUSTOMIZATION_STYLE"] = "CUSTOMIZATION_STYLE";
|
|
12
|
+
ImagenTaskType["CUSTOMIZATION_CONTROLLED"] = "CUSTOMIZATION_CONTROLLED";
|
|
13
|
+
ImagenTaskType["CUSTOMIZATION_INSTRUCT"] = "CUSTOMIZATION_INSTRUCT";
|
|
14
|
+
})(ImagenTaskType || (ImagenTaskType = {}));
|
|
15
|
+
export var ImagenMaskMode;
|
|
16
|
+
(function (ImagenMaskMode) {
|
|
17
|
+
ImagenMaskMode["MASK_MODE_USER_PROVIDED"] = "MASK_MODE_USER_PROVIDED";
|
|
18
|
+
ImagenMaskMode["MASK_MODE_BACKGROUND"] = "MASK_MODE_BACKGROUND";
|
|
19
|
+
ImagenMaskMode["MASK_MODE_FOREGROUND"] = "MASK_MODE_FOREGROUND";
|
|
20
|
+
ImagenMaskMode["MASK_MODE_SEMANTIC"] = "MASK_MODE_SEMANTIC";
|
|
21
|
+
})(ImagenMaskMode || (ImagenMaskMode = {}));
|
|
22
|
+
export var ThinkingLevel;
|
|
23
|
+
(function (ThinkingLevel) {
|
|
24
|
+
ThinkingLevel["HIGH"] = "HIGH";
|
|
25
|
+
ThinkingLevel["LOW"] = "LOW";
|
|
26
|
+
ThinkingLevel["THINKING_LEVEL_UNSPECIFIED"] = "THINKING_LEVEL_UNSPECIFIED";
|
|
27
|
+
})(ThinkingLevel || (ThinkingLevel = {}));
|
|
28
|
+
export function getVertexAiOptions(model, option) {
|
|
29
|
+
if (model.includes("imagen-")) {
|
|
30
|
+
return getImagenOptions(model, option);
|
|
31
|
+
}
|
|
32
|
+
else if (model.includes("gemini")) {
|
|
33
|
+
return getGeminiOptions(model, option);
|
|
34
|
+
}
|
|
35
|
+
else if (model.includes("claude")) {
|
|
36
|
+
return getClaudeOptions(model, option);
|
|
37
|
+
}
|
|
38
|
+
else if (model.includes("llama")) {
|
|
39
|
+
return getLlamaOptions(model);
|
|
40
|
+
}
|
|
41
|
+
return textOptionsFallback;
|
|
42
|
+
}
|
|
43
|
+
function getImagenOptions(model, option) {
|
|
44
|
+
const commonOptions = [
|
|
45
|
+
{
|
|
46
|
+
name: SharedOptions.number_of_images, type: OptionType.numeric, min: 1, max: 4, default: 1,
|
|
47
|
+
integer: true, description: "Number of Images to generate",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: SharedOptions.seed, type: OptionType.numeric, min: 0, max: 4294967295, default: 12,
|
|
51
|
+
integer: true, description: "The seed of the generated image"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "person_generation", type: OptionType.enum, enum: { "Disallow the inclusion of people or faces in images": "dont_allow", "Allow generation of adults only": "allow_adult", "Allow generation of people of all ages": "allow_all" },
|
|
55
|
+
default: "allow_adult", description: "The safety setting for allowing the generation of people in the image"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: "safety_setting", type: OptionType.enum, enum: { "Block very few problematic prompts and responses": "block_none", "Block only few problematic prompts and responses": "block_only_high", "Block some problematic prompts and responses": "block_medium_and_above", "Strictest filtering": "block_low_and_above" },
|
|
59
|
+
default: "block_medium_and_above", description: "The overall safety setting"
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
const outputOptions = [
|
|
63
|
+
{
|
|
64
|
+
name: "image_file_type", type: OptionType.enum, enum: { "JPEG": "image/jpeg", "PNG": "image/png" },
|
|
65
|
+
default: "image/png", description: "The file type of the generated image",
|
|
66
|
+
refresh: true,
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
const jpegQuality = {
|
|
70
|
+
name: "jpeg_compression_quality", type: OptionType.numeric, min: 0, max: 100, default: 75,
|
|
71
|
+
integer: true, description: "The compression quality of the JPEG image",
|
|
72
|
+
};
|
|
73
|
+
if (option?.image_file_type === "image/jpeg") {
|
|
74
|
+
outputOptions.push(jpegQuality);
|
|
75
|
+
}
|
|
76
|
+
if (model.includes("generate")) {
|
|
77
|
+
// Generate models
|
|
78
|
+
const modeOptions = [
|
|
79
|
+
{
|
|
80
|
+
name: "aspect_ratio", type: OptionType.enum, enum: { "1:1": "1:1", "4:3": "4:3", "3:4": "3:4", "16:9": "16:9", "9:16": "9:16" },
|
|
81
|
+
default: "1:1", description: "The aspect ratio of the generated image"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: "add_watermark", type: OptionType.boolean, default: false, description: "Add an invisible watermark to the generated image, useful for detection of AI images"
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
const enhanceOptions = !model.includes("generate-001") ? [
|
|
88
|
+
{
|
|
89
|
+
name: "enhance_prompt", type: OptionType.boolean, default: true, description: "VertexAI automatically rewrites the prompt to better reflect the prompt's intent."
|
|
90
|
+
},
|
|
91
|
+
] : [];
|
|
92
|
+
return {
|
|
93
|
+
_option_id: "vertexai-imagen",
|
|
94
|
+
options: [
|
|
95
|
+
...commonOptions,
|
|
96
|
+
...modeOptions,
|
|
97
|
+
...outputOptions,
|
|
98
|
+
...enhanceOptions,
|
|
99
|
+
]
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
if (model.includes("capability")) {
|
|
103
|
+
// Edit models
|
|
104
|
+
let guidanceScaleDefault = 75;
|
|
105
|
+
if (option?.edit_mode === ImagenTaskType.EDIT_MODE_INPAINT_INSERTION) {
|
|
106
|
+
guidanceScaleDefault = 60;
|
|
107
|
+
}
|
|
108
|
+
const modeOptions = [
|
|
109
|
+
{
|
|
110
|
+
name: "edit_mode", type: OptionType.enum,
|
|
111
|
+
enum: {
|
|
112
|
+
"EDIT_MODE_INPAINT_REMOVAL": "EDIT_MODE_INPAINT_REMOVAL",
|
|
113
|
+
"EDIT_MODE_INPAINT_INSERTION": "EDIT_MODE_INPAINT_INSERTION",
|
|
114
|
+
"EDIT_MODE_BGSWAP": "EDIT_MODE_BGSWAP",
|
|
115
|
+
"EDIT_MODE_OUTPAINT": "EDIT_MODE_OUTPAINT",
|
|
116
|
+
"CUSTOMIZATION_SUBJECT": "CUSTOMIZATION_SUBJECT",
|
|
117
|
+
"CUSTOMIZATION_STYLE": "CUSTOMIZATION_STYLE",
|
|
118
|
+
"CUSTOMIZATION_CONTROLLED": "CUSTOMIZATION_CONTROLLED",
|
|
119
|
+
"CUSTOMIZATION_INSTRUCT": "CUSTOMIZATION_INSTRUCT",
|
|
120
|
+
},
|
|
121
|
+
description: "The editing mode. CUSTOMIZATION options use few-shot learning to generate images based on a few examples."
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: "guidance_scale", type: OptionType.numeric, min: 0, max: 500, default: guidanceScaleDefault,
|
|
125
|
+
integer: true, description: "How closely the generation follows the prompt"
|
|
126
|
+
}
|
|
127
|
+
];
|
|
128
|
+
const maskOptions = (option?.edit_mode?.includes("EDIT")) ? [
|
|
129
|
+
{
|
|
130
|
+
name: "mask_mode", type: OptionType.enum,
|
|
131
|
+
enum: {
|
|
132
|
+
"MASK_MODE_USER_PROVIDED": "MASK_MODE_USER_PROVIDED",
|
|
133
|
+
"MASK_MODE_BACKGROUND": "MASK_MODE_BACKGROUND",
|
|
134
|
+
"MASK_MODE_FOREGROUND": "MASK_MODE_FOREGROUND",
|
|
135
|
+
"MASK_MODE_SEMANTIC": "MASK_MODE_SEMANTIC",
|
|
136
|
+
},
|
|
137
|
+
default: "MASK_MODE_USER_PROVIDED",
|
|
138
|
+
description: "How should the mask for the generation be provided"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: "mask_dilation", type: OptionType.numeric, min: 0, max: 1,
|
|
142
|
+
integer: true, description: "The mask dilation, grows the mask by a percentage of image width to compensate for imprecise masks."
|
|
143
|
+
},
|
|
144
|
+
] : [];
|
|
145
|
+
const maskClassOptions = (option?.mask_mode === ImagenMaskMode.MASK_MODE_SEMANTIC) ? [
|
|
146
|
+
{
|
|
147
|
+
name: "mask_class", type: OptionType.string_list, default: [],
|
|
148
|
+
description: "Input Class IDs. Create a mask based on image class, based on https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/imagen-api-customization#segment-ids"
|
|
149
|
+
}
|
|
150
|
+
] : [];
|
|
151
|
+
const editOptions = option?.edit_mode?.includes("EDIT") ? [
|
|
152
|
+
{
|
|
153
|
+
name: "edit_steps", type: OptionType.numeric, default: 75,
|
|
154
|
+
integer: true, description: "The number of steps for the base image generation, more steps means more time and better quality"
|
|
155
|
+
},
|
|
156
|
+
] : [];
|
|
157
|
+
const customizationOptions = option?.edit_mode === ImagenTaskType.CUSTOMIZATION_CONTROLLED
|
|
158
|
+
|| option?.edit_mode === ImagenTaskType.CUSTOMIZATION_SUBJECT ? [
|
|
159
|
+
{
|
|
160
|
+
name: "controlType", type: OptionType.enum, enum: { "Face Mesh": "CONTROL_TYPE_FACE_MESH", "Canny": "CONTROL_TYPE_CANNY", "Scribble": "CONTROL_TYPE_SCRIBBLE" },
|
|
161
|
+
default: "CONTROL_TYPE_CANNY", description: "Method used to generate the control image"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: "controlImageComputation", type: OptionType.boolean, default: true, description: "Should the control image be computed from the input image, or is it provided"
|
|
165
|
+
}
|
|
166
|
+
] : [];
|
|
167
|
+
return {
|
|
168
|
+
_option_id: "vertexai-imagen",
|
|
169
|
+
options: [
|
|
170
|
+
...modeOptions,
|
|
171
|
+
...commonOptions,
|
|
172
|
+
...maskOptions,
|
|
173
|
+
...maskClassOptions,
|
|
174
|
+
...editOptions,
|
|
175
|
+
...customizationOptions,
|
|
176
|
+
...outputOptions,
|
|
177
|
+
]
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
return textOptionsFallback;
|
|
181
|
+
}
|
|
182
|
+
function getGeminiOptions(model, _option) {
|
|
183
|
+
// Special handling for gemini-2.5-flash-image
|
|
184
|
+
if (model.includes("gemini-2.5-flash-image")) {
|
|
185
|
+
const options = [
|
|
186
|
+
{
|
|
187
|
+
name: SharedOptions.temperature,
|
|
188
|
+
type: OptionType.numeric,
|
|
189
|
+
min: 0.0,
|
|
190
|
+
max: 2.0,
|
|
191
|
+
default: 0.7,
|
|
192
|
+
step: 0.01,
|
|
193
|
+
description: "Sampling temperature"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
name: SharedOptions.top_p,
|
|
197
|
+
type: OptionType.numeric,
|
|
198
|
+
min: 0.0,
|
|
199
|
+
max: 1.0,
|
|
200
|
+
step: 0.01,
|
|
201
|
+
description: "Nucleus sampling probability"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
name: "candidate_count",
|
|
205
|
+
type: OptionType.numeric,
|
|
206
|
+
min: 1,
|
|
207
|
+
max: 8,
|
|
208
|
+
default: 1,
|
|
209
|
+
integer: true,
|
|
210
|
+
description: "Number of candidates to generate"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
name: SharedOptions.max_tokens,
|
|
214
|
+
type: OptionType.numeric,
|
|
215
|
+
min: 1,
|
|
216
|
+
max: 32768,
|
|
217
|
+
integer: true,
|
|
218
|
+
step: 200,
|
|
219
|
+
description: "Maximum output tokens"
|
|
220
|
+
}
|
|
221
|
+
];
|
|
222
|
+
return {
|
|
223
|
+
_option_id: "vertexai-gemini",
|
|
224
|
+
options
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
// Special handling for gemini-2.5-flash-image and gemini-3-pro-image
|
|
228
|
+
if (model.includes("gemini-2.5-flash-image") || model.includes("gemini-3-pro-image")) {
|
|
229
|
+
const max_tokens_limit = 32768;
|
|
230
|
+
const excludeOptions = ["max_tokens", "presence_penalty", "frequency_penalty", "seed", "top_k"];
|
|
231
|
+
let commonOptions = textOptionsFallback.options.filter((option) => !excludeOptions.includes(option.name));
|
|
232
|
+
// Set max temperature to 2.0 for gemini-2.5-flash-image
|
|
233
|
+
commonOptions = commonOptions.map((option) => {
|
|
234
|
+
if (option.name === SharedOptions.temperature &&
|
|
235
|
+
option.type === OptionType.numeric) {
|
|
236
|
+
return {
|
|
237
|
+
...option,
|
|
238
|
+
max: 2.0,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
return option;
|
|
242
|
+
});
|
|
243
|
+
const max_tokens = [{
|
|
244
|
+
name: SharedOptions.max_tokens,
|
|
245
|
+
type: OptionType.numeric,
|
|
246
|
+
min: 1,
|
|
247
|
+
max: max_tokens_limit,
|
|
248
|
+
integer: true,
|
|
249
|
+
step: 200,
|
|
250
|
+
description: "Maximum output tokens"
|
|
251
|
+
}];
|
|
252
|
+
const imageAspectRatio = [{
|
|
253
|
+
name: "image_aspect_ratio",
|
|
254
|
+
type: OptionType.enum,
|
|
255
|
+
enum: {
|
|
256
|
+
"1:1": "1:1",
|
|
257
|
+
"2:3": "2:3",
|
|
258
|
+
"3:2": "3:2",
|
|
259
|
+
"3:4": "3:4",
|
|
260
|
+
"4:3": "4:3",
|
|
261
|
+
"9:16": "9:16",
|
|
262
|
+
"16:9": "16:9",
|
|
263
|
+
"21:9": "21:9"
|
|
264
|
+
},
|
|
265
|
+
description: "Aspect ratio of the generated images"
|
|
266
|
+
}];
|
|
267
|
+
return {
|
|
268
|
+
_option_id: "vertexai-gemini",
|
|
269
|
+
options: [
|
|
270
|
+
...max_tokens,
|
|
271
|
+
...commonOptions,
|
|
272
|
+
...imageAspectRatio,
|
|
273
|
+
]
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
const max_tokens_limit = getGeminiMaxTokensLimit(model);
|
|
277
|
+
const excludeOptions = ["max_tokens"];
|
|
278
|
+
const commonOptions = textOptionsFallback.options.filter((option) => !excludeOptions.includes(option.name));
|
|
279
|
+
const max_tokens = [{
|
|
280
|
+
name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1, max: max_tokens_limit,
|
|
281
|
+
integer: true, step: 200, description: "The maximum number of tokens to generate"
|
|
282
|
+
}];
|
|
283
|
+
const seedOption = {
|
|
284
|
+
name: SharedOptions.seed, type: OptionType.numeric, integer: true, description: "The seed for the generation, useful for reproducibility"
|
|
285
|
+
};
|
|
286
|
+
if (model.includes("-3-")) {
|
|
287
|
+
const geminiThinkingOptions = [
|
|
288
|
+
{
|
|
289
|
+
name: "include_thoughts",
|
|
290
|
+
type: OptionType.boolean,
|
|
291
|
+
default: false,
|
|
292
|
+
description: "Include the model's reasoning process in the response"
|
|
293
|
+
}
|
|
294
|
+
];
|
|
295
|
+
return {
|
|
296
|
+
_option_id: "vertexai-gemini",
|
|
297
|
+
options: [
|
|
298
|
+
...max_tokens,
|
|
299
|
+
...commonOptions,
|
|
300
|
+
seedOption,
|
|
301
|
+
...geminiThinkingOptions,
|
|
302
|
+
]
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
if (model.includes("-2.5-")) {
|
|
306
|
+
// Gemini 2.5 thinking models
|
|
307
|
+
// Set budget token ranges based on model variant
|
|
308
|
+
let budgetMin = -1;
|
|
309
|
+
let budgetMax = 24576;
|
|
310
|
+
let budgetDescription = "";
|
|
311
|
+
if (model.includes("flash-lite")) {
|
|
312
|
+
budgetMin = -1;
|
|
313
|
+
budgetMax = 24576;
|
|
314
|
+
budgetDescription = "The target number of tokens to use for reasoning. " +
|
|
315
|
+
"Flash Lite default: Model does not think. " +
|
|
316
|
+
"Range: 512-24576 tokens. " +
|
|
317
|
+
"Set to 0 to disable thinking, -1 for dynamic thinking.";
|
|
318
|
+
}
|
|
319
|
+
else if (model.includes("flash")) {
|
|
320
|
+
budgetMin = -1;
|
|
321
|
+
budgetMax = 24576;
|
|
322
|
+
budgetDescription = "The target number of tokens to use for reasoning. " +
|
|
323
|
+
"Flash default: Dynamic thinking (model decides when and how much to think). " +
|
|
324
|
+
"Range: 0-24576 tokens. " +
|
|
325
|
+
"Set to 0 to disable thinking, -1 for dynamic thinking.";
|
|
326
|
+
}
|
|
327
|
+
else if (model.includes("pro")) {
|
|
328
|
+
budgetMin = -1;
|
|
329
|
+
budgetMax = 32768;
|
|
330
|
+
budgetDescription = "The target number of tokens to use for reasoning. " +
|
|
331
|
+
"Pro default: Dynamic thinking (model decides when and how much to think). " +
|
|
332
|
+
"Range: 128-32768 tokens. " +
|
|
333
|
+
"Cannot disable thinking - minimum 128 tokens. Set to -1 for dynamic thinking.";
|
|
334
|
+
}
|
|
335
|
+
const geminiThinkingOptions = [
|
|
336
|
+
{
|
|
337
|
+
name: "include_thoughts",
|
|
338
|
+
type: OptionType.boolean,
|
|
339
|
+
default: false,
|
|
340
|
+
description: "Include the model's reasoning process in the response"
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
name: "thinking_budget_tokens",
|
|
344
|
+
type: OptionType.numeric,
|
|
345
|
+
min: budgetMin,
|
|
346
|
+
max: budgetMax,
|
|
347
|
+
default: undefined,
|
|
348
|
+
integer: true,
|
|
349
|
+
step: 100,
|
|
350
|
+
description: budgetDescription,
|
|
351
|
+
}
|
|
352
|
+
];
|
|
353
|
+
return {
|
|
354
|
+
_option_id: "vertexai-gemini",
|
|
355
|
+
options: [
|
|
356
|
+
...max_tokens,
|
|
357
|
+
...commonOptions,
|
|
358
|
+
seedOption,
|
|
359
|
+
...geminiThinkingOptions,
|
|
360
|
+
]
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
return {
|
|
364
|
+
_option_id: "vertexai-gemini",
|
|
365
|
+
options: [
|
|
366
|
+
...max_tokens,
|
|
367
|
+
...commonOptions,
|
|
368
|
+
seedOption,
|
|
369
|
+
]
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
function getClaudeOptions(model, option) {
|
|
373
|
+
const max_tokens_limit = getClaudeMaxTokensLimit(model);
|
|
374
|
+
const excludeOptions = ["max_tokens", "presence_penalty", "frequency_penalty"];
|
|
375
|
+
const commonOptions = textOptionsFallback.options.filter((option) => !excludeOptions.includes(option.name));
|
|
376
|
+
const max_tokens = [{
|
|
377
|
+
name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1, max: max_tokens_limit,
|
|
378
|
+
integer: true, step: 200, description: "The maximum number of tokens to generate"
|
|
379
|
+
}];
|
|
380
|
+
if (model.includes("-3-7") || model.includes("-4")) {
|
|
381
|
+
const claudeModeOptions = [
|
|
382
|
+
{
|
|
383
|
+
name: "thinking_mode",
|
|
384
|
+
type: OptionType.boolean,
|
|
385
|
+
default: false,
|
|
386
|
+
description: "If true, use the extended reasoning mode"
|
|
387
|
+
},
|
|
388
|
+
];
|
|
389
|
+
const claudeThinkingOptions = option?.thinking_mode ? [
|
|
390
|
+
{
|
|
391
|
+
name: "thinking_budget_tokens",
|
|
392
|
+
type: OptionType.numeric,
|
|
393
|
+
min: 1024,
|
|
394
|
+
default: 1024,
|
|
395
|
+
integer: true,
|
|
396
|
+
step: 100,
|
|
397
|
+
description: "The target number of tokens to use for reasoning, not a hard limit."
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
name: "include_thoughts",
|
|
401
|
+
type: OptionType.boolean,
|
|
402
|
+
default: false,
|
|
403
|
+
description: "Include the model's reasoning process in the response"
|
|
404
|
+
}
|
|
405
|
+
] : [];
|
|
406
|
+
return {
|
|
407
|
+
_option_id: "vertexai-claude",
|
|
408
|
+
options: [
|
|
409
|
+
...max_tokens,
|
|
410
|
+
...commonOptions,
|
|
411
|
+
...claudeModeOptions,
|
|
412
|
+
...claudeThinkingOptions,
|
|
413
|
+
]
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
return {
|
|
417
|
+
_option_id: "vertexai-claude",
|
|
418
|
+
options: [
|
|
419
|
+
...max_tokens,
|
|
420
|
+
...commonOptions,
|
|
421
|
+
]
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
function getLlamaOptions(model) {
|
|
425
|
+
const max_tokens_limit = getLlamaMaxTokensLimit(model);
|
|
426
|
+
const excludeOptions = ["max_tokens", "presence_penalty", "frequency_penalty", "stop_sequence"];
|
|
427
|
+
let commonOptions = textOptionsFallback.options.filter((option) => !excludeOptions.includes(option.name));
|
|
428
|
+
const max_tokens = [{
|
|
429
|
+
name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1, max: max_tokens_limit,
|
|
430
|
+
integer: true, step: 200, description: "The maximum number of tokens to generate"
|
|
431
|
+
}];
|
|
432
|
+
// Set max temperature to 1.0 for Llama models
|
|
433
|
+
commonOptions = commonOptions.map((option) => {
|
|
434
|
+
if (option.name === SharedOptions.temperature &&
|
|
435
|
+
option.type === OptionType.numeric) {
|
|
436
|
+
return {
|
|
437
|
+
...option,
|
|
438
|
+
max: 1.0,
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
return option;
|
|
442
|
+
});
|
|
443
|
+
return {
|
|
444
|
+
_option_id: "text-fallback",
|
|
445
|
+
options: [
|
|
446
|
+
...max_tokens,
|
|
447
|
+
...commonOptions,
|
|
448
|
+
]
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
function getGeminiMaxTokensLimit(model) {
|
|
452
|
+
if (model.includes("gemini-2.5-flash-image") || model.includes("gemini-3-pro-image")) {
|
|
453
|
+
return 32768;
|
|
454
|
+
}
|
|
455
|
+
if (model.includes("thinking") || model.includes("-2.5-") || model.includes("-3-")) {
|
|
456
|
+
return 65536;
|
|
457
|
+
}
|
|
458
|
+
if (model.includes("ultra") || model.includes("vision")) {
|
|
459
|
+
return 2048;
|
|
460
|
+
}
|
|
461
|
+
return 8192;
|
|
462
|
+
}
|
|
463
|
+
function getClaudeMaxTokensLimit(model) {
|
|
464
|
+
if (model.includes("-4-")) {
|
|
465
|
+
if (model.includes("opus-")) {
|
|
466
|
+
return 32768;
|
|
467
|
+
}
|
|
468
|
+
return 65536;
|
|
469
|
+
}
|
|
470
|
+
else if (model.includes("-3-7-")) {
|
|
471
|
+
return 128000;
|
|
472
|
+
}
|
|
473
|
+
else if (model.includes("-3-5-")) {
|
|
474
|
+
return 8192;
|
|
475
|
+
}
|
|
476
|
+
else {
|
|
477
|
+
return 4096;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
function getLlamaMaxTokensLimit(_model) {
|
|
481
|
+
return 8192;
|
|
482
|
+
}
|
|
483
|
+
export function getMaxTokensLimitVertexAi(model) {
|
|
484
|
+
if (model.includes("imagen-")) {
|
|
485
|
+
return 0; // Imagen models do not have a max tokens limit in the same way as text models
|
|
486
|
+
}
|
|
487
|
+
else if (model.includes("claude")) {
|
|
488
|
+
return getClaudeMaxTokensLimit(model);
|
|
489
|
+
}
|
|
490
|
+
else if (model.includes("gemini")) {
|
|
491
|
+
return getGeminiMaxTokensLimit(model);
|
|
492
|
+
}
|
|
493
|
+
else if (model.includes("llama")) {
|
|
494
|
+
return getLlamaMaxTokensLimit(model);
|
|
495
|
+
}
|
|
496
|
+
return 8192; // Default fallback limit
|
|
497
|
+
}
|
|
498
|
+
//# sourceMappingURL=vertexai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vertexai.js","sourceRoot":"","sources":["../../../src/options/vertexai.ts"],"names":[],"mappings":"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"}
|