소스 검색

feat:FmodeChatCompletion文本生成

yt 7 달 전
부모
커밋
0bc57dc4e9

+ 1 - 1
README.md

@@ -1,4 +1,4 @@
-# 智能酒店项目仓库
+# 智宿管家项目仓库
 
 - smarthotel-app 项目代码
 - smarthotel-prod 产品仓库

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 641 - 14
smarthotel-app/package-lock.json


+ 1 - 0
smarthotel-app/package.json

@@ -27,6 +27,7 @@
     "@capacitor/keyboard": "6.0.3",
     "@capacitor/status-bar": "6.0.2",
     "@ionic/angular": "^8.0.0",
+    "fmode-ng": "^0.0.62",
     "ionicons": "^7.2.1",
     "rxjs": "~7.8.0",
     "tslib": "^2.3.0",

+ 2 - 0
smarthotel-app/src/app/edit-tag/edit-tag.component.ts

@@ -1,9 +1,11 @@
 import { Component, OnInit } from '@angular/core';
+import { IonInput } from '@ionic/angular/standalone';
 
 @Component({
   selector: 'app-edit-tag',
   templateUrl: './edit-tag.component.html',
   styleUrls: ['./edit-tag.component.scss'],
+  imports:[IonInput],
   standalone: true,
 })
 export class EditTagComponent  implements OnInit {

+ 11 - 0
smarthotel-app/src/app/page-test/page-test.component.html

@@ -0,0 +1,11 @@
+<ion-content>
+  <!-- 文本域:生成提示词 -->
+   <h1>房间的需求</h1>
+  <ion-textarea [value]="userPrompt" (ionInput)="promptInput($event)" placeholder="文本提示词" autoGrow="true"></ion-textarea>
+
+  <!-- 按钮:执行消息生成函数 -->
+  <ion-button (click)="sendMessage()" expand="block">您描述所符合的房间信息</ion-button>
+  
+  <!-- 展示:返回消息内容 -->
+  <div>{{responseMsg}}</div>
+</ion-content>

+ 0 - 0
smarthotel-app/src/app/page-test/page-test.component.scss


+ 22 - 0
smarthotel-app/src/app/page-test/page-test.component.spec.ts

@@ -0,0 +1,22 @@
+import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
+
+import { PageTestComponent } from './page-test.component';
+
+describe('PageTestComponent', () => {
+  let component: PageTestComponent;
+  let fixture: ComponentFixture<PageTestComponent>;
+
+  beforeEach(waitForAsync(() => {
+    TestBed.configureTestingModule({
+      imports: [PageTestComponent],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(PageTestComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  }));
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 44 - 0
smarthotel-app/src/app/page-test/page-test.component.ts

@@ -0,0 +1,44 @@
+import { Component, OnInit } from '@angular/core';
+import { IonButton, IonContent, IonHeader, IonInput, IonTitle, IonToolbar } from '@ionic/angular/standalone';
+import { IonTextarea } from '@ionic/angular/standalone';
+import { FmodeChatCompletion } from 'fmode-ng';
+
+@Component({
+  selector: 'app-page-test',
+  templateUrl: './page-test.component.html',
+  styleUrls: ['./page-test.component.scss'],
+  standalone: true,
+  imports: [IonHeader, IonToolbar, IonTitle, IonContent, IonButton,
+    IonTextarea,IonInput
+    ],
+})
+export class PageTestComponent  implements OnInit {
+
+  constructor() {}
+  ngOnInit(){}
+  // 用户输入提示词
+   userPrompt:string = "请大致描述您对所居住酒店房间的需求"
+  promptInput(ev:any){
+    this.userPrompt = ev.detail.value;
+  }
+  // 属性:组件内用于展示消息内容的变量
+  responseMsg:any = ""
+  // 方法:实例化completion对象,传入消息数组,并订阅生成的可观察对象。
+  sendMessage(){
+    console.log("create")
+    let PromptTemple = `
+    您作为一名专业的酒店旅馆服务员,请您根据客户描述的房间需求,给出房间的类型和详细的描述。
+    以下是用户的描述:${this.userPrompt}`
+    let completion = new FmodeChatCompletion([
+      {role:"system",content:""},
+      {role:"user",content:PromptTemple}
+    ])
+    completion.sendCompletion().subscribe((message:any)=>{
+      // 打印消息体
+      console.log(message.content)
+      // 赋值消息内容给组件内属性
+      this.responseMsg = message.content
+    })
+  }
+
+}

+ 2 - 5
smarthotel-app/src/app/tab1/tab1.page.html

@@ -1,7 +1,7 @@
 <ion-header>
   <ion-toolbar>
     <ion-title>
-      <ion-icon name="home-outline" slot="start"></ion-icon>
+      <ion-icon name="home" slot="start"></ion-icon>
     </ion-title>
     <ion-searchbar placeholder="输入目的地、酒店名称或需求" slot="start"></ion-searchbar>
     <ion-avatar slot="end">
@@ -23,9 +23,7 @@
         <ion-card-title>订房策略生成</ion-card-title>
       </ion-card-header>
       <ion-card-content>
-        <ion-input placeholder="请输入您的需求,如预算、房型、设施等"></ion-input>
-        <ion-button expand="full" (click)="generateStrategy()">生成订房策略</ion-button>
-        <div *ngIf="strategyResult">{{ strategyResult }}</div>
+        <ion-button expand="full" (click)="goToPage1()">生成订房策略</ion-button>
       </ion-card-content>
     </ion-card>
 
@@ -35,7 +33,6 @@
         <ion-card-title>房间图片生成</ion-card-title>
       </ion-card-header>
       <ion-card-content>
-        <ion-input placeholder="请输入房间描述,如双人间、海景房、现代风格等"></ion-input>
         <ion-button expand="full" (click)="generateRoomImage()">生成房间图片</ion-button>
         <ion-img *ngIf="roomImage" [src]="roomImage"></ion-img>
       </ion-card-content>

+ 8 - 7
smarthotel-app/src/app/tab1/tab1.page.ts

@@ -3,6 +3,9 @@ import { IonHeader, IonToolbar, IonTitle, IonContent } from '@ionic/angular/stan
 import { ExploreContainerComponent } from '../explore-container/explore-container.component';
 import { IonAvatar, IonButton, IonCard, IonCardContent, IonCardHeader, IonCardTitle, IonImg, IonInput, IonSearchbar, IonTextarea } from '@ionic/angular/standalone';
 import { IonIcon } from '@ionic/angular/standalone';
+import { Router } from '@angular/router';
+import { CommonModule } from '@angular/common';
+
 
 @Component({
   selector: 'app-tab1',
@@ -12,9 +15,10 @@ import { IonIcon } from '@ionic/angular/standalone';
   imports: [
     IonHeader, IonToolbar, IonTitle, IonContent, ExploreContainerComponent,
     IonButton,IonInput,IonImg,IonTextarea,IonAvatar,IonCard,IonCardTitle,
-    IonCardContent,IonCardHeader,IonSearchbar,IonIcon
+    IonCardContent,IonCardHeader,IonSearchbar,IonIcon,CommonModule
   ],
 })
+
 export class Tab1Page {
   strategyInput: string = '';
   strategyResult: string = '';
@@ -22,12 +26,9 @@ export class Tab1Page {
   roomImage: string | null = null;
   userFeedback: string = '';
 
-  constructor() {}
-
-  // 生成订房策略的方法
-  generateStrategy() {
-    // 这里可以添加逻辑,例如根据用户输入生成策略
-    this.strategyResult = '推荐的订房策略:选择三家评价最高的酒店,预算范围内的最佳房型…';
+  constructor(private router: Router) {}
+  goToPage1(){
+    this.router.navigate(['/tabs/page-test']);
   }
 
   // 生成房间图片的方法

+ 5 - 0
smarthotel-app/src/app/tabs/tabs.routes.ts

@@ -21,6 +21,11 @@ export const routes: Routes = [
         loadComponent: () =>
           import('../tab3/tab3.page').then((m) => m.Tab3Page),
       },
+      {
+        path: 'page-test',
+        loadComponent: () =>
+          import('../page-test/page-test.component').then((m) => m.PageTestComponent),
+      },
       {
         path: '',
         redirectTo: '/tabs/tab1',

+ 1 - 1
smarthotel-app/src/index.html

@@ -15,7 +15,7 @@
   <link rel="icon" type="image/png" href="assets/icon/favicon.png" />
 
   <!-- add to homescreen for ios -->
-  <meta name="apple-mobile-web-app-capable" content="yes" />
+  <meta name="mobile-web-app-capable" content="yes">
   <meta name="apple-mobile-web-app-status-bar-style" content="black" />
 </head>
 

+ 22 - 1
smarthotel-app/src/main.ts

@@ -1,14 +1,35 @@
 import { bootstrapApplication } from '@angular/platform-browser';
 import { RouteReuseStrategy, provideRouter, withPreloading, PreloadAllModules } from '@angular/router';
 import { IonicRouteStrategy, provideIonicAngular } from '@ionic/angular/standalone';
-
 import { routes } from './app/app.routes';
 import { AppComponent } from './app/app.component';
 
+
+// 引用HttpClient方法
+import { provideHttpClient } from '@angular/common/http';
+// 引用移动端授权检测供应器
+import { Diagnostic } from '@awesome-cordova-plugins/diagnostic/ngx';
+// 设置Parse服务属性
+import Parse from "parse";
+
+
+Parse.initialize("ncloudmaster");
+Parse.serverURL = "https://server.fmode.cn/parse";
+localStorage.setItem("NOVA_APIG_SERVER", 'aHR0cHMlM0ElMkYlMkZzZXJ2ZXIuZm1vZGUuY24lMkZhcGklMkZhcGlnJTJG')
+
+// 注意:替换Token 根据Token设置Parse服务帐套权限
+Parse.User.become('JSON.parse(localStorage.getItem("Parse/ncloudmaster/currentUser"))?.sessionToken')
+
+// JSON.parse(localStorage.getItem("Parse/ncloudmaster/currentUser"))?.sessionToken
+
 bootstrapApplication(AppComponent, {
   providers: [
     { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
     provideIonicAngular(),
     provideRouter(routes, withPreloading(PreloadAllModules)),
+    // 添加HttpClient供应器
+    provideHttpClient(),
+    // 添加Diagnostic
+    Diagnostic,
   ],
 });

+ 1 - 0
smarthotel-app/tsconfig.json

@@ -2,6 +2,7 @@
 {
   "compileOnSave": false,
   "compilerOptions": {
+    "allowSyntheticDefaultImports":true,
     "baseUrl": "./",
     "outDir": "./dist/out-tsc",
     "forceConsistentCasingInFileNames": true,

+ 4 - 3
smarthotel-prod/README.md

@@ -1,4 +1,4 @@
-# 项目策划书# AI智能旅馆管理项目策划书
+# 项目策划书# 智宿管家项目策划书
 
 
 - 姓名 叶腾
@@ -78,9 +78,10 @@
 
 ### 主要功能
 
-- 智能预订:自动管理房间预订,实时更新房间状态。
+- 智能预订:运用AIGC文本生成,根据用户所描述的需求,帮助用户制定订房策略,同  
+  时运用AIGC图片生成,生成用户描述的相应的房间图片。
 - 客户服务:智能客服系统,快速响应客户需求。
-- 数据分析:提供运营数据分析报告,帮助用户制定策略
+- 房间管理:实时更新酒店的房间状态
 
 ### 商业模式
 

BIN
smarthotel-prod/image.png


BIN
smarthotel-prod/img/logo.png


BIN
smarthotel-prod/img/批注 2024-11-30 203503.png


BIN
smarthotel-prod/img/批注 2024-11-30 205345.png


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.