diff options
author | kaixiliu <liukaixi@chinamobile.com> | 2024-05-06 16:07:35 +0800 |
---|---|---|
committer | Kaixi LIU <liukaixi@chinamobile.com> | 2024-05-06 08:42:53 +0000 |
commit | 02810f989a988ad918c439d37e779f6110815d05 (patch) | |
tree | 781ea58e4d3e91ee16023e46fe78630fe48b5458 /usecaseui-portal/src | |
parent | fdefcecfc6d983f5e7e6d3a60a13dcfadc7a7721 (diff) |
Add streaming processing
Issue-ID: USECASEUI-834
Change-Id: I25207cd6eea68a20424ee8da4590a8155fe08173
Signed-off-by: kaixiliu <liukaixi@chinamobile.com>
Diffstat (limited to 'usecaseui-portal/src')
-rw-r--r-- | usecaseui-portal/src/app/views/robot/robot.component.ts | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/usecaseui-portal/src/app/views/robot/robot.component.ts b/usecaseui-portal/src/app/views/robot/robot.component.ts index 5304e876..d4438c4f 100644 --- a/usecaseui-portal/src/app/views/robot/robot.component.ts +++ b/usecaseui-portal/src/app/views/robot/robot.component.ts @@ -1,6 +1,7 @@ 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', @@ -12,7 +13,7 @@ export class RobotComponent implements OnInit { question: string; communicationMessage: string; chatHistory: { question: string, answer: string }[] = []; - apiUrl = '/api/usecaseui-llm-adaptation/v1/getHelper'; + apiUrl = '/api/usecaseui-llm-adaptation/v1/stream'; constructor( private http: HttpClient, @@ -21,15 +22,18 @@ export class RobotComponent implements OnInit { ngOnInit() {} submitQuestion() { - this.http.post<any>(this.apiUrl,this.question,{ responseType: 'text' as 'json'}).subscribe((data) => { - if(data==''){ - this.chatHistory.push({ question: this.question, answer: 'network error' }); - }else{ - this.chatHistory.push({ question: this.question, answer: data }); - } - this.question = ''; - }, error => { - this.message.error('error'); - }); + 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 = ''; } } |