diff --git a/web/src/app/home/knowledge/components/kb-card/KBCardVO.ts b/web/src/app/home/knowledge/components/kb-card/KBCardVO.ts index bfbc2adb..b13d2c24 100644 --- a/web/src/app/home/knowledge/components/kb-card/KBCardVO.ts +++ b/web/src/app/home/knowledge/components/kb-card/KBCardVO.ts @@ -3,6 +3,7 @@ export interface IKnowledgeBaseVO { name: string; description: string; embeddingModelUUID: string; + top_k: number; lastUpdatedTimeAgo: string; } @@ -11,6 +12,7 @@ export class KnowledgeBaseVO implements IKnowledgeBaseVO { name: string; description: string; embeddingModelUUID: string; + top_k: number; lastUpdatedTimeAgo: string; constructor(props: IKnowledgeBaseVO) { @@ -18,6 +20,7 @@ export class KnowledgeBaseVO implements IKnowledgeBaseVO { this.name = props.name; this.description = props.description; this.embeddingModelUUID = props.embeddingModelUUID; + this.top_k = props.top_k; this.lastUpdatedTimeAgo = props.lastUpdatedTimeAgo; } } 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 54d5d6e4..771587f2 100644 --- a/web/src/app/home/knowledge/components/kb-form/KBForm.tsx +++ b/web/src/app/home/knowledge/components/kb-form/KBForm.tsx @@ -35,6 +35,10 @@ const getFormSchema = (t: (key: string) => string) => embeddingModelUUID: z .string() .min(1, { message: t('knowledge.embeddingModelUUIDRequired') }), + top_k: z + .number() + .min(1, { message: t('knowledge.topKRequired') }) + .max(30, { message: t('knowledge.topKMax') }), }); export default function KBForm({ @@ -55,6 +59,7 @@ export default function KBForm({ name: '', description: t('knowledge.defaultDescription'), embeddingModelUUID: '', + top_k: 5, }, }); @@ -69,6 +74,7 @@ export default function KBForm({ form.setValue('name', val.name); form.setValue('description', val.description); form.setValue('embeddingModelUUID', val.embeddingModelUUID); + form.setValue('top_k', val.top_k || 5); }); } }); @@ -83,6 +89,7 @@ export default function KBForm({ name: res.base.name, description: res.base.description, embeddingModelUUID: res.base.embedding_model_uuid, + top_k: res.base.top_k || 5, }); }); }); @@ -109,6 +116,7 @@ export default function KBForm({ name: data.name, description: data.description, embedding_model_uuid: data.embeddingModelUUID, + top_k: data.top_k, }; httpClient .updateKnowledgeBase(initKbId, updateKb) @@ -127,6 +135,7 @@ export default function KBForm({ name: data.name, description: data.description, embedding_model_uuid: data.embeddingModelUUID, + top_k: data.top_k, }; httpClient .createKnowledgeBase(newKb) @@ -226,6 +235,26 @@ export default function KBForm({ )} /> + ( + + + {t('knowledge.topK')} + * + + + field.onChange(Number(e.target.value))} + /> + + + + )} + /> diff --git a/web/src/app/home/knowledge/page.tsx b/web/src/app/home/knowledge/page.tsx index 0a8cc2eb..b290f7be 100644 --- a/web/src/app/home/knowledge/page.tsx +++ b/web/src/app/home/knowledge/page.tsx @@ -46,6 +46,7 @@ export default function KnowledgePage() { name: kb.name, description: kb.description, embeddingModelUUID: kb.embedding_model_uuid, + top_k: kb.top_k, lastUpdatedTimeAgo: lastUpdatedTimeAgoText, }); }), diff --git a/web/src/app/infra/entities/api/index.ts b/web/src/app/infra/entities/api/index.ts index 76d0a1f6..787631a3 100644 --- a/web/src/app/infra/entities/api/index.ts +++ b/web/src/app/infra/entities/api/index.ts @@ -155,6 +155,7 @@ export interface KnowledgeBase { name: string; description: string; embedding_model_uuid: string; + top_k: number; created_at?: string; updated_at?: string; } diff --git a/web/src/i18n/locales/en-US.ts b/web/src/i18n/locales/en-US.ts index 7c306d51..0ee05729 100644 --- a/web/src/i18n/locales/en-US.ts +++ b/web/src/i18n/locales/en-US.ts @@ -252,6 +252,7 @@ const enUS = { today: 'Today', kbName: 'Knowledge Base Name', kbDescription: 'Knowledge Base Description', + topK: 'Top K', defaultDescription: 'A knowledge base', embeddingModelUUID: 'Embedding Model', selectEmbeddingModel: 'Select Embedding Model', diff --git a/web/src/i18n/locales/ja-JP.ts b/web/src/i18n/locales/ja-JP.ts index bdd6374d..a2634d4b 100644 --- a/web/src/i18n/locales/ja-JP.ts +++ b/web/src/i18n/locales/ja-JP.ts @@ -254,6 +254,7 @@ const jaJP = { today: '今日', kbName: '知識ベース名', kbDescription: '知識ベースの説明', + topK: '上位K件', defaultDescription: '知識ベース', embeddingModelUUID: '埋め込みモデル', selectEmbeddingModel: '埋め込みモデルを選択', diff --git a/web/src/i18n/locales/zh-Hans.ts b/web/src/i18n/locales/zh-Hans.ts index 5209c5e2..ec9b3049 100644 --- a/web/src/i18n/locales/zh-Hans.ts +++ b/web/src/i18n/locales/zh-Hans.ts @@ -247,6 +247,7 @@ const zhHans = { today: '今天', kbName: '知识库名称', kbDescription: '知识库描述', + topK: '召回数量', defaultDescription: '一个知识库', embeddingModelUUID: '嵌入模型', selectEmbeddingModel: '选择嵌入模型',