diff --git a/src/app/api/search/ai/route.ts b/src/app/api/search/ai/route.ts index d28cfd7..62bfd5a 100644 --- a/src/app/api/search/ai/route.ts +++ b/src/app/api/search/ai/route.ts @@ -15,25 +15,27 @@ export async function POST(request: Request) { // 验证查询参数 const validatedQuery = ProjectQuerySchema.parse(body) - // 转发到 n8n 工作流 - const n8nResponse = await fetch(N8N_WEBHOOK_URL, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - query: validatedQuery.search, - locale: body.locale || 'zh', - limit: validatedQuery.limit || 20, - filters: { - tags: validatedQuery.tags, - status: validatedQuery.status - } - }) + // 构建 n8n webhook URL(使用 GET 请求 + query string) + const searchParams = new URLSearchParams({ + desc: validatedQuery.search || '', + limit: String(validatedQuery.limit || 20), + }) + + // 如果有标签过滤,添加到参数中 + if (validatedQuery.tags && validatedQuery.tags.length > 0) { + searchParams.set('tags', validatedQuery.tags.join(',')) + } + + const n8nUrl = `${N8N_WEBHOOK_URL}?${searchParams.toString()}` + + // 转发到 n8n 工作流(使用 GET 请求) + const n8nResponse = await fetch(n8nUrl, { + method: 'GET', }) if (!n8nResponse.ok) { - throw new Error(`n8n webhook failed: ${n8nResponse.statusText}`) + const errorText = await n8nResponse.text() + throw new Error(`n8n webhook failed: ${n8nResponse.statusText} - ${errorText}`) } const results = await n8nResponse.json()