+ {metadataType === MetadataType.Setting
+ ? t('knowledgeDetails.metadata.fieldSetting')
+ : t('knowledgeDetails.metadata.editMetadata')}
+
+ }
visible={manageValuesVisible}
hideModal={hideManageValuesModal}
data={valueData}
diff --git a/web/src/pages/dataset/components/metedata/manage-values-modal.tsx b/web/src/pages/dataset/components/metedata/manage-values-modal.tsx
index 1cee907f6..5bb0f2e92 100644
--- a/web/src/pages/dataset/components/metedata/manage-values-modal.tsx
+++ b/web/src/pages/dataset/components/metedata/manage-values-modal.tsx
@@ -154,7 +154,7 @@ export const ManageValuesModal = (props: IManageValuesProps) => {
open={visible}
onCancel={handleHideModal}
className="!w-[460px]"
- okText={t('common.save')}
+ okText={t('common.confirm')}
onOk={handleSave}
maskClosable={false}
footer={null}
diff --git a/web/src/pages/dataset/dataset-setting/configuration/common-item.tsx b/web/src/pages/dataset/dataset-setting/configuration/common-item.tsx
index 16d9c6d96..8599af56d 100644
--- a/web/src/pages/dataset/dataset-setting/configuration/common-item.tsx
+++ b/web/src/pages/dataset/dataset-setting/configuration/common-item.tsx
@@ -3,7 +3,10 @@ import {
FormFieldType,
RenderField,
} from '@/components/dynamic-form';
-import { SelectWithSearch } from '@/components/originui/select-with-search';
+import {
+ SelectWithSearch,
+ SelectWithSearchFlagOptionType,
+} from '@/components/originui/select-with-search';
import { SliderInputFormField } from '@/components/slider-input-form-field';
import { Button } from '@/components/ui/button';
import {
@@ -16,7 +19,9 @@ import {
import { Radio } from '@/components/ui/radio';
import { Spin } from '@/components/ui/spin';
import { Switch } from '@/components/ui/switch';
+import { LlmModelType } from '@/constants/knowledge';
import { useTranslate } from '@/hooks/common-hooks';
+import { useComposeLlmOptionsByModelTypes } from '@/hooks/use-llm-request';
import { cn } from '@/lib/utils';
import { t } from 'i18next';
import { Settings } from 'lucide-react';
@@ -41,6 +46,8 @@ import {
interface IProps {
line?: 1 | 2;
isEdit?: boolean;
+ label?: string;
+ name?: string;
}
export function ChunkMethodItem(props: IProps) {
const { line } = props;
@@ -368,7 +375,7 @@ export function AutoMetadata() {
type: FormFieldType.Custom,
horizontal: true,
defaultValue: true,
-
+ tooltip: t('knowledgeConfiguration.autoMetadataTip'),
render: (fieldProps: ControllerRenderProps) => (
);
}
+
+export const LLMSelect = ({
+ isEdit,
+ field,
+ disabled = false,
+}: {
+ isEdit: boolean;
+ field: FieldValues;
+ name?: string;
+ disabled?: boolean;
+}) => {
+ const { t } = useTranslate('knowledgeConfiguration');
+ const modelOptions = useComposeLlmOptionsByModelTypes([
+ LlmModelType.Chat,
+ LlmModelType.Image2text,
+ ]);
+ return (
+
{
+ field.onChange(value);
+ }}
+ disabled={disabled && !isEdit}
+ value={field.value}
+ options={modelOptions as SelectWithSearchFlagOptionType[]}
+ placeholder={t('embeddingModelPlaceholder')}
+ />
+ );
+};
+
+export function LLMModelItem({ line = 1, isEdit, label, name }: IProps) {
+ const { t } = useTranslate('knowledgeConfiguration');
+ const form = useFormContext();
+ const disabled = useHasParsedDocument(isEdit);
+ return (
+ <>
+ (
+
+
+
+ {label ?? t('llmModel')}
+
+
+
+
+
+
+
+
+
+ )}
+ />
+ >
+ );
+}
diff --git a/web/src/pages/dataset/dataset-setting/form-schema.ts b/web/src/pages/dataset/dataset-setting/form-schema.ts
index 4f23b05b2..01a08a930 100644
--- a/web/src/pages/dataset/dataset-setting/form-schema.ts
+++ b/web/src/pages/dataset/dataset-setting/form-schema.ts
@@ -96,6 +96,7 @@ export const formSchema = z
)
.optional(),
enable_metadata: z.boolean().optional(),
+ llm_id: z.string().optional(),
})
.optional(),
pagerank: z.number(),
diff --git a/web/src/pages/dataset/dataset-setting/index.tsx b/web/src/pages/dataset/dataset-setting/index.tsx
index 4d883ed4b..7c6082ed7 100644
--- a/web/src/pages/dataset/dataset-setting/index.tsx
+++ b/web/src/pages/dataset/dataset-setting/index.tsx
@@ -93,6 +93,7 @@ export default function DatasetSettings() {
},
metadata: [],
enable_metadata: false,
+ llm_id: '',
},
pipeline_id: '',
parseType: 1,
diff --git a/web/src/pages/memories/add-or-edit-modal.tsx b/web/src/pages/memories/add-or-edit-modal.tsx
index 0c3a28cfc..238425608 100644
--- a/web/src/pages/memories/add-or-edit-modal.tsx
+++ b/web/src/pages/memories/add-or-edit-modal.tsx
@@ -1,5 +1,4 @@
import { DynamicForm } from '@/components/dynamic-form';
-import { useModelOptions } from '@/components/llm-setting-items/llm-form-field';
import { HomeIcon } from '@/components/svg-icon';
import { Modal } from '@/components/ui/modal/modal';
import { memo, useMemo } from 'react';
@@ -18,7 +17,7 @@ type IProps = {
export const AddOrEditModal = memo((props: IProps) => {
const { open, onClose, onSubmit, initialMemory, isCreate } = props;
const { t } = useTranslation();
- const { modelOptions } = useModelOptions();
+ // const { modelOptions } = useModelOptions();
const fields = useMemo(() => {
if (!isCreate) {
@@ -26,21 +25,22 @@ export const AddOrEditModal = memo((props: IProps) => {
(field: any) => field.name === 'name',
);
} else {
- const tempFields = createMemoryFields(t).map((field: any) => {
- if (field.name === 'llm_id') {
- return {
- ...field,
- options: modelOptions,
- };
- } else {
- return {
- ...field,
- };
- }
- });
- return tempFields;
+ // const tempFields = createMemoryFields(t).map((field: any) => {
+ // if (field.name === 'llm_id') {
+ // return {
+ // ...field,
+ // options: modelOptions,
+ // };
+ // } else {
+ // return {
+ // ...field,
+ // };
+ // }
+ // });
+ // return tempFields;
+ return createMemoryFields(t);
}
- }, [modelOptions, isCreate]);
+ }, [isCreate, t]);
return (
required: true,
type: FormFieldType.Select,
tooltip: t('memories.llmTooltip'),
+ render: (field) => ,
},
] as FormFieldConfig[];
diff --git a/web/src/services/knowledge-service.ts b/web/src/services/knowledge-service.ts
index 5a7826f13..265d86983 100644
--- a/web/src/services/knowledge-service.ts
+++ b/web/src/services/knowledge-service.ts
@@ -47,6 +47,7 @@ const {
runRaptor,
traceRaptor,
check_embedding,
+ kbUpdateMetaData,
} = api;
const methods = {
@@ -215,6 +216,10 @@ const methods = {
url: check_embedding,
method: 'post',
},
+ kbUpdateMetaData: {
+ url: kbUpdateMetaData,
+ method: 'post',
+ },
// getMetaData: {
// url: getMetaData,
// method: 'get',
diff --git a/web/src/utils/api.ts b/web/src/utils/api.ts
index 8d2d45268..29c10fa4b 100644
--- a/web/src/utils/api.ts
+++ b/web/src/utils/api.ts
@@ -79,6 +79,7 @@ export default {
pipelineRerun: `${api_host}/canvas/rerun`,
getMetaData: `${api_host}/document/metadata/summary`,
updateMetaData: `${api_host}/document/metadata/update`,
+ kbUpdateMetaData: `${api_host}/kb/update_metadata_setting`,
// tags
listTag: (knowledgeId: string) => `${api_host}/kb/${knowledgeId}/tags`,