feat(web): agent compare chat add variables
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
* @Author: ZhaoYing
|
* @Author: ZhaoYing
|
||||||
* @Date: 2026-02-03 16:29:21
|
* @Date: 2026-02-03 16:29:21
|
||||||
* @Last Modified by: ZhaoYing
|
* @Last Modified by: ZhaoYing
|
||||||
* @Last Modified time: 2026-03-03 11:14:30
|
* @Last Modified time: 2026-03-03 14:24:34
|
||||||
*/
|
*/
|
||||||
import { type FC, type ReactNode, useEffect, useRef, useState, forwardRef, useImperativeHandle } from 'react';
|
import { type FC, type ReactNode, useEffect, useRef, useState, forwardRef, useImperativeHandle } from 'react';
|
||||||
import clsx from 'clsx'
|
import clsx from 'clsx'
|
||||||
@@ -403,6 +403,9 @@ const Agent = forwardRef<AgentRef>((_props, ref) => {
|
|||||||
const handleSaveChatVariable = (values: Variable[]) => {
|
const handleSaveChatVariable = (values: Variable[]) => {
|
||||||
setChatVariables(values)
|
setChatVariables(values)
|
||||||
}
|
}
|
||||||
|
useEffect(() => {
|
||||||
|
setChatVariables(values?.variables || [])
|
||||||
|
}, [values?.variables])
|
||||||
console.log('values', values)
|
console.log('values', values)
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -507,6 +510,7 @@ const Agent = forwardRef<AgentRef>((_props, ref) => {
|
|||||||
chatList={chatList}
|
chatList={chatList}
|
||||||
updateChatList={setChatList}
|
updateChatList={setChatList}
|
||||||
handleSave={handleSave}
|
handleSave={handleSave}
|
||||||
|
chatVariables={chatVariables}
|
||||||
/>
|
/>
|
||||||
</RbCard>
|
</RbCard>
|
||||||
</Col>
|
</Col>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* @Author: ZhaoYing
|
* @Author: ZhaoYing
|
||||||
* @Date: 2026-02-03 16:27:39
|
* @Date: 2026-02-03 16:27:39
|
||||||
* @Last Modified by: ZhaoYing
|
* @Last Modified by: ZhaoYing
|
||||||
* @Last Modified time: 2026-02-10 17:40:15
|
* @Last Modified time: 2026-03-03 14:21:54
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* Chat debugging component for application testing
|
* Chat debugging component for application testing
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
import { type FC, useEffect, useState, useRef } from 'react';
|
import { type FC, useEffect, useState, useRef } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import clsx from 'clsx'
|
import clsx from 'clsx'
|
||||||
import { Flex, Dropdown, type MenuProps } from 'antd'
|
import { Flex, Dropdown, type MenuProps, App } from 'antd'
|
||||||
|
|
||||||
import ChatIcon from '@/assets/images/application/chat.png'
|
import ChatIcon from '@/assets/images/application/chat.png'
|
||||||
import DebuggingEmpty from '@/assets/images/application/debuggingEmpty.png'
|
import DebuggingEmpty from '@/assets/images/application/debuggingEmpty.png'
|
||||||
@@ -28,6 +28,7 @@ import UploadFiles from '@/views/Conversation/components/FileUpload'
|
|||||||
// import AudioRecorder from '@/components/AudioRecorder'
|
// import AudioRecorder from '@/components/AudioRecorder'
|
||||||
import UploadFileListModal from '@/views/Conversation/components/UploadFileListModal'
|
import UploadFileListModal from '@/views/Conversation/components/UploadFileListModal'
|
||||||
import type { UploadFileListModalRef } from '@/views/Conversation/types'
|
import type { UploadFileListModalRef } from '@/views/Conversation/types'
|
||||||
|
import type { Variable } from './VariableList/types'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Component props
|
* Component props
|
||||||
@@ -43,14 +44,16 @@ interface ChatProps {
|
|||||||
handleSave: (flag?: boolean) => Promise<unknown>;
|
handleSave: (flag?: boolean) => Promise<unknown>;
|
||||||
/** Source type: multi-agent cluster or single agent */
|
/** Source type: multi-agent cluster or single agent */
|
||||||
source?: 'multi_agent' | 'agent';
|
source?: 'multi_agent' | 'agent';
|
||||||
|
chatVariables?: Variable[]; // Add chatVariables prop
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Chat debugging component
|
* Chat debugging component
|
||||||
* Allows testing application with different model configurations side-by-side
|
* Allows testing application with different model configurations side-by-side
|
||||||
*/
|
*/
|
||||||
const Chat: FC<ChatProps> = ({ chatList, data, updateChatList, handleSave, source = 'agent' }) => {
|
const Chat: FC<ChatProps> = ({ chatList, data, updateChatList, handleSave, source = 'agent', chatVariables }) => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
const { message: messageApi } = App.useApp()
|
||||||
const [loading, setLoading] = useState(false)
|
const [loading, setLoading] = useState(false)
|
||||||
const [isCluster, setIsCluster] = useState(source === 'multi_agent')
|
const [isCluster, setIsCluster] = useState(source === 'multi_agent')
|
||||||
const [conversationId, setConversationId] = useState<string | null>(null)
|
const [conversationId, setConversationId] = useState<string | null>(null)
|
||||||
@@ -195,6 +198,27 @@ const Chat: FC<ChatProps> = ({ chatList, data, updateChatList, handleSave, sourc
|
|||||||
};
|
};
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
// Validate required variables before sending
|
||||||
|
let isCanSend = true
|
||||||
|
const params: Record<string, any> = {}
|
||||||
|
if (chatVariables && chatVariables.length > 0) {
|
||||||
|
const needRequired: string[] = []
|
||||||
|
chatVariables.forEach(vo => {
|
||||||
|
params[vo.name] = vo.value
|
||||||
|
|
||||||
|
if (vo.required && (params[vo.name] === null || params[vo.name] === undefined || params[vo.name] === '')) {
|
||||||
|
isCanSend = false
|
||||||
|
needRequired.push(vo.name)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (needRequired.length) {
|
||||||
|
messageApi.error(`${needRequired.join(',')} ${t('workflow.variableRequired')}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!isCanSend) {
|
||||||
|
return
|
||||||
|
}
|
||||||
runCompare(data.app_id, {
|
runCompare(data.app_id, {
|
||||||
message,
|
message,
|
||||||
files: fileList.map(file => {
|
files: fileList.map(file => {
|
||||||
@@ -214,7 +238,7 @@ const Chat: FC<ChatProps> = ({ chatList, data, updateChatList, handleSave, sourc
|
|||||||
model_parameters: item.model_parameters,
|
model_parameters: item.model_parameters,
|
||||||
conversation_id: item.conversation_id
|
conversation_id: item.conversation_id
|
||||||
})),
|
})),
|
||||||
variables: {},
|
variables: params,
|
||||||
"parallel": true,
|
"parallel": true,
|
||||||
"stream": true,
|
"stream": true,
|
||||||
"timeout": 60,
|
"timeout": 60,
|
||||||
|
|||||||
Reference in New Issue
Block a user