選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

index.tsx 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import LLMSelect from '@/components/llm-select';
  2. import { useTranslate } from '@/hooks/commonHooks';
  3. import { Form, Select } from 'antd';
  4. import { Operator } from '../constant';
  5. import {
  6. useBuildFormSelectOptions,
  7. useHandleFormSelectChange,
  8. } from '../form-hooks';
  9. import { useSetLlmSetting } from '../hooks';
  10. import { IOperatorForm } from '../interface';
  11. import { useWatchConnectionChanges } from './hooks';
  12. const RelevantForm = ({ onValuesChange, form, node }: IOperatorForm) => {
  13. const { t } = useTranslate('flow');
  14. useSetLlmSetting(form);
  15. const buildRelevantOptions = useBuildFormSelectOptions(
  16. Operator.Relevant,
  17. node?.id,
  18. );
  19. useWatchConnectionChanges({ nodeId: node?.id, form });
  20. const { handleSelectChange } = useHandleFormSelectChange(node?.id);
  21. return (
  22. <Form
  23. name="basic"
  24. labelCol={{ span: 4 }}
  25. wrapperCol={{ span: 20 }}
  26. onValuesChange={onValuesChange}
  27. autoComplete="off"
  28. form={form}
  29. >
  30. <Form.Item
  31. name={'llm_id'}
  32. label={t('model', { keyPrefix: 'chat' })}
  33. tooltip={t('modelTip', { keyPrefix: 'chat' })}
  34. >
  35. <LLMSelect></LLMSelect>
  36. </Form.Item>
  37. <Form.Item label={t('yes')} name={'yes'}>
  38. <Select
  39. allowClear
  40. options={buildRelevantOptions([form?.getFieldValue('no')])}
  41. onChange={handleSelectChange('yes')}
  42. />
  43. </Form.Item>
  44. <Form.Item label={t('no')} name={'no'}>
  45. <Select
  46. allowClear
  47. options={buildRelevantOptions([form?.getFieldValue('yes')])}
  48. onChange={handleSelectChange('no')}
  49. />
  50. </Form.Item>
  51. </Form>
  52. );
  53. };
  54. export default RelevantForm;