({ items, contentType, params, parentId })
| 306 | } |
| 307 | |
| 308 | async function addFiles({ items, contentType, params, parentId }) { |
| 309 | if (items.length === 0) { |
| 310 | message.error(contentType === 'file' ? '请先上传文件' : '请输入有效的网页链接') |
| 311 | return |
| 312 | } |
| 313 | |
| 314 | state.chunkLoading = true |
| 315 | try { |
| 316 | const requestParams = { ...params, content_type: contentType } |
| 317 | if (parentId) { |
| 318 | requestParams.parent_id = parentId |
| 319 | } |
| 320 | const data = await documentApi.addDocuments(kbId.value, items, requestParams) |
| 321 | if (data.status === 'success' || data.status === 'queued') { |
| 322 | const itemType = contentType === 'file' ? '文件' : 'URL' |
| 323 | enableAutoRefresh('auto') |
| 324 | message.success(data.message || `${itemType}已提交处理,请在任务中心查看进度`) |
| 325 | if (data.task_id) { |
| 326 | taskerStore.registerQueuedTask({ |
| 327 | task_id: data.task_id, |
| 328 | name: `知识库导入 (${kbId.value || ''})`, |
| 329 | task_type: 'knowledge_ingest', |
| 330 | message: data.message, |
| 331 | payload: { |
| 332 | kb_id: kbId.value, |
| 333 | count: items.length, |
| 334 | content_type: contentType |
| 335 | } |
| 336 | }) |
| 337 | } |
| 338 | await delayedRefresh() // 延迟1秒后刷新 |
| 339 | return true // Indicate success |
| 340 | } else { |
| 341 | message.error(data.message || '处理失败') |
| 342 | return false |
| 343 | } |
| 344 | } catch (error) { |
| 345 | console.error(error) |
| 346 | message.error(error.message || '处理请求失败') |
| 347 | return false |
| 348 | } finally { |
| 349 | state.chunkLoading = false |
| 350 | } |
| 351 | } |
| 352 | |
| 353 | async function parseFiles(fileIds) { |
| 354 | if (fileIds.length === 0) return |
nothing calls this directly
no test coverage detected