MCPcopy Create free account
hub / github.com/TeleBoxOrg/TeleBox_Plugins / generateGeminiImageRest

Method generateGeminiImageRest

ai/ai.ts:3262–3379  ·  view source on GitHub ↗
(
    providerConfig: ProviderConfig,
    model: string,
    prompt: string,
    modeConfig: ProviderModeConfig,
    image?: AIImage,
    token?: AbortToken,
  )

Source from the content-addressed store, hash-verified

3260
3261 private async generateGeminiImageRest(
3262 providerConfig: ProviderConfig,
3263 model: string,
3264 prompt: string,
3265 modeConfig: ProviderModeConfig,
3266 image?: AIImage,
3267 token?: AbortToken,
3268 ): Promise<AIImage[]> {
3269 const baseUrl = resolveBaseUrl(providerConfig, modeConfig);
3270
3271 if (model.includes("imagen")) {
3272 const endpoint = `v1beta/models/${model}:predict`;
3273 const url = resolveEndpointUrl(baseUrl, endpoint);
3274 const authMode = resolveAuthMode(
3275 getProviderProfile(providerConfig),
3276 modeConfig,
3277 providerConfig,
3278 );
3279 const authConfig = applyAuthConfig(authMode, providerConfig, url, {
3280 "Content-Type": "application/json",
3281 });
3282
3283 const data: any = {
3284 instances: [{ prompt: prompt || "" }],
3285 parameters: {
3286 sampleCount: 1,
3287 outputOptions: { mimeType: "image/png" },
3288 },
3289 };
3290
3291 const response = await this.httpClient.request(
3292 {
3293 url: authConfig.url,
3294 method: "POST",
3295 headers: authConfig.headers,
3296 data,
3297 },
3298 token,
3299 );
3300
3301 const predictions = response.data?.predictions || [];
3302 const images: AIImage[] = [];
3303 for (const p of predictions) {
3304 if (p.bytesBase64Encoded) {
3305 images.push({
3306 data: Buffer.from(p.bytesBase64Encoded, "base64"),
3307 mimeType: p.mimeType || "image/png",
3308 });
3309 }
3310 }
3311 if (images.length === 0) throw new Error("图片生成失败");
3312 return images;
3313 }
3314
3315 const endpoint = (
3316 modeConfig.endpoint || "models/{model}:generateContent"
3317 ).replace("{model}", model);
3318 const url = resolveEndpointUrl(baseUrl, endpoint);
3319

Callers 1

Calls 6

resolveBaseUrlFunction · 0.85
resolveEndpointUrlFunction · 0.85
resolveAuthModeFunction · 0.85
getProviderProfileFunction · 0.85
applyAuthConfigFunction · 0.85
requestMethod · 0.45

Tested by

no test coverage detected