mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-07 05:39:05 +08:00
feat: add knowledge base filter (#1822)
* feat: add search filter * chore
This commit is contained in:
parent
7feeb07624
commit
78290ca70e
@ -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>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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>
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user