From fdefcecfc6d983f5e7e6d3a60a13dcfadc7a7721 Mon Sep 17 00:00:00 2001 From: kaixiliu Date: Wed, 10 Apr 2024 15:14:17 +0800 Subject: [PATCH] Add a large model page Issue-ID: USECASEUI-834 Change-Id: Ie589e0eb9c263ed1ec92119470ea46f4a936041b Signed-off-by: kaixiliu --- usecaseui-portal/package-lock.json | 5 ++ usecaseui-portal/proxy.conf.json | 10 ++- usecaseui-portal/src/app/app-routing.module.ts | 4 +- usecaseui-portal/src/app/app.component.html | 13 +++ usecaseui-portal/src/app/app.module.ts | 2 + .../src/app/views/robot/robot.component.html | 21 +++++ .../src/app/views/robot/robot.component.less | 91 +++++++++++++++++++++ .../src/app/views/robot/robot.component.ts | 35 ++++++++ usecaseui-portal/src/assets/i18n/cn.json | 3 +- usecaseui-portal/src/assets/i18n/en.json | 3 +- usecaseui-portal/src/assets/images/answer.png | Bin 0 -> 5808 bytes .../src/assets/images/robot-active.png | Bin 0 -> 2141 bytes usecaseui-portal/src/assets/images/robot-hui.png | Bin 0 -> 2152 bytes usecaseui-portal/src/assets/images/send.png | Bin 0 -> 1874 bytes usecaseui-portal/src/assets/images/user.png | Bin 0 -> 5799 bytes 15 files changed, 182 insertions(+), 5 deletions(-) create mode 100644 usecaseui-portal/src/app/views/robot/robot.component.html create mode 100644 usecaseui-portal/src/app/views/robot/robot.component.less create mode 100644 usecaseui-portal/src/app/views/robot/robot.component.ts create mode 100644 usecaseui-portal/src/assets/images/answer.png create mode 100644 usecaseui-portal/src/assets/images/robot-active.png create mode 100644 usecaseui-portal/src/assets/images/robot-hui.png create mode 100644 usecaseui-portal/src/assets/images/send.png create mode 100644 usecaseui-portal/src/assets/images/user.png diff --git a/usecaseui-portal/package-lock.json b/usecaseui-portal/package-lock.json index 15f4d218..c08f4dc4 100644 --- a/usecaseui-portal/package-lock.json +++ b/usecaseui-portal/package-lock.json @@ -519,6 +519,11 @@ "font-awesome": "*" } }, + "font-awesome": { + "version": "4.7.0", + "resolved": "https://registry.npmmirror.com/font-awesome/-/font-awesome-4.7.0.tgz", + "integrity": "sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==" + }, "ansi-align": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/ansi-align/download/ansi-align-3.0.0.tgz", diff --git a/usecaseui-portal/proxy.conf.json b/usecaseui-portal/proxy.conf.json index 1ca1ad8a..e6a11340 100644 --- a/usecaseui-portal/proxy.conf.json +++ b/usecaseui-portal/proxy.conf.json @@ -5,8 +5,14 @@ "logLevel": "debug", "changeOrigin": true }, - "/api/usecaseui-intent-analysis/v1": { - "target": "https://192.168.235.25:30283", + "/api/usecaseui-intent-analysis/v1": { + "target": "http://localhost:8083", + "secure": false, + "logLevel": "debug", + "changeOrigin": true + }, + "/api/usecaseui-llm-adaptation/v1": { + "target": "http://localhost:8084", "secure": false, "logLevel": "debug", "changeOrigin": true diff --git a/usecaseui-portal/src/app/app-routing.module.ts b/usecaseui-portal/src/app/app-routing.module.ts index 9c9235f4..ed744106 100644 --- a/usecaseui-portal/src/app/app-routing.module.ts +++ b/usecaseui-portal/src/app/app-routing.module.ts @@ -36,6 +36,7 @@ import { MonitorServiceComponent } from './views/services/sotn-management/monito import { OrderServiceComponent } from './views/services/sotn-management/order-service/order-service.component'; import { SotnManagementComponent } from './views/services/sotn-management/sotn-management.component'; import { IntentManagementComponent } from './views/intent-management/intent-management.component'; +import { RobotComponent } from './views/robot/robot.component'; @@ -71,7 +72,8 @@ const routes: Routes = [ { path: 'network/ccvpn-network', component: CcvpnNetworkComponent }, { path: 'network/mdons-network', component: MdonsNetworkComponent }, { path: 'intent-management', component:IntentManagementComponent}, - { path: '**', redirectTo: 'home', pathMatch: 'full' } + { path: 'robot', component: RobotComponent } + //{ path: '**', redirectTo: 'home', pathMatch: 'full' } ]; @NgModule({ diff --git a/usecaseui-portal/src/app/app.component.html b/usecaseui-portal/src/app/app.component.html index cb4c9f7d..c965d18b 100644 --- a/usecaseui-portal/src/app/app.component.html +++ b/usecaseui-portal/src/app/app.component.html @@ -141,6 +141,19 @@ {{"i18nTextDefine_IntentManagement" | translate}} + + +
  • + + + + home + + {{"i18nTextDefine_robot" | translate}} + +

  • diff --git a/usecaseui-portal/src/app/app.module.ts b/usecaseui-portal/src/app/app.module.ts index 965ffa10..852c6660 100644 --- a/usecaseui-portal/src/app/app.module.ts +++ b/usecaseui-portal/src/app/app.module.ts @@ -116,6 +116,7 @@ import { InputIntentStateComponent } from './views/intent-management/input-inten import { InputIntentConditionComponent } from './views/intent-management/input-intent-condition/input-intent-condition.component'; import { IntentReportDetailComponent } from './views/intent-management/intent-report-detail/intent-report-detail.component'; import { AngularDateTimePickerModule } from 'angular2-datetimepicker'; +import { RobotComponent } from './views/robot/robot.component'; export function HttpLoaderFactory(httpClient: HttpClient) { return new TranslateHttpLoader(httpClient, "./assets/i18n/", ".json"); @@ -221,6 +222,7 @@ registerLocaleData(en); InputIntentStateComponent, InputIntentConditionComponent, IntentReportDetailComponent, + RobotComponent ], imports: [ BrowserModule, diff --git a/usecaseui-portal/src/app/views/robot/robot.component.html b/usecaseui-portal/src/app/views/robot/robot.component.html new file mode 100644 index 00000000..38363a8a --- /dev/null +++ b/usecaseui-portal/src/app/views/robot/robot.component.html @@ -0,0 +1,21 @@ + +
    +
    +
    + + {{ chat.question }} +
    +
    +
    + {{ chat.answer }} +
    +
    +
    +
    +
    + + + + +
    + \ No newline at end of file diff --git a/usecaseui-portal/src/app/views/robot/robot.component.less b/usecaseui-portal/src/app/views/robot/robot.component.less new file mode 100644 index 00000000..be02efd8 --- /dev/null +++ b/usecaseui-portal/src/app/views/robot/robot.component.less @@ -0,0 +1,91 @@ +body { + background-color: #e6e6fa; + width: 100%; + margin: 0; + padding: 0; + min-height: 100vh; + display: flex; + flex-direction: column; +} +.chat-container { + margin: 20px 0; + padding: 0 100px; +} +.question { + display: flex; +} +.record-input{ + margin-left: 10px; + resize: none; +} +.question span { + background-color: white; + font-size: 16px; + margin-left: 10px; + padding: 10px; + border-radius: 8px; +} +.question img { + width: 28px; + height: 28px; +} + +.answer { + display: flex; +} +.answer span{ + background-color: white; + font-size: 16px; + margin-left: 10px; + padding: 10px; + border-radius: 8px; + white-space: pre-line; +} +.answer img { + width: 28px; + height: 28px; +} + +.chat-input { + margin-top: 30px; + padding-left: 1100px; +} + +.input-wrapper { + display: flex; + justify-content: space-around; + width: e("calc(100% - 240px)"); + margin: 0 100px; + margin-left: 138px; + padding: 10px; + background: #fff; + border-radius: 8px; + border: 2px solid #8a2be2; +} + +.text-input { + width: e("calc(100% - 50px)"); + background-color: white; + color: black; + text-align: left; + border: 0; + resize: none; + + &:focus { + border: 0 !important; + box-shadow: none; + } +} + +.icon { + width: 50px; + height: 50px; + cursor: pointer; + + >img { + width: 35px; + height: 31px; + margin-top: 15px; + margin-left: 15px; + } +} 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..5304e876 --- /dev/null +++ b/usecaseui-portal/src/app/views/robot/robot.component.ts @@ -0,0 +1,35 @@ +import { Component, OnInit } from '@angular/core'; +import { NzMessageService } from 'ng-zorro-antd'; +import { HttpClient } from '@angular/common/http'; + +@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/getHelper'; + + constructor( + private http: HttpClient, + private message: NzMessageService + ) { } + 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'); + }); + } +} diff --git a/usecaseui-portal/src/assets/i18n/cn.json b/usecaseui-portal/src/assets/i18n/cn.json index bce7dc0e..31815c81 100644 --- a/usecaseui-portal/src/assets/i18n/cn.json +++ b/usecaseui-portal/src/assets/i18n/cn.json @@ -187,5 +187,6 @@ "i18nTextDefine_ExternalNetworkMessage":"注意:两个端点都将更改为ENNI。", "i18nTextDefine_exportData": "导出", "i18nTextDefine_startTime": "起始时间", - "i18nTextDefine_endTime": "终止时间" + "i18nTextDefine_endTime": "终止时间", + "i18nTextDefine_robot": "大模型" } diff --git a/usecaseui-portal/src/assets/i18n/en.json b/usecaseui-portal/src/assets/i18n/en.json index cc533c1c..c1219c71 100644 --- a/usecaseui-portal/src/assets/i18n/en.json +++ b/usecaseui-portal/src/assets/i18n/en.json @@ -186,5 +186,6 @@ "i18nTextDefine_Size":"Size", "i18nTextDefine_exportData": "Export Data", "i18nTextDefine_startTime": "Start Time", - "i18nTextDefine_endTime": "End Time" + "i18nTextDefine_endTime": "End Time", + "i18nTextDefine_robot": "Large Model" } diff --git a/usecaseui-portal/src/assets/images/answer.png b/usecaseui-portal/src/assets/images/answer.png new file mode 100644 index 0000000000000000000000000000000000000000..f88080232f10d3c1a2285e1e4cf8a1931dafff06 GIT binary patch literal 5808 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 Z#utlvl+Q2@$jcQpfYvh7tX6j<{2!F!p4k8Z literal 0 HcmV?d00001 diff --git a/usecaseui-portal/src/assets/images/robot-active.png b/usecaseui-portal/src/assets/images/robot-active.png new file mode 100644 index 0000000000000000000000000000000000000000..440278964841077d9fb0d15a3bee71e1099d5e47 GIT binary patch literal 2141 zcmd5;YgCh07QG21U@#2`jO8JG4vc^xD60_57!oX!APYHu? z6w4VHD}1t!m;v6>4M181D7D$w*(0i5YI_V&+WX1BDnkOn)1VQ5GtlRscW=N81*o;9 zbw!SVU-WT&DF*|pg7F~^ApmmNH}0u11C%mWMQ{Zm1v8uCe|7?VFNJTJFM@kba#~&= z3LuU+*DDtZKFuAz7f}mH>TgUr+fYEtSiBd1!m7LNf>5*C7J1hpK%bBPtR;S}*`@yt z|2by(iUR8}YSwcZt>=rbIJcf{lyfLUo_T`+PNVMR-2{|M50IGi&ki0Ih-v|S#e15vC z9-pv#pcxJASO*lc$o6WCA>?%8{t}em;P&*r=e!RmD09ptA)ydy|I$cSlkk0!`F^F* zTfn~SYBcFe${q+^eFxuWN`ACqIDopQoz_!OfZhJsUEdk-84Fi4+TjbKe`%3z4k(SO zhlz9q*SbNpwF?96pB<>SZ2+VK8SNqi1-8YNOAC(ys5jQ-vqmJ?;(0{X3sX#a6z`-V zxMtrkr$-bMQJSJ+dS~36PPfrNYInWsOvG53>4gX~<#V_kE@mu{Pz5gW@M^b>0x zlMRJo=OT(<$L5#-C*uSj4W)}ntA420S;OJY2ylT|lK`0vu7I4SKHB}PqB@wrY6B=8 zNrFEM%B@7yKf2blxMm+0?+)+!-5w9-=rSy*=79V_-30G1<7cBddQ}e_!$g>Srv)ar zI}HG};dso+TQh$3BLzmctsvCJ>dQwP4+Z4YbOgXpo2A-?67bCGq%UX+;I!A}Xnppc z&toLF<`LYH*b>Vh)U77Y%~RcKG$kuaz%-8=rrL#nivv~kwvoQD!F-xv$M$eM39~i8 z{5IpeVoQ-a9YDJAYQLH^mgMm4{YEi@%Ann%p(2|WBgplzcACU(LQSmXb2z-NlE!t$wahts`jtK!_W7yaoQ5*oDW_3HtJD} z#aPg)l^sCzJwKIaD%qml3>Dhe*gEh`l_#Fo!GTx$D@t$dFD%}U42gKuY|dvQ=f1(p z`)||cnW@|RVZ@lu&G$p}Ebf)fNm*fk|L>Qf50SAoy&hh)#GPp&%A=)cGA%_L;eUg3 z&SvlTxdsLE6`1?}$we8PyVi#XlQvb0fvY86AF=$7+n6r}uHJR=9$0(vgx#9yJT$el z6`rLpIXUD7Z@RhHL)9SU4#M%g4Lt@5{BahyM$}|4^{6@E{}mUx^;KlmGw# literal 0 HcmV?d00001 diff --git a/usecaseui-portal/src/assets/images/robot-hui.png b/usecaseui-portal/src/assets/images/robot-hui.png new file mode 100644 index 0000000000000000000000000000000000000000..47c61a3e0404120c59fd90ed581690e5ccfede66 GIT binary patch literal 2152 zcmd5;XHZmE6n-oZcq~hJ3z1$PET||JI*OD>6)7RG8am6OpomBbMLG+?C1wH3AfT{1 zL6j;4MTCJ>Tw#@FMyXQ7rLIz!rbEe7X7VpTlQ?tlIrE)6_sna{Ze_SLVDoGnTEGoc9Q2;sQf>nwM@eXnqly5y5axe^ z1j0p^Z}k^v0kpL`?J^<`a)Fl;SxK6?O?_{MLROplsCzvj6p!0jTU#57^p3I{W-^(+ zVzvECWKff?g5uw0I9O-XZox%BAqNXV`2R8V-Nk43=ZeitOvEvg8=sO|!??`lgsmFN zixAm#!w>myXI9=Gw&$HbwV$SyyR;_C?g-FLaoTPuvx>s zJm?SP0_YB}IM}Ol9FV(S!f3JcOMPKfx?K>JPBVG!0_jL`G_RxCn%BY^XtogFJX^@G z>j9aL?D4HLkm7E62V|=7d+ynf<`d0^zav_W`QF+QTYN{}vI&qtJ%Y4n8rA4giDchA zfJPQ>AAcx{{EJYPwdyCkDcjOUP+|qomi6%uFcr2w_KYMXphJz?zP;=9E#nUlOlGoJ zk2WtbuJ@W=H1Y9YPZ(J>tFMgHgm5Tf-hv{>^Pdt*kuz17x$>ANQfxu_b2$+QQ7L!v zZB^Fk;UWvGn2!2OI>{Y3NjX8S8Qlyd{R!Dmu9oAR>9(ni)z!E=uQV@$?J{FjT~B1g zxqGypNz1(?wv7lv?*s21cGZu_bSqWbb;6J)i*xNQA?t3x(z{8$YDp0-zCC0eS8j6d5vp9N&X>Q zt?o>zG6j^7QqrsweEGIw^}0zik{DI0dt7&terF(z8cCw79z5=rzE9`p3fuB$qw{5Y zLo-ovtMZV`F}L%Zl6k#TLuI5MNd8#bCNZ}3O2Yg5>Y#KkZ?Y0xX!(PculymX)Y

    mgzSljWSYc}q57&8Oto_>_ z=qsXdQAMWVtTYO<`*hBU+rr?PGA^URn}Ki}JQ#5-`OPUti2aj2LxTKCjVh}N{n%Ar z$FF?qr_CVyCmvLla_xfTpb1FF#NS358`gqHzDj3_h6M-F)8p3IFczrUR<{!STT=Hm zQVvT5W_LM776(lzR+EjL%0obHuz0(L*^7U-u-6LK7rPm~-ivqAB(_=|^!rNjE~!Gj z?T!E%K4}^G6ol1{fSj)X01gnl!|@h bFiD{0r!X|uEczApbpY(FovbP?D73!-h_s5! literal 0 HcmV?d00001 diff --git a/usecaseui-portal/src/assets/images/send.png b/usecaseui-portal/src/assets/images/send.png new file mode 100644 index 0000000000000000000000000000000000000000..5b58994be686687ee88fad845ee197b03451f0d3 GIT binary patch literal 1874 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