diff --git a/app/api/chat-messages/route.ts b/app/api/chat-messages/route.ts index 88d6f81..378f7dd 100644 --- a/app/api/chat-messages/route.ts +++ b/app/api/chat-messages/route.ts @@ -1,6 +1,5 @@ import { type NextRequest } from 'next/server' import { client, getInfo } from '@/app/api/utils/common' -import { OpenAIStream } from '@/app/api/utils/stream' export async function POST(request: NextRequest) { const body = await request.json() @@ -12,6 +11,5 @@ export async function POST(request: NextRequest) { } = body const { user } = getInfo(request) const res = await client.createChatMessage(inputs, query, user, responseMode, conversationId) - const stream = await OpenAIStream(res as any) - return new Response(stream as any) + return new Response(res.data as any) } diff --git a/app/api/utils/stream.ts b/app/api/utils/stream.ts deleted file mode 100644 index 2262d22..0000000 --- a/app/api/utils/stream.ts +++ /dev/null @@ -1,25 +0,0 @@ -export async function OpenAIStream(res: { body: any }) { - const reader = res.body.getReader() - - const stream = new ReadableStream({ - // https://developer.mozilla.org/en-US/docs/Web/API/Streams_API/Using_readable_streams - // https://github.com/whichlight/chatgpt-api-streaming/blob/master/pages/api/OpenAIStream.ts - start(controller) { - return pump() - function pump() { - return reader.read().then(({ done, value }: any) => { - // When no more data needs to be consumed, close the stream - if (done) { - controller.close() - return - } - // Enqueue the next data chunk into our target stream - controller.enqueue(value) - return pump() - }) - } - }, - }) - - return stream -} diff --git a/package.json b/package.json index 698f072..df448cd 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "axios": "^1.3.5", "classnames": "^2.3.2", "copy-to-clipboard": "^3.3.3", - "dify-client": "1.0.3", + "dify-client": "2.0.0", "eslint": "8.36.0", "eslint-config-next": "13.2.4", "eventsource-parser": "^1.0.0", @@ -78,4 +78,4 @@ "eslint --fix" ] } -} +} \ No newline at end of file diff --git a/service/base.ts b/service/base.ts index 057443b..535fb57 100644 --- a/service/base.ts +++ b/service/base.ts @@ -64,7 +64,7 @@ const handleStream = (response: any, onData: IOnData, onCompleted?: IOnCompleted lines.forEach((message) => { if (!message) return - bufferObj = JSON.parse(message) // remove data: and parse as json + bufferObj = JSON.parse(message.substring(6)) // remove data: and parse as json onData(unicodeToChar(bufferObj.answer), isFirstMessage, { conversationId: bufferObj.conversation_id, messageId: bufferObj.id,