({config, disabled})
| 26 | * @returns {JSX.Element} 开始节点Memory组件的Dom |
| 27 | */ |
| 28 | export default function Memory({config, disabled}) { |
| 29 | const dispatch = useDispatch(); |
| 30 | const data = useDataContext(); |
| 31 | const memoryTypeValue = data.find(item => item.name === 'memory').value.find(item => item.name === 'type').value; |
| 32 | const memoryValueValue = data.find(item => item.name === 'memory').value.find(item => item.name === 'value').value; |
| 33 | |
| 34 | const handleSelectClick = (event) => { |
| 35 | event.stopPropagation(); // 阻止事件冒泡 |
| 36 | }; |
| 37 | |
| 38 | // 处理内部组件值变化的回调函数 |
| 39 | const handleComponentValueChange = (valueType, newValue) => { |
| 40 | dispatch({actionType: 'changeMemory', memoryType: memoryTypeValue, memoryValueType: valueType, memoryValue: newValue}); |
| 41 | }; |
| 42 | |
| 43 | // 根据不同的值渲染不同的组件 |
| 44 | const renderComponent = () => { |
| 45 | switch (memoryTypeValue) { |
| 46 | case 'ByConversationTurn': // 按对话轮次(一问一答,0-10,默认3) |
| 47 | return <ByConversationTurn disabled={disabled} |
| 48 | propValue={memoryValueValue} |
| 49 | onValueChange={handleComponentValueChange}/>; |
| 50 | case 'ByNumber': // 按条数(默认20) |
| 51 | return <ByNumber disabled={disabled} |
| 52 | propValue={memoryValueValue} |
| 53 | onValueChange={handleComponentValueChange}/>; |
| 54 | case 'ByTokenSize': // 按token大小 |
| 55 | return <ByTokenSize disabled={disabled} |
| 56 | propValue={memoryValueValue} |
| 57 | onValueChange={handleComponentValueChange}/>; |
| 58 | case 'ByTime': // 按时间 |
| 59 | return <ByTime disabled={disabled} |
| 60 | propValue={memoryValueValue} |
| 61 | onValueChange={handleComponentValueChange}/>; |
| 62 | case 'Customizing': // 自定义(选fitable) |
| 63 | return <Customizing disabled={disabled} |
| 64 | propValue={memoryValueValue} |
| 65 | onValueChange={handleComponentValueChange} |
| 66 | config={config}/>; |
| 67 | case 'UserSelect': // 用户自己勾选(true、false) |
| 68 | return null; |
| 69 | case 'NotUseMemory': // 不使用历史记录 |
| 70 | return null; |
| 71 | default: |
| 72 | return null; |
| 73 | } |
| 74 | }; |
| 75 | |
| 76 | const onChange = (e) => { |
| 77 | let memoryValueType = ''; // 初始化 memoryValueType |
| 78 | let memoryValue = null; // 初始化 memoryValue |
| 79 | |
| 80 | // 由于一级菜单变化时,二级菜单的render还没到,所以二级菜单默认值设置在此,用于dispatch至jadeConfig中,二级菜单读取jadeConfig值进行渲染 |
| 81 | // 根据选择的值设置 memoryType 和 memoryValueType |
| 82 | switch (e) { |
| 83 | case 'ByConversationTurn': |
| 84 | memoryValueType = 'Integer'; |
| 85 | memoryValue = '3'; |
nothing calls this directly
no test coverage detected