diff --git a/app/(chat)/api/chat/route.ts b/app/(chat)/api/chat/route.ts index c7e04701b..0f534c3dd 100644 --- a/app/(chat)/api/chat/route.ts +++ b/app/(chat)/api/chat/route.ts @@ -1233,6 +1233,15 @@ function normalizeAssistantPartsForPersistence(parts: Array> }); } +function isPureGreetingTurnRequest(text: string): boolean { + const normalized = String(text || "").toLowerCase().replace(/\s+/g, "").trim(); + if (!normalized) return false; + + return /^(你好|您好|hello|hi|嗨|哈喽|在吗|早上好|中午好|下午好|晚上好|深夜好|谢谢|感谢|收到|好的|ok|okay|明白了|了解了)$/.test( + normalized, + ); +} + function buildAgentToolImageMarkdown(params: { originalUrl: string; thumbnailUrl?: string | null; @@ -3149,6 +3158,49 @@ export async function POST(request: Request) { } } + const hasCurrentMessageMediaInput = message.parts.some((part: any) => + part?.type === "file" || part?.type === "image" || part?.type === "image_url" + ); + if ( + shouldRunAgentConversation && + isPureGreetingTurnRequest(requestTextContent) && + !hasCurrentMessageMediaInput + ) { + const session = await auth(); + + if (!session?.user) { + return new ChatSDKError("unauthorized:chat").toResponse(); + } + + const greetingMessage = "你好,我在。你可以直接告诉我想做什么:生图、修图、生成视频、分析图片都可以。"; + const greetingStream = createUIMessageStream({ + execute: async ({ writer }) => { + const messageId = generateUUID(); + writeAssistantTextChunk(writer, greetingMessage, "greeting-fast-path", messageId); + + await saveMessages({ + messages: [ + { + id: messageId, + chatId: id, + role: "assistant", + parts: [{ type: "text", text: greetingMessage }], + attachments: [], + createdAt: new Date(), + videoStorageStatus: null, + temporaryVideoUrl: null, + permanentVideoUrl: null, + archivedAt: null, + videoMetadata: null, + }, + ], + }); + }, + }); + + return createSseResponse(greetingStream); + } + const allowAgentVideoGeneration = Boolean(requestBody.videoParams) || isVideoProviderType(requestedModelProviderType); let smartAutoWorkflowDecision: