新增 图片审查错误提示

This commit is contained in:
2025-09-30 20:34:26 +08:00
parent 260a7e4f0f
commit 55464f35d9

View File

@@ -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()
export const geminiService = new GeminiService()