|
1 | 1 | import { genDifyRequest } from "@/app/api/utils";
|
2 |
| -import { NextRequest, NextResponse } from "next/server"; |
| 2 | +import { NextRequest } from "next/server"; |
3 | 3 |
|
4 | 4 | const POST = async (
|
5 | 5 | _request: NextRequest,
|
6 | 6 | { params }: { params: { appId: string } },
|
7 | 7 | ) => {
|
8 | 8 | const { appId } = await params;
|
9 | 9 | // 获取 body 中的参数
|
10 |
| - const { conversation_id, inputs, files, query } = await _request.json(); |
| 10 | + const { conversation_id, inputs, files, query, response_mode } = |
| 11 | + await _request.json(); |
11 | 12 | const difyRequest = await genDifyRequest(appId);
|
12 | 13 | const user = _request.headers.get("dc-user") as string;
|
13 |
| - const result = await difyRequest.post(`/chat-messages`, { |
14 |
| - conversation_id, |
15 |
| - inputs, |
16 |
| - files, |
17 |
| - response_mode: "blocking", |
18 |
| - user, |
19 |
| - query, |
| 14 | + const response = await difyRequest.baseRequest(`/chat-messages`, { |
| 15 | + method: "POST", |
| 16 | + body: JSON.stringify({ |
| 17 | + conversation_id, |
| 18 | + inputs, |
| 19 | + files, |
| 20 | + response_mode, |
| 21 | + user, |
| 22 | + query, |
| 23 | + }), |
| 24 | + headers: { |
| 25 | + "Content-Type": "application/json", |
| 26 | + }, |
20 | 27 | });
|
21 |
| - return NextResponse.json({ |
22 |
| - code: 200, |
23 |
| - data: result, |
| 28 | + |
| 29 | + // 直接将原始响应“透传”给客户端 |
| 30 | + return new Response(response.body, { |
| 31 | + status: response.status, |
| 32 | + headers: { |
| 33 | + // 允许流式响应 |
| 34 | + "Content-Type": |
| 35 | + response.headers.get("Content-Type") || "application/json", |
| 36 | + // 允许 CORS 或其他你需要的 header |
| 37 | + "X-Version": response.headers.get("X-Version") || "", |
| 38 | + // 允许获取 Dify 版本 |
| 39 | + "Access-Control-Allow-Headers": "X-Version, Authorization, Content-Type", |
| 40 | + }, |
24 | 41 | });
|
25 | 42 | };
|
26 | 43 |
|
|
0 commit comments