hazo_llm_api 1.0.4 → 1.0.5
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/dist/components/index.d.ts +7 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +7 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/layout/index.d.ts +7 -0
- package/dist/components/layout/index.d.ts.map +1 -0
- package/dist/components/layout/index.js +7 -0
- package/dist/components/layout/index.js.map +1 -0
- package/dist/components/layout/layout.d.ts +21 -0
- package/dist/components/layout/layout.d.ts.map +1 -0
- package/dist/components/layout/layout.js +18 -0
- package/dist/components/layout/layout.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/config/config_parser.d.ts +131 -0
- package/dist/lib/config/config_parser.d.ts.map +1 -0
- package/dist/lib/config/config_parser.js +297 -0
- package/dist/lib/config/config_parser.js.map +1 -0
- package/dist/lib/config/index.d.ts +8 -0
- package/dist/lib/config/index.d.ts.map +1 -0
- package/dist/lib/config/index.js +22 -0
- package/dist/lib/config/index.js.map +1 -0
- package/dist/lib/config/provider_loader.d.ts +113 -0
- package/dist/lib/config/provider_loader.d.ts.map +1 -0
- package/dist/lib/config/provider_loader.js +169 -0
- package/dist/lib/config/provider_loader.js.map +1 -0
- package/dist/lib/database/index.d.ts +8 -0
- package/dist/lib/database/index.d.ts.map +1 -0
- package/dist/lib/database/index.js +10 -0
- package/dist/lib/database/index.js.map +1 -0
- package/dist/lib/database/init_database.d.ts +118 -0
- package/dist/lib/database/init_database.d.ts.map +1 -0
- package/dist/lib/database/init_database.js +591 -0
- package/dist/lib/database/init_database.js.map +1 -0
- package/dist/lib/database/utils.d.ts +53 -0
- package/dist/lib/database/utils.d.ts.map +1 -0
- package/dist/lib/database/utils.js +87 -0
- package/dist/lib/database/utils.js.map +1 -0
- package/dist/lib/index.d.ts +14 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +17 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/llm_api/chain_helpers.d.ts +117 -0
- package/dist/lib/llm_api/chain_helpers.d.ts.map +1 -0
- package/dist/lib/llm_api/chain_helpers.js +445 -0
- package/dist/lib/llm_api/chain_helpers.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_image_image.d.ts +26 -0
- package/dist/lib/llm_api/hazo_llm_image_image.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_image_image.js +94 -0
- package/dist/lib/llm_api/hazo_llm_image_image.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_image_image_text.d.ts +26 -0
- package/dist/lib/llm_api/hazo_llm_image_image_text.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_image_image_text.js +222 -0
- package/dist/lib/llm_api/hazo_llm_image_image_text.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_image_text.d.ts +20 -0
- package/dist/lib/llm_api/hazo_llm_image_text.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_image_text.js +78 -0
- package/dist/lib/llm_api/hazo_llm_image_text.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_prompt_chain.d.ts +20 -0
- package/dist/lib/llm_api/hazo_llm_prompt_chain.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_prompt_chain.js +368 -0
- package/dist/lib/llm_api/hazo_llm_prompt_chain.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_text_image.d.ts +20 -0
- package/dist/lib/llm_api/hazo_llm_text_image.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_text_image.js +69 -0
- package/dist/lib/llm_api/hazo_llm_text_image.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_text_image_text.d.ts +26 -0
- package/dist/lib/llm_api/hazo_llm_text_image_text.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_text_image_text.js +154 -0
- package/dist/lib/llm_api/hazo_llm_text_image_text.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_text_text.d.ts +20 -0
- package/dist/lib/llm_api/hazo_llm_text_text.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_text_text.js +91 -0
- package/dist/lib/llm_api/hazo_llm_text_text.js.map +1 -0
- package/dist/lib/llm_api/index.d.ts +223 -0
- package/dist/lib/llm_api/index.d.ts.map +1 -0
- package/dist/lib/llm_api/index.js +1220 -0
- package/dist/lib/llm_api/index.js.map +1 -0
- package/dist/lib/llm_api/provider_helper.d.ts +163 -0
- package/dist/lib/llm_api/provider_helper.d.ts.map +1 -0
- package/dist/lib/llm_api/provider_helper.js +346 -0
- package/dist/lib/llm_api/provider_helper.js.map +1 -0
- package/dist/lib/llm_api/types.d.ts +667 -0
- package/dist/lib/llm_api/types.d.ts.map +1 -0
- package/dist/lib/llm_api/types.js +49 -0
- package/dist/lib/llm_api/types.js.map +1 -0
- package/dist/lib/prompts/get_prompt.d.ts +76 -0
- package/dist/lib/prompts/get_prompt.d.ts.map +1 -0
- package/dist/lib/prompts/get_prompt.js +342 -0
- package/dist/lib/prompts/get_prompt.js.map +1 -0
- package/dist/lib/prompts/index.d.ts +9 -0
- package/dist/lib/prompts/index.d.ts.map +1 -0
- package/dist/lib/prompts/index.js +9 -0
- package/dist/lib/prompts/index.js.map +1 -0
- package/dist/lib/prompts/prompt_cache.d.ts +151 -0
- package/dist/lib/prompts/prompt_cache.d.ts.map +1 -0
- package/dist/lib/prompts/prompt_cache.js +276 -0
- package/dist/lib/prompts/prompt_cache.js.map +1 -0
- package/dist/lib/prompts/substitute_variables.d.ts +38 -0
- package/dist/lib/prompts/substitute_variables.d.ts.map +1 -0
- package/dist/lib/prompts/substitute_variables.js +171 -0
- package/dist/lib/prompts/substitute_variables.js.map +1 -0
- package/dist/lib/providers/gemini/gemini_client.d.ts +25 -0
- package/dist/lib/providers/gemini/gemini_client.d.ts.map +1 -0
- package/dist/lib/providers/gemini/gemini_client.js +235 -0
- package/dist/lib/providers/gemini/gemini_client.js.map +1 -0
- package/dist/lib/providers/gemini/gemini_provider.d.ts +111 -0
- package/dist/lib/providers/gemini/gemini_provider.d.ts.map +1 -0
- package/dist/lib/providers/gemini/gemini_provider.js +431 -0
- package/dist/lib/providers/gemini/gemini_provider.js.map +1 -0
- package/dist/lib/providers/gemini/index.d.ts +8 -0
- package/dist/lib/providers/gemini/index.d.ts.map +1 -0
- package/dist/lib/providers/gemini/index.js +8 -0
- package/dist/lib/providers/gemini/index.js.map +1 -0
- package/dist/lib/providers/index.d.ts +8 -0
- package/dist/lib/providers/index.d.ts.map +1 -0
- package/dist/lib/providers/index.js +8 -0
- package/dist/lib/providers/index.js.map +1 -0
- package/dist/lib/providers/qwen/index.d.ts +8 -0
- package/dist/lib/providers/qwen/index.d.ts.map +1 -0
- package/dist/lib/providers/qwen/index.js +8 -0
- package/dist/lib/providers/qwen/index.js.map +1 -0
- package/dist/lib/providers/qwen/qwen_client.d.ts +154 -0
- package/dist/lib/providers/qwen/qwen_client.d.ts.map +1 -0
- package/dist/lib/providers/qwen/qwen_client.js +1002 -0
- package/dist/lib/providers/qwen/qwen_client.js.map +1 -0
- package/dist/lib/providers/qwen/qwen_provider.d.ts +139 -0
- package/dist/lib/providers/qwen/qwen_provider.d.ts.map +1 -0
- package/dist/lib/providers/qwen/qwen_provider.js +304 -0
- package/dist/lib/providers/qwen/qwen_provider.js.map +1 -0
- package/dist/lib/providers/registry.d.ts +66 -0
- package/dist/lib/providers/registry.d.ts.map +1 -0
- package/dist/lib/providers/registry.js +158 -0
- package/dist/lib/providers/registry.js.map +1 -0
- package/dist/lib/providers/types.d.ts +145 -0
- package/dist/lib/providers/types.d.ts.map +1 -0
- package/dist/lib/providers/types.js +37 -0
- package/dist/lib/providers/types.js.map +1 -0
- package/dist/server.d.ts +27 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +50 -0
- package/dist/server.js.map +1 -0
- package/package.json +12 -1
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini Provider Implementation
|
|
3
|
+
*
|
|
4
|
+
* Implements the LLMProvider interface for Google's Gemini API.
|
|
5
|
+
* Handles all Gemini-specific logic including API calls, configuration, and capabilities.
|
|
6
|
+
*/
|
|
7
|
+
import { SERVICE_TYPES } from '../types.js';
|
|
8
|
+
import { call_gemini_api } from './gemini_client.js';
|
|
9
|
+
import { get_gemini_api_url } from './gemini_client.js';
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// Gemini Provider Class
|
|
12
|
+
// =============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Gemini LLM Provider
|
|
15
|
+
* Implements the LLMProvider interface for Google Gemini API
|
|
16
|
+
*/
|
|
17
|
+
export class GeminiProvider {
|
|
18
|
+
/**
|
|
19
|
+
* Create a new Gemini provider instance
|
|
20
|
+
* @param config - Gemini provider configuration
|
|
21
|
+
*/
|
|
22
|
+
constructor(config) {
|
|
23
|
+
this.name = 'gemini';
|
|
24
|
+
this.api_key = config.api_key;
|
|
25
|
+
this.api_url = config.api_url || get_gemini_api_url();
|
|
26
|
+
this.api_url_image = config.api_url_image;
|
|
27
|
+
this.model_text_text = config.model_text_text;
|
|
28
|
+
this.model_image_text = config.model_image_text;
|
|
29
|
+
this.model_text_image = config.model_text_image;
|
|
30
|
+
this.model_image_image = config.model_image_image;
|
|
31
|
+
this.text_config = config.text_config;
|
|
32
|
+
this.image_config = config.image_config;
|
|
33
|
+
this.logger = config.logger;
|
|
34
|
+
// Set capabilities - default to all if not specified
|
|
35
|
+
if (config.capabilities && config.capabilities.length > 0) {
|
|
36
|
+
this.capabilities = new Set(config.capabilities);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
// Default: support all services
|
|
40
|
+
this.capabilities = new Set([
|
|
41
|
+
SERVICE_TYPES.TEXT_TEXT,
|
|
42
|
+
SERVICE_TYPES.IMAGE_TEXT,
|
|
43
|
+
SERVICE_TYPES.TEXT_IMAGE,
|
|
44
|
+
SERVICE_TYPES.IMAGE_IMAGE,
|
|
45
|
+
]);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get the provider name
|
|
50
|
+
* @returns Provider name
|
|
51
|
+
*/
|
|
52
|
+
get_name() {
|
|
53
|
+
return this.name;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get the capabilities this provider supports
|
|
57
|
+
* @returns Set of supported service types
|
|
58
|
+
*/
|
|
59
|
+
get_capabilities() {
|
|
60
|
+
return new Set(this.capabilities); // Return a copy
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get the model name configured for a specific service type
|
|
64
|
+
* @param service_type - The service type to get the model for
|
|
65
|
+
* @returns Model name or undefined if not configured
|
|
66
|
+
*/
|
|
67
|
+
get_model_for_service(service_type) {
|
|
68
|
+
switch (service_type) {
|
|
69
|
+
case SERVICE_TYPES.TEXT_TEXT:
|
|
70
|
+
return this.model_text_text;
|
|
71
|
+
case SERVICE_TYPES.IMAGE_TEXT:
|
|
72
|
+
return this.model_image_text;
|
|
73
|
+
case SERVICE_TYPES.TEXT_IMAGE:
|
|
74
|
+
return this.model_text_image;
|
|
75
|
+
case SERVICE_TYPES.IMAGE_IMAGE:
|
|
76
|
+
return this.model_image_image;
|
|
77
|
+
default:
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Text input → Text output
|
|
83
|
+
* Generate text from a text prompt
|
|
84
|
+
*
|
|
85
|
+
* @param params - Text input parameters
|
|
86
|
+
* @param logger - Logger instance
|
|
87
|
+
* @returns LLM response with generated text
|
|
88
|
+
*/
|
|
89
|
+
async text_text(params, logger) {
|
|
90
|
+
const file_name = 'gemini_provider.ts';
|
|
91
|
+
// Use the prompt directly (variable substitution should be done by service layer)
|
|
92
|
+
const prompt_text = params.prompt;
|
|
93
|
+
// Use per-service model if configured, otherwise use default api_url
|
|
94
|
+
const model = this.model_text_text;
|
|
95
|
+
const api_url = model ? get_gemini_api_url(model) : this.api_url;
|
|
96
|
+
logger.debug('Gemini provider: text_text', {
|
|
97
|
+
file: file_name,
|
|
98
|
+
line: 171,
|
|
99
|
+
data: {
|
|
100
|
+
prompt_length: prompt_text.length,
|
|
101
|
+
has_variables: !!params.prompt_variables,
|
|
102
|
+
model: model || 'default (from api_url)',
|
|
103
|
+
api_url,
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
return await call_gemini_api(api_url, this.api_key, prompt_text, undefined, // No image data
|
|
107
|
+
logger, this.text_config);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Image input → Text output
|
|
111
|
+
* Analyze an image and generate text description
|
|
112
|
+
*
|
|
113
|
+
* @param params - Image input parameters
|
|
114
|
+
* @param logger - Logger instance
|
|
115
|
+
* @returns LLM response with generated text
|
|
116
|
+
*/
|
|
117
|
+
async image_text(params, logger) {
|
|
118
|
+
const file_name = 'gemini_provider.ts';
|
|
119
|
+
if (!params.image_b64 || !params.image_mime_type) {
|
|
120
|
+
return {
|
|
121
|
+
success: false,
|
|
122
|
+
error: 'image_b64 and image_mime_type are required',
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
const image_data = [{
|
|
126
|
+
mime_type: params.image_mime_type,
|
|
127
|
+
data: params.image_b64,
|
|
128
|
+
}];
|
|
129
|
+
// Use per-service model if configured, otherwise use default api_url
|
|
130
|
+
const model = this.model_image_text;
|
|
131
|
+
const api_url = model ? get_gemini_api_url(model) : this.api_url;
|
|
132
|
+
logger.debug('Gemini provider: image_text', {
|
|
133
|
+
file: file_name,
|
|
134
|
+
line: 213,
|
|
135
|
+
data: {
|
|
136
|
+
prompt_length: params.prompt.length,
|
|
137
|
+
image_mime_type: params.image_mime_type,
|
|
138
|
+
model: model || 'default (from api_url)',
|
|
139
|
+
api_url,
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
return await call_gemini_api(api_url, this.api_key, params.prompt, image_data, logger, this.image_config);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Text input → Image output
|
|
146
|
+
* Generate an image from a text prompt
|
|
147
|
+
*
|
|
148
|
+
* @param params - Text input parameters for image generation
|
|
149
|
+
* @param logger - Logger instance
|
|
150
|
+
* @returns LLM response with generated image
|
|
151
|
+
*/
|
|
152
|
+
async text_image(params, logger) {
|
|
153
|
+
const file_name = 'gemini_provider.ts';
|
|
154
|
+
// Use per-service model if configured, otherwise use api_url_image or api_url
|
|
155
|
+
const model = this.model_text_image;
|
|
156
|
+
let api_url;
|
|
157
|
+
if (model) {
|
|
158
|
+
api_url = get_gemini_api_url(model);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
api_url = this.api_url_image || this.api_url;
|
|
162
|
+
}
|
|
163
|
+
logger.debug('Gemini provider: text_image', {
|
|
164
|
+
file: file_name,
|
|
165
|
+
line: 256,
|
|
166
|
+
data: {
|
|
167
|
+
prompt_length: params.prompt.length,
|
|
168
|
+
model: model || 'default (from api_url_image/api_url)',
|
|
169
|
+
api_url,
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
try {
|
|
173
|
+
const url = `${api_url}?key=${this.api_key}`;
|
|
174
|
+
// Build generation config with required responseModalities for image generation
|
|
175
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
176
|
+
const gen_config = {
|
|
177
|
+
responseModalities: ['TEXT', 'IMAGE'],
|
|
178
|
+
};
|
|
179
|
+
// Merge in any custom config
|
|
180
|
+
if (this.image_config) {
|
|
181
|
+
if (this.image_config.temperature !== undefined) {
|
|
182
|
+
gen_config.temperature = this.image_config.temperature;
|
|
183
|
+
}
|
|
184
|
+
if (this.image_config.max_output_tokens !== undefined) {
|
|
185
|
+
gen_config.maxOutputTokens = this.image_config.max_output_tokens;
|
|
186
|
+
}
|
|
187
|
+
if (this.image_config.top_p !== undefined) {
|
|
188
|
+
gen_config.topP = this.image_config.top_p;
|
|
189
|
+
}
|
|
190
|
+
if (this.image_config.top_k !== undefined) {
|
|
191
|
+
gen_config.topK = this.image_config.top_k;
|
|
192
|
+
}
|
|
193
|
+
if (this.image_config.candidate_count !== undefined) {
|
|
194
|
+
gen_config.candidateCount = this.image_config.candidate_count;
|
|
195
|
+
}
|
|
196
|
+
if (this.image_config.stop_sequences !== undefined && this.image_config.stop_sequences.length > 0) {
|
|
197
|
+
gen_config.stopSequences = this.image_config.stop_sequences;
|
|
198
|
+
}
|
|
199
|
+
if (this.image_config.response_mime_type !== undefined) {
|
|
200
|
+
gen_config.responseMimeType = this.image_config.response_mime_type;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
const request_body = {
|
|
204
|
+
contents: [
|
|
205
|
+
{
|
|
206
|
+
parts: [{ text: params.prompt }],
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
generationConfig: gen_config,
|
|
210
|
+
};
|
|
211
|
+
logger.debug('Calling Gemini image generation API', {
|
|
212
|
+
file: file_name,
|
|
213
|
+
line: 220,
|
|
214
|
+
data: {
|
|
215
|
+
api_url,
|
|
216
|
+
prompt: params.prompt,
|
|
217
|
+
generation_config: gen_config,
|
|
218
|
+
},
|
|
219
|
+
});
|
|
220
|
+
const response = await fetch(url, {
|
|
221
|
+
method: 'POST',
|
|
222
|
+
headers: { 'Content-Type': 'application/json' },
|
|
223
|
+
body: JSON.stringify(request_body),
|
|
224
|
+
});
|
|
225
|
+
const data = await response.json();
|
|
226
|
+
if (!response.ok) {
|
|
227
|
+
const error_msg = data?.error?.message || `API error: ${response.status}`;
|
|
228
|
+
logger.error('Gemini image generation failed', {
|
|
229
|
+
file: file_name,
|
|
230
|
+
line: 238,
|
|
231
|
+
data: { status: response.status, error: error_msg, generation_config: gen_config },
|
|
232
|
+
});
|
|
233
|
+
return { success: false, error: error_msg };
|
|
234
|
+
}
|
|
235
|
+
// Extract image and text from response
|
|
236
|
+
const candidates = data.candidates;
|
|
237
|
+
if (!candidates || candidates.length === 0) {
|
|
238
|
+
return { success: false, error: 'No content generated' };
|
|
239
|
+
}
|
|
240
|
+
const parts = candidates[0]?.content?.parts || [];
|
|
241
|
+
let image_b64;
|
|
242
|
+
let image_mime_type;
|
|
243
|
+
let text;
|
|
244
|
+
for (const part of parts) {
|
|
245
|
+
if (part.inlineData) {
|
|
246
|
+
image_b64 = part.inlineData.data;
|
|
247
|
+
image_mime_type = part.inlineData.mimeType || 'image/png';
|
|
248
|
+
}
|
|
249
|
+
if (part.text) {
|
|
250
|
+
text = part.text;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return {
|
|
254
|
+
success: true,
|
|
255
|
+
text,
|
|
256
|
+
image_b64,
|
|
257
|
+
image_mime_type,
|
|
258
|
+
raw_response: data,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
const error_message = error instanceof Error ? error.message : String(error);
|
|
263
|
+
logger.error('Error calling Gemini image generation', {
|
|
264
|
+
file: file_name,
|
|
265
|
+
line: 270,
|
|
266
|
+
data: { error: error_message },
|
|
267
|
+
});
|
|
268
|
+
return { success: false, error: error_message };
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Image input → Image output
|
|
273
|
+
* Transform/edit an image based on instructions
|
|
274
|
+
*
|
|
275
|
+
* @param params - Image input parameters with transformation instructions
|
|
276
|
+
* @param logger - Logger instance
|
|
277
|
+
* @returns LLM response with transformed image
|
|
278
|
+
*/
|
|
279
|
+
async image_image(params, logger) {
|
|
280
|
+
const file_name = 'gemini_provider.ts';
|
|
281
|
+
// Collect images
|
|
282
|
+
const images = [];
|
|
283
|
+
if (params.images && params.images.length > 0) {
|
|
284
|
+
images.push(...params.images);
|
|
285
|
+
}
|
|
286
|
+
else if (params.image_b64 && params.image_mime_type) {
|
|
287
|
+
images.push({
|
|
288
|
+
data: params.image_b64,
|
|
289
|
+
mime_type: params.image_mime_type,
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
if (images.length === 0) {
|
|
293
|
+
return {
|
|
294
|
+
success: false,
|
|
295
|
+
error: 'At least one image is required',
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
// Use per-service model if configured, otherwise use api_url_image or api_url
|
|
299
|
+
const model = this.model_image_image;
|
|
300
|
+
let api_url;
|
|
301
|
+
if (model) {
|
|
302
|
+
api_url = get_gemini_api_url(model);
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
api_url = this.api_url_image || this.api_url;
|
|
306
|
+
}
|
|
307
|
+
logger.debug('Gemini provider: image_image', {
|
|
308
|
+
file: file_name,
|
|
309
|
+
line: 407,
|
|
310
|
+
data: {
|
|
311
|
+
prompt_length: params.prompt.length,
|
|
312
|
+
image_count: images.length,
|
|
313
|
+
model: model || 'default (from api_url_image/api_url)',
|
|
314
|
+
api_url,
|
|
315
|
+
},
|
|
316
|
+
});
|
|
317
|
+
try {
|
|
318
|
+
const url = `${api_url}?key=${this.api_key}`;
|
|
319
|
+
// Build parts array with all images followed by the text prompt
|
|
320
|
+
const parts = [];
|
|
321
|
+
// Add all images
|
|
322
|
+
for (const image of images) {
|
|
323
|
+
parts.push({
|
|
324
|
+
inlineData: {
|
|
325
|
+
mimeType: image.mime_type,
|
|
326
|
+
data: image.data,
|
|
327
|
+
},
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
// Add the text prompt
|
|
331
|
+
parts.push({ text: params.prompt });
|
|
332
|
+
// Build generation config with required responseModalities
|
|
333
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
334
|
+
const gen_config = {
|
|
335
|
+
responseModalities: ['TEXT', 'IMAGE'],
|
|
336
|
+
};
|
|
337
|
+
// Merge in any custom config
|
|
338
|
+
if (this.image_config) {
|
|
339
|
+
if (this.image_config.temperature !== undefined) {
|
|
340
|
+
gen_config.temperature = this.image_config.temperature;
|
|
341
|
+
}
|
|
342
|
+
if (this.image_config.max_output_tokens !== undefined) {
|
|
343
|
+
gen_config.maxOutputTokens = this.image_config.max_output_tokens;
|
|
344
|
+
}
|
|
345
|
+
if (this.image_config.top_p !== undefined) {
|
|
346
|
+
gen_config.topP = this.image_config.top_p;
|
|
347
|
+
}
|
|
348
|
+
if (this.image_config.top_k !== undefined) {
|
|
349
|
+
gen_config.topK = this.image_config.top_k;
|
|
350
|
+
}
|
|
351
|
+
if (this.image_config.candidate_count !== undefined) {
|
|
352
|
+
gen_config.candidateCount = this.image_config.candidate_count;
|
|
353
|
+
}
|
|
354
|
+
if (this.image_config.stop_sequences !== undefined && this.image_config.stop_sequences.length > 0) {
|
|
355
|
+
gen_config.stopSequences = this.image_config.stop_sequences;
|
|
356
|
+
}
|
|
357
|
+
if (this.image_config.response_mime_type !== undefined) {
|
|
358
|
+
gen_config.responseMimeType = this.image_config.response_mime_type;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
const request_body = {
|
|
362
|
+
contents: [
|
|
363
|
+
{
|
|
364
|
+
parts: parts,
|
|
365
|
+
},
|
|
366
|
+
],
|
|
367
|
+
generationConfig: gen_config,
|
|
368
|
+
};
|
|
369
|
+
logger.debug('Calling Gemini image transformation API', {
|
|
370
|
+
file: file_name,
|
|
371
|
+
line: 375,
|
|
372
|
+
data: {
|
|
373
|
+
api_url,
|
|
374
|
+
prompt: params.prompt,
|
|
375
|
+
image_count: images.length,
|
|
376
|
+
generation_config: gen_config,
|
|
377
|
+
},
|
|
378
|
+
});
|
|
379
|
+
const response = await fetch(url, {
|
|
380
|
+
method: 'POST',
|
|
381
|
+
headers: { 'Content-Type': 'application/json' },
|
|
382
|
+
body: JSON.stringify(request_body),
|
|
383
|
+
});
|
|
384
|
+
const data = await response.json();
|
|
385
|
+
if (!response.ok) {
|
|
386
|
+
const error_msg = data?.error?.message || `API error: ${response.status}`;
|
|
387
|
+
logger.error('Gemini image transformation failed', {
|
|
388
|
+
file: file_name,
|
|
389
|
+
line: 393,
|
|
390
|
+
data: { status: response.status, error: error_msg, generation_config: gen_config },
|
|
391
|
+
});
|
|
392
|
+
return { success: false, error: error_msg };
|
|
393
|
+
}
|
|
394
|
+
// Extract image and text from response
|
|
395
|
+
const candidates = data.candidates;
|
|
396
|
+
if (!candidates || candidates.length === 0) {
|
|
397
|
+
return { success: false, error: 'No content generated' };
|
|
398
|
+
}
|
|
399
|
+
const response_parts = candidates[0]?.content?.parts || [];
|
|
400
|
+
let image_b64;
|
|
401
|
+
let image_mime_type;
|
|
402
|
+
let text;
|
|
403
|
+
for (const part of response_parts) {
|
|
404
|
+
if (part.inlineData) {
|
|
405
|
+
image_b64 = part.inlineData.data;
|
|
406
|
+
image_mime_type = part.inlineData.mimeType || 'image/png';
|
|
407
|
+
}
|
|
408
|
+
if (part.text) {
|
|
409
|
+
text = part.text;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
return {
|
|
413
|
+
success: true,
|
|
414
|
+
text,
|
|
415
|
+
image_b64,
|
|
416
|
+
image_mime_type,
|
|
417
|
+
raw_response: data,
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
catch (error) {
|
|
421
|
+
const error_message = error instanceof Error ? error.message : String(error);
|
|
422
|
+
logger.error('Error calling Gemini image transformation', {
|
|
423
|
+
file: file_name,
|
|
424
|
+
line: 428,
|
|
425
|
+
data: { error: error_message },
|
|
426
|
+
});
|
|
427
|
+
return { success: false, error: error_message };
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
//# sourceMappingURL=gemini_provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini_provider.js","sourceRoot":"","sources":["../../../../src/lib/providers/gemini/gemini_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini Provider Exports
|
|
3
|
+
*
|
|
4
|
+
* Export all Gemini-related functions and classes from this module
|
|
5
|
+
*/
|
|
6
|
+
export { call_gemini_api, get_gemini_api_url, } from './gemini_client.js';
|
|
7
|
+
export { GeminiProvider, type GeminiProviderConfig, } from './gemini_provider.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/providers/gemini/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini Provider Exports
|
|
3
|
+
*
|
|
4
|
+
* Export all Gemini-related functions and classes from this module
|
|
5
|
+
*/
|
|
6
|
+
export { call_gemini_api, get_gemini_api_url, } from './gemini_client.js';
|
|
7
|
+
export { GeminiProvider, } from './gemini_provider.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/providers/gemini/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,cAAc,GAEf,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qwen Provider Exports
|
|
3
|
+
*
|
|
4
|
+
* Export all Qwen-related functions and classes from this module
|
|
5
|
+
*/
|
|
6
|
+
export { call_qwen_api, build_qwen_messages, get_qwen_api_url, type QwenGenerationConfig, type QwenMessage, type QwenMessageRole, type QwenApiRequest, type QwenApiResponse, } from './qwen_client.js';
|
|
7
|
+
export { QwenProvider, type QwenProviderConfig, } from './qwen_provider.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/providers/qwen/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qwen Provider Exports
|
|
3
|
+
*
|
|
4
|
+
* Export all Qwen-related functions and classes from this module
|
|
5
|
+
*/
|
|
6
|
+
export { call_qwen_api, build_qwen_messages, get_qwen_api_url, } from './qwen_client.js';
|
|
7
|
+
export { QwenProvider, } from './qwen_provider.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/providers/qwen/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,GAMjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,YAAY,GAEb,MAAM,oBAAoB,CAAC"}
|