diff --git a/src/services/geminiService.ts b/src/services/geminiService.ts index 2955c7c..d37ef21 100644 --- a/src/services/geminiService.ts +++ b/src/services/geminiService.ts @@ -139,9 +139,9 @@ export class GeminiService { // 准备请求配置,包括abortSignal const generateContentParams: { - model: string; - contents: Array<{ text: string } | { inlineData: { mimeType: string; data: string } }>; - config?: { httpOptions: { abortSignal: AbortSignal } }; + model: string + contents: Array<{ text: string } | { inlineData: { mimeType: string; data: string } }> + config?: { httpOptions: { abortSignal: AbortSignal } } } = { model: 'gemini-2.5-flash-image-preview', contents, @@ -151,8 +151,8 @@ export class GeminiService { if (request.abortSignal) { generateContentParams.config = { httpOptions: { - abortSignal: request.abortSignal - } + abortSignal: request.abortSignal, + }, } } @@ -164,7 +164,7 @@ export class GeminiService { if (candidate.finishReason === 'PROHIBITED_CONTENT') { throw new Error('内容被禁止:您的请求包含不允许的内容。请尝试其他提示。') } - if (candidate.finishReason === 'IMAGE_SAFETY') { + if (candidate.finishReason === 'IMAGE_SAFETY' || candidate.finishReason === 'IMAGE_OTHER') { throw new Error('图像安全检查失败:请求的图像内容可能不安全。请尝试调整提示词。') } // 检查finishReason为STOP但没有inlineData的情况 @@ -378,9 +378,9 @@ export class GeminiService { // 准备请求配置,包括abortSignal const generateContentParams: { - model: string; - contents: Array<{ text: string } | { inlineData: { mimeType: string; data: string } }>; - config?: { httpOptions: { abortSignal: AbortSignal } }; + model: string + contents: Array<{ text: string } | { inlineData: { mimeType: string; data: string } }> + config?: { httpOptions: { abortSignal: AbortSignal } } } = { model: 'gemini-2.5-flash-image-preview', contents, @@ -390,8 +390,8 @@ export class GeminiService { if (request.abortSignal) { generateContentParams.config = { httpOptions: { - abortSignal: request.abortSignal - } + abortSignal: request.abortSignal, + }, } } @@ -403,7 +403,7 @@ export class GeminiService { if (candidate.finishReason === 'PROHIBITED_CONTENT') { throw new Error('内容被禁止:您的请求包含不允许的内容。请尝试其他提示。') } - if (candidate.finishReason === 'IMAGE_SAFETY') { + if (candidate.finishReason === 'IMAGE_SAFETY' || candidate.finishReason === 'IMAGE_OTHER') { throw new Error('图像安全检查失败:请求的图像内容可能不安全。请尝试调整提示词。') } // 检查finishReason为STOP但没有inlineData的情况 @@ -547,9 +547,9 @@ export class GeminiService { // 准备请求配置,包括abortSignal const generateContentParams: { - model: string; - contents: Array<{ text: string } | { inlineData: { mimeType: string; data: string } }>; - config?: { httpOptions: { abortSignal: AbortSignal } }; + model: string + contents: Array<{ text: string } | { inlineData: { mimeType: string; data: string } }> + config?: { httpOptions: { abortSignal: AbortSignal } } } = { model: 'gemini-2.5-flash-image-preview', contents: prompt, @@ -559,8 +559,8 @@ export class GeminiService { if (request.abortSignal) { generateContentParams.config = { httpOptions: { - abortSignal: request.abortSignal - } + abortSignal: request.abortSignal, + }, } } @@ -572,7 +572,7 @@ export class GeminiService { if (candidate.finishReason === 'PROHIBITED_CONTENT') { throw new Error('内容被禁止:您的请求包含不允许的内容。请尝试其他提示。') } - if (candidate.finishReason === 'IMAGE_SAFETY') { + if (candidate.finishReason === 'IMAGE_SAFETY' || candidate.finishReason === 'IMAGE_OTHER') { throw new Error('图像安全检查失败:请求的图像内容可能不安全。请尝试调整提示词。') } // 检查finishReason为STOP但没有inlineData的情况 @@ -628,4 +628,4 @@ export class GeminiService { } } -export const geminiService = new GeminiService() \ No newline at end of file +export const geminiService = new GeminiService()