From 02810f989a988ad918c439d37e779f6110815d05 Mon Sep 17 00:00:00 2001 From: kaixiliu Date: Mon, 6 May 2024 16:07:35 +0800 Subject: Add streaming processing Issue-ID: USECASEUI-834 Change-Id: I25207cd6eea68a20424ee8da4590a8155fe08173 Signed-off-by: kaixiliu --- .../src/app/views/robot/robot.component.ts | 26 +++++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'usecaseui-portal/src') 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(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 = ''; } } -- cgit 1.2.3-korg