'use client' import type { FC } from 'react' import React from 'react' import type { ThoughtItem, ToolInfoInThought } from '../type' import ToolDetail from '@/app/components/chat/answer/tool-detail' export interface IThoughtProps { thought: ThoughtItem isFinished: boolean } function getValue(value: string, isValueArray: boolean, index: number) { if (isValueArray) { try { return JSON.parse(value)[index] } catch (e) { } } return value } const Thought: FC = ({ thought, isFinished, }) => { const [toolNames, isValueArray]: [string[], boolean] = (() => { try { if (Array.isArray(JSON.parse(thought.tool))) return [JSON.parse(thought.tool), true] } catch (e) { } return [[thought.tool], false] })() const toolThoughtList = toolNames.map((toolName, index) => { return { name: toolName, label: thought.tool_labels?.toolName?.language ?? toolName, input: getValue(thought.tool_input, isValueArray, index), output: getValue(thought.observation, isValueArray, index), isFinished, } }) return (
{toolThoughtList.map((item: ToolInfoInThought, index) => ( ))}
) } export default React.memo(Thought)