feat: add knowledge base filter (#1822)

* feat: add search filter

* chore
This commit is contained in:
Chen Tao 2025-02-17 22:18:10 +08:00 committed by GitHub
parent 7feeb07624
commit 78290ca70e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 9 deletions

View File

@ -37,8 +37,8 @@ const PopupContainer: React.FC<Props> = ({ resolve }) => {
const [emoji, setEmoji] = useState('') const [emoji, setEmoji] = useState('')
const [loading, setLoading] = useState(false) const [loading, setLoading] = useState(false)
const knowledgeState = useAppSelector((state) => state.knowledge) const knowledgeState = useAppSelector((state) => state.knowledge)
const knowledgeOptions: SelectProps['options'] = []
const showKnowledgeIcon = useSidebarIconShow('knowledge') const showKnowledgeIcon = useSidebarIconShow('knowledge')
const knowledgeOptions: SelectProps['options'] = []
knowledgeState.bases.forEach((base) => { knowledgeState.bases.forEach((base) => {
knowledgeOptions.push({ knowledgeOptions.push({
@ -163,6 +163,11 @@ const PopupContainer: React.FC<Props> = ({ resolve }) => {
placeholder={t('agents.add.knowledge_base.placeholder')} placeholder={t('agents.add.knowledge_base.placeholder')}
menuItemSelectedIcon={<CheckOutlined />} menuItemSelectedIcon={<CheckOutlined />}
options={knowledgeOptions} options={knowledgeOptions}
filterOption={(input, option) =>
String(option?.label ?? '')
.toLowerCase()
.includes(input.toLowerCase())
}
/> />
</Form.Item> </Form.Item>
)} )}

View File

@ -33,6 +33,11 @@ const KnowledgeBaseSelector: FC<Props> = ({ selectedBases, onSelect }) => {
placeholder={t('agents.add.knowledge_base.placeholder')} placeholder={t('agents.add.knowledge_base.placeholder')}
menuItemSelectedIcon={<CheckOutlined />} menuItemSelectedIcon={<CheckOutlined />}
options={knowledgeOptions} options={knowledgeOptions}
filterOption={(input, option) =>
String(option?.label ?? '')
.toLowerCase()
.includes(input.toLowerCase())
}
onChange={(ids) => { onChange={(ids) => {
const newSelected = knowledgeState.bases.filter((base) => ids.includes(base.id)) const newSelected = knowledgeState.bases.filter((base) => ids.includes(base.id))
onSelect(newSelected) onSelect(newSelected)

View File

@ -16,14 +16,10 @@ const AssistantKnowledgeBaseSettings: React.FC<Props> = ({ assistant, updateAssi
const { t } = useTranslation() const { t } = useTranslation()
const knowledgeState = useAppSelector((state) => state.knowledge) const knowledgeState = useAppSelector((state) => state.knowledge)
const knowledgeOptions: SelectProps['options'] = [] const knowledgeOptions: SelectProps['options'] = knowledgeState.bases.map((base) => ({
label: base.name,
knowledgeState.bases.forEach((base) => { value: base.id
knowledgeOptions.push({ }))
label: base.name,
value: base.id
})
})
const onUpdate = (value) => { const onUpdate = (value) => {
const knowledge_bases = value.map((id) => knowledgeState.bases.find((b) => b.id === id)) const knowledge_bases = value.map((id) => knowledgeState.bases.find((b) => b.id === id))
@ -44,6 +40,11 @@ const AssistantKnowledgeBaseSettings: React.FC<Props> = ({ assistant, updateAssi
menuItemSelectedIcon={<CheckOutlined />} menuItemSelectedIcon={<CheckOutlined />}
options={knowledgeOptions} options={knowledgeOptions}
onChange={(value) => onUpdate(value)} onChange={(value) => onUpdate(value)}
filterOption={(input, option) =>
String(option?.label ?? '')
.toLowerCase()
.includes(input.toLowerCase())
}
/> />
</Container> </Container>
) )