diff --git a/web/src/app/home/knowledge/components/kb-form/KBForm.tsx b/web/src/app/home/knowledge/components/kb-form/KBForm.tsx index 0804ee12..6c9bdd8c 100644 --- a/web/src/app/home/knowledge/components/kb-form/KBForm.tsx +++ b/web/src/app/home/knowledge/components/kb-form/KBForm.tsx @@ -13,7 +13,6 @@ import { FormMessage, FormDescription, } from '@/components/ui/form'; -import { IEmbeddingModelEntity } from './ChooseEntity'; import { httpClient } from '@/app/infra/http/HttpClient'; import { Select, @@ -23,8 +22,13 @@ import { SelectTrigger, SelectValue, } from '@/components/ui/select'; -import { KnowledgeBase } from '@/app/infra/entities/api'; +import { KnowledgeBase, EmbeddingModel } from '@/app/infra/entities/api'; import { toast } from 'sonner'; +import { + HoverCard, + HoverCardContent, + HoverCardTrigger, +} from '@/components/ui/hover-card'; const getFormSchema = (t: (key: string) => string) => z.object({ @@ -63,9 +67,7 @@ export default function KBForm({ }, }); - const [embeddingModelNameList, setEmbeddingModelNameList] = useState< - IEmbeddingModelEntity[] - >([]); + const [embeddingModels, setEmbeddingModels] = useState([]); useEffect(() => { getEmbeddingModelNameList().then(() => { @@ -97,14 +99,7 @@ export default function KBForm({ const getEmbeddingModelNameList = async () => { const resp = await httpClient.getProviderEmbeddingModels(); - setEmbeddingModelNameList( - resp.models.map((item) => { - return { - label: item.name, - value: item.uuid, - }; - }), - ); + setEmbeddingModels(resp.models); }; const onSubmit = (data: z.infer) => { @@ -216,10 +211,87 @@ export default function KBForm({ - {embeddingModelNameList.map((item) => ( - - {item.label} - + {embeddingModels.map((model) => ( + + + + {model.name} + + + +
+
+ icon +

+ {model.name} +

+
+

+ {model.description} +

+ {model.requester_config && ( +
+ + + + + Base URL: + + {model.requester_config.base_url} +
+ )} + {model.extra_args && + Object.keys(model.extra_args).length > + 0 && ( +
+
+ {t('models.extraParameters')} +
+
+ {Object.entries( + model.extra_args as Record< + string, + unknown + >, + ).map(([key, value]) => ( +
+ + {key}: + + + {JSON.stringify(value)} + +
+ ))} +
+
+ )} +
+
+
))}