Merge pull request #825 from yantxs/fix-dify-chunks

Fixed integration with Dify agents
This commit is contained in:
Davidson Gomes 2024-08-27 08:37:28 -03:00 committed by GitHub
commit bb89816ca6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -233,17 +233,25 @@ export class DifyService {
const reader = new Readable().wrap(stream); const reader = new Readable().wrap(stream);
reader.on('data', (chunk) => { reader.on('data', (chunk) => {
const data = chunk.toString(); const data = chunk.toString().replace(/data:\s*/g, '');
if (data.trim() === '' || !data.startsWith('{')) {
return;
}
try { try {
const cleanedData = data.replace(/^data:\s*/, ''); const events = data.split('\n').filter((line) => line.trim() !== '');
const event = JSON.parse(cleanedData); for (const eventString of events) {
if (eventString.trim().startsWith('{')) {
if (event?.event === 'agent_message') { const event = JSON.parse(eventString);
console.log('event:', event);
conversationId = conversationId ?? event?.conversation_id; if (event?.event === 'agent_message') {
answer += event?.answer; console.log('event:', event);
conversationId = conversationId ?? event?.conversation_id;
answer += event?.answer;
}
}
} }
} catch (error) { } catch (error) {
console.error('Error parsing stream data:', error); console.error('Error parsing stream data:', error);