'use client' import type { FC } from 'react' import React, { useState } from 'react' import { useTranslation } from 'react-i18next' import ItemPanel from './item-panel' import Button from '@/app/components/base/button' import { XClose } from '@/app/components/base/icons/src/vender/line/general' import { CuteRobote } from '@/app/components/base/icons/src/vender/solid/communication' import { Unblur } from '@/app/components/base/icons/src/vender/solid/education' import Slider from '@/app/components/base/slider' import type { AgentConfig } from '@/models/debug' import { DEFAULT_AGENT_PROMPT } from '@/config' type Props = { isChatModel: boolean payload: AgentConfig isFunctionCall: boolean onCancel: () => void onSave: (payload: any) => void } const maxIterationsMin = 1 const maxIterationsMax = 5 const AgentSetting: FC = ({ isChatModel, payload, isFunctionCall, onCancel, onSave, }) => { const { t } = useTranslation() const [tempPayload, setTempPayload] = useState(payload) const handleSave = () => { onSave(tempPayload) } return (
{t('appDebug.agent.setting.name')}
{/* Body */}
{/* Agent Mode */} } name={t('appDebug.agent.agentMode')} description={t('appDebug.agent.agentModeDes')} >
{isFunctionCall ? t('appDebug.agent.agentModeType.functionCall') : t('appDebug.agent.agentModeType.ReACT')}
} name={t('appDebug.agent.setting.maximumIterations.name')} description={t('appDebug.agent.setting.maximumIterations.description')} >
{ setTempPayload({ ...tempPayload, max_iteration: value, }) }} /> { let value = parseInt(e.target.value, 10) if (value < maxIterationsMin) value = maxIterationsMin if (value > maxIterationsMax) value = maxIterationsMax setTempPayload({ ...tempPayload, max_iteration: value, }) }} />
{!isFunctionCall && (
{t('tools.builtInPromptTitle')}
{isChatModel ? DEFAULT_AGENT_PROMPT.chat : DEFAULT_AGENT_PROMPT.completion}
{(isChatModel ? DEFAULT_AGENT_PROMPT.chat : DEFAULT_AGENT_PROMPT.completion).length}
)}
) } export default React.memo(AgentSetting)