summaryrefslogtreecommitdiffstats
path: root/usecaseui-portal/src/app/views/robot/robot.component.ts
diff options
context:
space:
mode:
Diffstat (limited to 'usecaseui-portal/src/app/views/robot/robot.component.ts')
-rw-r--r--usecaseui-portal/src/app/views/robot/robot.component.ts39
1 files changed, 39 insertions, 0 deletions
diff --git a/usecaseui-portal/src/app/views/robot/robot.component.ts b/usecaseui-portal/src/app/views/robot/robot.component.ts
new file mode 100644
index 00000000..d4438c4f
--- /dev/null
+++ b/usecaseui-portal/src/app/views/robot/robot.component.ts
@@ -0,0 +1,39 @@
+import { Component, OnInit } from '@angular/core';
+import { NzMessageService } from 'ng-zorro-antd';
+import { HttpClient } from '@angular/common/http';
+import { SSE } from "sse.js";
+
+@Component({
+ selector: 'app-robot',
+ templateUrl: './robot.component.html',
+ styleUrls: ['./robot.component.less']
+})
+export class RobotComponent implements OnInit {
+
+ question: string;
+ communicationMessage: string;
+ chatHistory: { question: string, answer: string }[] = [];
+ apiUrl = '/api/usecaseui-llm-adaptation/v1/stream';
+
+ constructor(
+ private http: HttpClient,
+ private message: NzMessageService
+ ) { }
+ ngOnInit() {}
+
+ submitQuestion() {
+ var source = new SSE(this.apiUrl,{headers: {'Content-Type': 'text/plain'},payload: this.question,method:'POST'});
+ var lin = this.question;
+ const length = this.chatHistory.length;
+ source.addEventListener('message',(event)=>{
+ let newData = event.data.replace(/\\x0A/g,'\n');
+ const lengthNew = this.chatHistory.length;
+ if(length==lengthNew){
+ this.chatHistory.push({question:lin,answer:newData});
+ } else {
+ this.chatHistory[lengthNew-1].answer = newData;
+ }
+ });
+ this.question = '';
+ }
+}