import { FormFieldConfig, FormFieldType } from '@/components/dynamic-form';
import {
EmbeddingSelect,
LLMSelect,
} from '@/pages/dataset/dataset-setting/configuration/common-item';
import { TFunction } from 'i18next';
export enum MemoryType {
Raw = 'raw',
Semantic = 'semantic',
Episodic = 'episodic',
Procedural = 'procedural',
}
export const createMemoryFields = (t: TFunction) =>
[
{
name: 'name',
label: t('memories.name'),
placeholder: t('memories.memoryNamePlaceholder'),
required: true,
},
{
name: 'memory_type',
label: t('memories.memoryType'),
type: FormFieldType.MultiSelect,
placeholder: t('memories.descriptionPlaceholder'),
tooltip: t('memories.memoryTypeTooltip'),
options: [
{ label: 'Raw', value: MemoryType.Raw },
{ label: 'Semantic', value: MemoryType.Semantic },
{ label: 'Episodic', value: MemoryType.Episodic },
{ label: 'Procedural', value: MemoryType.Procedural },
],
required: true,
customValidate: (value) => {
if (!value.includes(MemoryType.Raw) || !value.length) {
return t('memories.embeddingModelError');
}
return true;
},
},
{
name: 'embd_id',
label: t('memories.embeddingModel'),
placeholder: t('memories.selectModel'),
tooltip: t('memories.embeddingModelTooltip'),
required: true,
// hideLabel: true,
// type: 'custom',
render: (field) => ,
},
{
name: 'llm_id',
label: t('memories.llm'),
placeholder: t('memories.selectModel'),
required: true,
type: FormFieldType.Select,
tooltip: t('memories.llmTooltip'),
render: (field) => ,
},
] as FormFieldConfig[];
export const defaultMemoryFields = {
name: '',
memory_type: [MemoryType.Raw],
embd_id: '',
llm_id: '',
};