|
@@ -1,117 +0,0 @@
|
|
|
-import { Component } from '@angular/core';
|
|
|
-import { TestChatCompletion, TestChatMessage,oldMessage } from './class-chat-completion';
|
|
|
-import {SharedService} from 'src/modules/user/service-user/Share.service'
|
|
|
-import * as Parse from "parse"
|
|
|
-(Parse as any).serverURL = "https://web2023.fmode.cn/parse"
|
|
|
-Parse.initialize("dev")
|
|
|
-
|
|
|
-
|
|
|
-async function historyMessage(senderId: string,receiverId:string,historyMessages:Array<oldMessage>=[]){
|
|
|
- await findMessagesByUserName(receiverId,senderId,historyMessages,"assistant")
|
|
|
- await findMessagesByUserName(senderId,receiverId,historyMessages,"user")
|
|
|
- historyMessages.sort((a, b) => Number(a.createdAt) - Number(b.createdAt));
|
|
|
-}
|
|
|
-
|
|
|
-async function findMessagesByUserName(senderId: string,receiverId:string,historyMessages:Array<oldMessage>=[],role:string) {
|
|
|
- const Gzpmessage = Parse.Object.extend('Gzpmessage');
|
|
|
- const query = new Parse.Query(Gzpmessage);
|
|
|
- query.equalTo("senderId", senderId);
|
|
|
- query.equalTo("receiverId", receiverId);
|
|
|
- try {
|
|
|
- const messages = await query.find();
|
|
|
- for (const message of messages) {
|
|
|
- historyMessages.push({
|
|
|
- role:role,
|
|
|
- content:message.get("messageContent"),
|
|
|
- createdAt:message.get("createdAt").getTime()
|
|
|
- })
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- console.error("查询消息时出错:", error);
|
|
|
- }
|
|
|
- return historyMessage
|
|
|
-}
|
|
|
-
|
|
|
-export function sendToParse(value:string,senderId:string,receiverId:string){
|
|
|
- const Gzpmessage = Parse.Object.extend('Gzpmessage');
|
|
|
- const message = new Gzpmessage();
|
|
|
- message.set('senderId', senderId);
|
|
|
- message.set('receiverId', receiverId);
|
|
|
- message.set('messageContent', value);
|
|
|
- message.set('createdAt', new Date());
|
|
|
- // 设置其他字段...
|
|
|
-
|
|
|
- // 保存对象到数据库
|
|
|
- message.save().then(
|
|
|
- (result: any) => {
|
|
|
- console.log('对话消息已保存到数据库:', result);
|
|
|
- },
|
|
|
- (error: any) => {
|
|
|
- console.error('保存对话消息时出错:', error);
|
|
|
- }
|
|
|
- );
|
|
|
-}
|
|
|
-@Component({
|
|
|
- selector: 'app-ai-chat-page',
|
|
|
- templateUrl: './ai-chat-page.component.html',
|
|
|
- styleUrls: ['./ai-chat-page.component.scss']
|
|
|
-})
|
|
|
-export class AiChatPageComponent {
|
|
|
-
|
|
|
- oldMessage:boolean=true;
|
|
|
- title: string ='小助手';
|
|
|
- userId: string = '';
|
|
|
- userImg: string = ''
|
|
|
- public userInput: string = '';
|
|
|
- messageList: Array<TestChatMessage> = [];
|
|
|
- historyMessages:Array<oldMessage>=[]
|
|
|
- completion: TestChatCompletion;
|
|
|
-
|
|
|
- constructor(private sharedService: SharedService) {
|
|
|
- this.messageList.push({
|
|
|
- role:'assistant',
|
|
|
- content:"您好,我是您的旅行小助手,请问现在有什么可以帮到您的。",
|
|
|
- }
|
|
|
- )
|
|
|
- this.completion = new TestChatCompletion(this.messageList,this.sharedService);
|
|
|
- this.userId = this.sharedService.getUserId();
|
|
|
- this.userImg = this.sharedService.getUserImg();
|
|
|
- historyMessage(this.userId,'1',this.historyMessages)
|
|
|
- // findMessagesByUserName('Aichat',this.userId,this.messageList,"assistant")
|
|
|
- // findMessagesByUserName(this.userId,'Aichat',this.messageList,"user")
|
|
|
- }
|
|
|
- send(value: string) {
|
|
|
- if (this.sharedService.pdlogin()){
|
|
|
- this.messageList.push({
|
|
|
- role: 'user',
|
|
|
- content: value,
|
|
|
- });
|
|
|
- sendToParse(value,this.userId,"1")
|
|
|
- this.completion.createCompletionByStream();
|
|
|
- }
|
|
|
- else{
|
|
|
- if(value=='开始'){
|
|
|
- this.messageList.push({
|
|
|
- role:'assistant',
|
|
|
- content:"请问",
|
|
|
- }
|
|
|
- )
|
|
|
- this.sharedService.isLogin()
|
|
|
- }
|
|
|
- else{
|
|
|
- this.messageList.push({
|
|
|
- role:'user',
|
|
|
- content:value,
|
|
|
- }
|
|
|
- )
|
|
|
- this.messageList.push({
|
|
|
- role:'assistant',
|
|
|
- content:"对不起,您还没有登入,暂时无法使用此功能",
|
|
|
- }
|
|
|
- )
|
|
|
- }
|
|
|
- }
|
|
|
- this.userInput='';
|
|
|
- }
|
|
|
-
|
|
|
-}
|