🐛 (dify) Fix invalid parsing when text delta is multiline
This commit is contained in:
@ -5,6 +5,7 @@ import { defaultBaseUrl } from '../constants'
|
|||||||
import { Chunk } from '../types'
|
import { Chunk } from '../types'
|
||||||
import ky, { HTTPError } from 'ky'
|
import ky, { HTTPError } from 'ky'
|
||||||
import { deprecatedCreateChatMessageOptions } from '../deprecated'
|
import { deprecatedCreateChatMessageOptions } from '../deprecated'
|
||||||
|
import { formatStreamPart } from 'ai'
|
||||||
|
|
||||||
export const createChatMessage = createAction({
|
export const createChatMessage = createAction({
|
||||||
auth,
|
auth,
|
||||||
@ -120,7 +121,7 @@ export const createChatMessage = createAction({
|
|||||||
onMessage: (message) => {
|
onMessage: (message) => {
|
||||||
controller.enqueue(
|
controller.enqueue(
|
||||||
new TextEncoder().encode(
|
new TextEncoder().encode(
|
||||||
'0:"' + message.replace(/"/g, '\\"') + '"\n'
|
formatStreamPart('text', message)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
@ -299,7 +300,7 @@ const processDifyStream = async (
|
|||||||
totalTokens,
|
totalTokens,
|
||||||
conversationId,
|
conversationId,
|
||||||
}: {
|
}: {
|
||||||
totalTokens: number
|
totalTokens?: number
|
||||||
conversationId: string
|
conversationId: string
|
||||||
}) => void
|
}) => void
|
||||||
}
|
}
|
||||||
@ -333,7 +334,7 @@ const processDifyStream = async (
|
|||||||
}
|
}
|
||||||
if (data.event === 'message_end') {
|
if (data.event === 'message_end') {
|
||||||
callbacks.onMessageEnd?.({
|
callbacks.onMessageEnd?.({
|
||||||
totalTokens: data.metadata.usage.total_tokens,
|
totalTokens: data.metadata.usage?.total_tokens,
|
||||||
conversationId: data.conversation_id,
|
conversationId: data.conversation_id,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -12,5 +12,8 @@
|
|||||||
"@types/react": "18.2.15",
|
"@types/react": "18.2.15",
|
||||||
"ky": "1.2.3",
|
"ky": "1.2.3",
|
||||||
"typescript": "5.4.5"
|
"typescript": "5.4.5"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"ai": "3.1.12"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ type AgentMessageChunk = {
|
|||||||
type MessageEndChunk = {
|
type MessageEndChunk = {
|
||||||
event: 'message_end'
|
event: 'message_end'
|
||||||
metadata: {
|
metadata: {
|
||||||
usage: {
|
usage?: {
|
||||||
total_tokens: number
|
total_tokens: number
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
4
pnpm-lock.yaml
generated
4
pnpm-lock.yaml
generated
@ -1347,6 +1347,10 @@ importers:
|
|||||||
version: 5.4.5
|
version: 5.4.5
|
||||||
|
|
||||||
packages/forge/blocks/difyAi:
|
packages/forge/blocks/difyAi:
|
||||||
|
dependencies:
|
||||||
|
ai:
|
||||||
|
specifier: 3.1.12
|
||||||
|
version: 3.1.12(openai@4.47.1)(react@18.2.0)(solid-js@1.7.8)(svelte@4.2.12)(vue@3.4.21)(zod@3.22.4)
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@typebot.io/forge':
|
'@typebot.io/forge':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
|
Reference in New Issue
Block a user