Skip to content

Commit ca287c9

Browse files
HenryHengZJ0xi4o
authored andcommitted
Bugfix/remove invalid markdown (#3219)
remove invalid markdown
1 parent c538ee9 commit ca287c9

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

Diff for: packages/components/nodes/agents/ToolAgent/ToolAgent.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { BaseChatModel } from '@langchain/core/language_models/chat_models'
77
import { ChatPromptTemplate, MessagesPlaceholder, HumanMessagePromptTemplate, PromptTemplate } from '@langchain/core/prompts'
88
import { formatToOpenAIToolMessages } from 'langchain/agents/format_scratchpad/openai_tools'
99
import { type ToolsAgentStep } from 'langchain/agents/openai/output_parser'
10-
import { getBaseClasses, handleEscapeCharacters } from '../../../src/utils'
10+
import { getBaseClasses, handleEscapeCharacters, removeInvalidImageMarkdown } from '../../../src/utils'
1111
import {
1212
FlowiseMemory,
1313
ICommonObject,
@@ -188,6 +188,8 @@ class ToolAgent_Agents implements INode {
188188
output = output?.text || ''
189189
}
190190

191+
output = removeInvalidImageMarkdown(output)
192+
191193
// Claude 3 Opus tends to spit out <thinking>..</thinking> as well, discard that in final output
192194
const regexPattern: RegExp = /<thinking>[\s\S]*?<\/thinking>/
193195
const matches: RegExpMatchArray | null = output.match(regexPattern)

Diff for: packages/components/nodes/sequentialagents/Agent/Agent.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
IStateWithMessages
2323
} from '../../../src/Interface'
2424
import { ToolCallingAgentOutputParser, AgentExecutor, SOURCE_DOCUMENTS_PREFIX, ARTIFACTS_PREFIX } from '../../../src/agents'
25-
import { getInputVariables, getVars, handleEscapeCharacters, prepareSandboxVars } from '../../../src/utils'
25+
import { getInputVariables, getVars, handleEscapeCharacters, prepareSandboxVars, removeInvalidImageMarkdown } from '../../../src/utils'
2626
import {
2727
customGet,
2828
getVM,
@@ -781,9 +781,7 @@ async function agentNode(
781781
}
782782

783783
let outputContent = typeof result === 'string' ? result : result.content || result.output
784-
785-
// remove invalid markdown image pattern: ![<some-string>](<some-string>)
786-
outputContent = typeof outputContent === 'string' ? outputContent.replace(/!\[.*?\]\(.*?\)/g, '') : outputContent
784+
outputContent = removeInvalidImageMarkdown(outputContent)
787785

788786
if (nodeData.inputs?.updateStateMemoryUI || nodeData.inputs?.updateStateMemoryCode) {
789787
let formattedOutput = {

Diff for: packages/components/src/utils.ts

+5
Original file line numberDiff line numberDiff line change
@@ -926,3 +926,8 @@ export const mapMimeTypeToExt = (mimeType: string) => {
926926
return ''
927927
}
928928
}
929+
930+
// remove invalid markdown image pattern: ![<some-string>](<some-string>)
931+
export const removeInvalidImageMarkdown = (output: string): string => {
932+
return typeof output === 'string' ? output.replace(/!\[.*?\]\((?!https?:\/\/).*?\)/g, '') : output
933+
}

0 commit comments

Comments
 (0)