3838 <DeleteOutlined /> 删除数据库
3939 </a-button >
4040 <a-button key =" back" @click =" editModalVisible = false" >取消</a-button >
41- <a-button key =" submit" type =" primary" :loading = " loading " @click =" handleEditSubmit" >确定</a-button >
41+ <a-button key =" submit" type =" primary" @click =" handleEditSubmit" >确定</a-button >
4242 </template >
4343 <a-form :model =" editForm" :rules =" rules" ref =" editFormRef" layout =" vertical" >
4444 <a-form-item label =" 知识库名称" name =" name" required >
4747 <a-form-item label =" 知识库描述" name =" description" >
4848 <a-textarea v-model:value =" editForm.description" placeholder =" 请输入知识库描述" :rows =" 4" />
4949 </a-form-item >
50+ <!-- 仅对 LightRAG 类型显示 LLM 配置 -->
51+ <a-form-item v-if =" database.kb_type === 'lightrag'" label =" 语言模型 (LLM)" name =" llm_info" >
52+ <ModelSelectorComponent
53+ :model_spec =" llmModelSpec"
54+ placeholder =" 请选择模型"
55+ @select-model =" handleLLMSelect"
56+ style =" width : 100% ;"
57+ />
58+ </a-form-item >
5059 </a-form >
5160 </a-modal >
5261</template >
@@ -62,6 +71,7 @@ import {
6271 DeleteOutlined ,
6372} from ' @ant-design/icons-vue' ;
6473import HeaderComponent from ' @/components/HeaderComponent.vue' ;
74+ import ModelSelectorComponent from ' @/components/ModelSelectorComponent.vue' ;
6575import { h } from ' vue' ;
6676
6777const router = useRouter ();
@@ -74,7 +84,11 @@ const editModalVisible = ref(false);
7484const editFormRef = ref (null );
7585const editForm = reactive ({
7686 name: ' ' ,
77- description: ' '
87+ description: ' ' ,
88+ llm_info: {
89+ provider: ' ' ,
90+ model_name: ' '
91+ }
7892});
7993
8094const rules = {
@@ -88,21 +102,59 @@ const backToDatabase = () => {
88102const showEditModal = () => {
89103 editForm .name = database .value .name || ' ' ;
90104 editForm .description = database .value .description || ' ' ;
105+ // 如果是 LightRAG 类型,加载当前的 LLM 配置
106+ if (database .value .kb_type === ' lightrag' ) {
107+ const llmInfo = database .value .llm_info || {};
108+ editForm .llm_info .provider = llmInfo .provider || ' ' ;
109+ editForm .llm_info .model_name = llmInfo .model_name || ' ' ;
110+ }
91111 editModalVisible .value = true ;
92112};
93113
94114const handleEditSubmit = () => {
95115 editFormRef .value .validate ().then (async () => {
96- await store . updateDatabaseInfo ( {
116+ const updateData = {
97117 name: editForm .name ,
98118 description: editForm .description
99- });
119+ };
120+
121+ // 如果是 LightRAG 类型,包含 llm_info
122+ if (database .value .kb_type === ' lightrag' ) {
123+ updateData .llm_info = {
124+ provider: editForm .llm_info .provider ,
125+ model_name: editForm .llm_info .model_name
126+ };
127+ }
128+
129+ await store .updateDatabaseInfo (updateData);
100130 editModalVisible .value = false ;
101131 }).catch (err => {
102132 console .error (' 表单验证失败:' , err);
103133 });
104134};
105135
136+ // LLM 模型选择处理
137+ const llmModelSpec = computed (() => {
138+ const provider = editForm .llm_info ? .provider || ' ' ;
139+ const modelName = editForm .llm_info ? .model_name || ' ' ;
140+ if (provider && modelName) {
141+ return ` ${ provider} /${ modelName} ` ;
142+ }
143+ return ' ' ;
144+ });
145+
146+ const handleLLMSelect = (spec ) => {
147+ console .log (' LLM选择:' , spec);
148+ if (typeof spec !== ' string' || ! spec) return ;
149+
150+ const index = spec .indexOf (' /' );
151+ const provider = index !== - 1 ? spec .slice (0 , index) : ' ' ;
152+ const modelName = index !== - 1 ? spec .slice (index + 1 ) : ' ' ;
153+
154+ editForm .llm_info .provider = provider;
155+ editForm .llm_info .model_name = modelName;
156+ };
157+
106158const deleteDatabase = () => {
107159 store .deleteDatabase ();
108160};
0 commit comments