mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-22 09:01:09 +03:00
Feature/Code Interpreter (#3183)
* Base changes for ServerSide Events (instead of socket.io) * lint fixes * adding of interface and separate methods for streaming events * lint * first draft, handles both internal and external prediction end points. * lint fixes * additional internal end point for streaming and associated changes * return streamresponse as true to build agent flow * 1) JSON formatting for internal events 2) other fixes * 1) convert internal event to metadata to maintain consistency with external response * fix action and metadata streaming * fix for error when agent flow is aborted * prevent subflows from streaming and other code cleanup * prevent streaming from enclosed tools * add fix for preventing chaintool streaming * update lock file * add open when hidden to sse * Streaming errors * Streaming errors * add fix for showing error message * add code interpreter * add artifacts to view message dialog * Update pnpm-lock.yaml --------- Co-authored-by: Vinod Paidimarry <vinodkiran@outlook.in>
This commit is contained in:
@@ -134,6 +134,7 @@ class ToolAgent_Agents implements INode {
|
||||
let res: ChainValues = {}
|
||||
let sourceDocuments: ICommonObject[] = []
|
||||
let usedTools: IUsedTool[] = []
|
||||
let artifacts = []
|
||||
|
||||
if (shouldStreamResponse) {
|
||||
const handler = new CustomChainHandler(sseStreamer, chatId)
|
||||
@@ -150,6 +151,12 @@ class ToolAgent_Agents implements INode {
|
||||
}
|
||||
usedTools = res.usedTools
|
||||
}
|
||||
if (res.artifacts) {
|
||||
if (sseStreamer) {
|
||||
sseStreamer.streamArtifactsEvent(chatId, flatten(res.artifacts))
|
||||
}
|
||||
artifacts = res.artifacts
|
||||
}
|
||||
// If the tool is set to returnDirect, stream the output to the client
|
||||
if (res.usedTools && res.usedTools.length) {
|
||||
let inputTools = nodeData.inputs?.tools
|
||||
@@ -169,6 +176,9 @@ class ToolAgent_Agents implements INode {
|
||||
if (res.usedTools) {
|
||||
usedTools = res.usedTools
|
||||
}
|
||||
if (res.artifacts) {
|
||||
artifacts = res.artifacts
|
||||
}
|
||||
}
|
||||
|
||||
let output = res?.output
|
||||
@@ -203,7 +213,7 @@ class ToolAgent_Agents implements INode {
|
||||
|
||||
let finalRes = output
|
||||
|
||||
if (sourceDocuments.length || usedTools.length) {
|
||||
if (sourceDocuments.length || usedTools.length || artifacts.length) {
|
||||
const finalRes: ICommonObject = { text: output }
|
||||
if (sourceDocuments.length) {
|
||||
finalRes.sourceDocuments = flatten(sourceDocuments)
|
||||
@@ -211,6 +221,9 @@ class ToolAgent_Agents implements INode {
|
||||
if (usedTools.length) {
|
||||
finalRes.usedTools = usedTools
|
||||
}
|
||||
if (artifacts.length) {
|
||||
finalRes.artifacts = artifacts
|
||||
}
|
||||
return finalRes
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user