diff --git a/ui/src/components/markdown/MdRenderer.vue b/ui/src/components/markdown/MdRenderer.vue index 759ca6cd7b2..b94cd16cd50 100644 --- a/ui/src/components/markdown/MdRenderer.vue +++ b/ui/src/components/markdown/MdRenderer.vue @@ -38,7 +38,7 @@ import EchartsRander from './EchartsRander.vue' import FormRander from './FormRander.vue' import ReasoningRander from './ReasoningRander.vue' import IframeRender from './IframeRender.vue' - +import ToolCallsRender from './tool-calls-render/index.vue' config({ markdownItConfig(md) { md.renderer.rules.image = (tokens, idx, options) => { @@ -87,6 +87,7 @@ const TAG_PLUGINS: TagPlugin[] = [ { tag: 'quick_question', type: 'question' }, { tag: 'html_rander', type: 'html_rander' }, { tag: 'iframe_render', type: 'iframe_render' }, + { tag: 'tool_calls_render', type: 'tool_calls_render' }, { tag: 'echarts_rander', type: 'echarts_rander', @@ -192,6 +193,7 @@ const componentMap: Record = { echarts_rander: EchartsRander, form_rander: FormRander, iframe_render: IframeRender, + tool_calls_render: ToolCallsRender, } function getComponentProps(item: RenderNode) { @@ -208,11 +210,12 @@ function getComponentProps(item: RenderNode) { case 'echarts_rander': return { option: item.content } - case 'html_rander': return { source: item.content } case 'iframe_render': return { source: item.content } + case 'tool_calls_render': + return { content: item.content } default: return {} diff --git a/ui/src/components/markdown/tool-calls-render/content/index.vue b/ui/src/components/markdown/tool-calls-render/content/index.vue new file mode 100644 index 00000000000..df85b02c001 --- /dev/null +++ b/ui/src/components/markdown/tool-calls-render/content/index.vue @@ -0,0 +1,14 @@ + + + diff --git a/ui/src/components/markdown/tool-calls-render/content/simple-tool-calls/index.vue b/ui/src/components/markdown/tool-calls-render/content/simple-tool-calls/index.vue new file mode 100644 index 00000000000..a194cb81170 --- /dev/null +++ b/ui/src/components/markdown/tool-calls-render/content/simple-tool-calls/index.vue @@ -0,0 +1,15 @@ + + + diff --git a/ui/src/components/markdown/tool-calls-render/index.ts b/ui/src/components/markdown/tool-calls-render/index.ts new file mode 100644 index 00000000000..2db9ebed9a0 --- /dev/null +++ b/ui/src/components/markdown/tool-calls-render/index.ts @@ -0,0 +1,6 @@ +export interface ToolCalls { + type: string + icon?: string + title: string + content: any +} diff --git a/ui/src/components/markdown/tool-calls-render/index.vue b/ui/src/components/markdown/tool-calls-render/index.vue new file mode 100644 index 00000000000..2bd07959cc0 --- /dev/null +++ b/ui/src/components/markdown/tool-calls-render/index.vue @@ -0,0 +1,30 @@ + + +