import { DocumentParserType } from '@/constants/knowledge'; import { useTranslate } from '@/hooks/common-hooks'; import { useFetchKnowledgeList } from '@/hooks/knowledge-hooks'; import { UserOutlined } from '@ant-design/icons'; import { Avatar as AntAvatar, Form, Select, Space } from 'antd'; import { Book } from 'lucide-react'; import { useFormContext } from 'react-hook-form'; import { Avatar, AvatarFallback, AvatarImage } from './ui/avatar'; import { FormControl, FormField, FormItem, FormLabel } from './ui/form'; import { MultiSelect } from './ui/multi-select'; interface KnowledgeBaseItemProps { required?: boolean; onChange?(): void; } const KnowledgeBaseItem = ({ required = true, onChange, }: KnowledgeBaseItemProps) => { const { t } = useTranslate('chat'); const { list: knowledgeList } = useFetchKnowledgeList(true); const filteredKnowledgeList = knowledgeList.filter( (x) => x.parser_id !== DocumentParserType.Tag, ); const knowledgeOptions = filteredKnowledgeList.map((x) => ({ label: ( } src={x.avatar} /> {x.name} ), value: x.id, })); return ( ); }; export default KnowledgeBaseItem; export function KnowledgeBaseFormField() { const form = useFormContext(); const { t } = useTranslate('chat'); const { list: knowledgeList } = useFetchKnowledgeList(true); const filteredKnowledgeList = knowledgeList.filter( (x) => x.parser_id !== DocumentParserType.Tag, ); const knowledgeOptions = filteredKnowledgeList.map((x) => ({ label: x.name, value: x.id, icon: () => ( ), })); return ( ( {t('knowledgeBases')} )} /> ); }