1 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
2 import { Util } from '../../../../shared/utils/utils';
3 import { NzMessageService, UploadFile } from 'ng-zorro-antd';
4 import { HttpClient, HttpHeaders } from '@angular/common/http';
5 import { FormBuilder, FormGroup, Validators } from '@angular/forms';
6 import { MaasService } from '@src/app/core/services/maas.service';
9 selector: 'app-create-knowledge-base',
10 templateUrl: './create-knowledge-base.component.html',
11 styleUrls: ['./create-knowledge-base.component.less']
13 export class CreateKnowledgeBaseComponent implements OnInit {
14 title = 'Add Knowledge Base';
15 @Input() showModal: boolean;
16 @Output() modalOpreation = new EventEmitter();
18 apiUrl = '/api/usecaseui-llm-adaptation/v1/knowledgeBase/create';
19 maasUrl = '/api/usecaseui-llm-adaptation/v1/operator/maas/getAll'
20 fileList: UploadFile[] = [];
21 operators: any[] = [];
22 filteredPlatforms: any[] = [];
23 validateForm: FormGroup;
26 private myhttp: MaasService,
28 private message: NzMessageService,
29 private http: HttpClient,
30 private fb: FormBuilder
34 this.fetchOperators();
35 this.validateForm = this.fb.group({
36 name: [null, [Validators.required]],
38 selectedOperator: [null, [Validators.required]],
39 selectedPlatform: [null, [Validators.required]],
42 fetchOperators(): void {
43 this.http.get<any>(this.maasUrl).subscribe(
45 this.operators = response.result_body;
48 this.message.error('Failed to fetch operators');
53 for (const i in this.validateForm.controls) {
54 this.validateForm.controls[i].markAsDirty();
55 this.validateForm.controls[i].updateValueAndValidity();
58 handleOperatorChange(value: any): void {
60 this.filteredPlatforms = value.maaSPlatformList;
62 this.filteredPlatforms = [];
64 this.validateForm.get('selectedPlatform').setValue(null);
66 beforeUpload = (file: UploadFile): boolean => {
67 this.fileList.push(file);
70 handleCancel(): void {
71 this.showModal = false;
72 this.modalOpreation.emit({ "cancel": true });
76 const formData = new FormData();
78 knowledgeBaseName: this.validateForm.value.name,
79 knowledgeBaseDescription: this.validateForm.value.description,
80 operatorId: this.validateForm.value.selectedOperator.operatorId,
81 operatorName: this.validateForm.value.selectedOperator.operatorName,
82 maaSPlatformId: this.validateForm.value.selectedPlatform.maaSPlatformId,
83 maaSPlatformName: this.validateForm.value.selectedPlatform.maaSPlatformName
85 const metaDataJson = JSON.stringify(metaData);
86 formData.append('metaData', metaDataJson);
87 this.fileList.forEach((file: any) => {
88 formData.append('files', file);
95 if (this.validateForm.invalid) {
96 this.showModal = true;
99 this.http.post<any>(this.apiUrl, this.constructBody()).subscribe(
101 if (response.result_header.result_code === 200) {
102 this.message.success('Created successfully');
104 this.message.error(response.result_header.result_message);
106 this.modalOpreation.emit({ "cancel": false });
109 console.log('Upload failed', error);