Xin Zhang commited on
Commit
73e6ae0
·
1 Parent(s): 259c23b

[feature]:prompt config.

Browse files
frontend/src/assets/ref_audios/bys_ref.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:742e4310a8635740e8cfee99b10c14c40acb189e1985283991447d87631685ed
3
+ size 418604
frontend/src/assets/ref_audios/cove_ref.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2879a08a134b812245cf67afb4cb1a330d4fc59b43bb68a2fe20efbab10df759
3
+ size 479404
frontend/src/assets/ref_audios/doubao_ref.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a5c8581b8b7a857f5ecbdce36a558b12f7eefc36dbbc96e7cf7a99615627f6e6
3
+ size 844878
frontend/src/assets/ref_audios/ellen_ref.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:692552ea483214b0b08e66f6ff684696ecd9fc96da40ee6925415359bdff83d0
3
+ size 599084
frontend/src/assets/ref_audios/juniper_ref.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b59af2dc6f7163084b9d72a7ceb60fe03789c096129d1007231c9514c5df7fd7
3
+ size 314924
frontend/src/assets/ref_audios/luoxiang_ref.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f9c271fe6e3590741a38b21bdd4462bd87a8a4c4711013e90071d761a41f18c3
3
+ size 316204
frontend/src/assets/ref_audios/mabaoguo_ref.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:65f76b00d87c2598f6a2ba59716cf58af6e2f6682ae79a90496771be91f3515f
3
+ size 476238
frontend/src/assets/ref_audios/maple_ref.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:da780b24686c3b065a594d6d35380a99bac519608e4c93753acf165b68041e50
3
+ size 422444
frontend/src/assets/ref_audios/mayun_ref.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3e55c3989e5f4910a039d2e3c5d769b30129a4d7c0c97f0c6a905009382a9456
3
+ size 630274
frontend/src/assets/ref_audios/shenyi_ref.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4a43131724444f933a800971ce50515d91d31e333287ad40e10a7d4a4e1eaef0
3
+ size 661518
frontend/src/assets/ref_audios/trump_ref.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:20735d336d61194773c248982937872515589f0987efb2827f6addbc391faa11
3
+ size 427244
frontend/src/assets/ref_audios/yangmi_ref.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7b37d93794958b71184b48c6358eadcdc7cc782805761ac867c2c7bd32081426
3
+ size 865038
frontend/src/assets/ref_audios/zhoujielun_ref.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:584e95f902b3b244c8ee46eee54f4238d0286d3d9687b753f738b353b7267c09
3
+ size 475278
frontend/src/stores/config.ts CHANGED
@@ -10,6 +10,8 @@ export const useSettingsStore = defineStore({
10
  language: 'zh',
11
  sider_open: true,
12
  echoCancel: true,
 
 
13
  }
14
  },
15
  actions: {
 
10
  language: 'zh',
11
  sider_open: true,
12
  echoCancel: true,
13
+ prompt_en: 'You are a helpful assistant.',
14
+ prompt_zh: '你是一个乐于助人的助手。',
15
  }
16
  },
17
  actions: {
frontend/src/views/Welcome/index.vue CHANGED
@@ -61,14 +61,14 @@ const startAudioChat = async () => {
61
  }
62
 
63
 
64
- const modelOpen = ref<boolean>(false);
65
  const modalLoading = ref<boolean>(false);
66
 
67
- const handleCancel = () => {
68
- modelOpen.value = false;
69
  };
70
 
71
- const handleSubmit = async () => {
72
  console.log('Selected Language:', language.value);
73
  console.log('Selected Role:', role.value);
74
  console.log('Echo Cancel:', echoCancel.value);
@@ -79,6 +79,26 @@ const handleSubmit = async () => {
79
  await pushConfig(settingsStore.$state.role);
80
  };
81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  const pushConfig = async (model_id: string) => {
83
  try {
84
  modalLoading.value = true;
@@ -120,7 +140,7 @@ const pushConfig = async (model_id: string) => {
120
  });
121
  } finally {
122
  modalLoading.value = false;
123
- modelOpen.value = false;
124
  }
125
 
126
  console.log('Selected Language:', language.value);
@@ -188,11 +208,21 @@ const fetchASRLanguages = async () => {
188
  }
189
  };
190
 
191
- const toggleSider = () => {
192
- settingsStore.$patch({ sider_open: !settingsStore.$state.sider_open });
193
- console.log('sider open: ', modelOpen.value);
 
 
 
 
 
 
 
 
194
  };
195
 
 
 
196
  </script>
197
 
198
  <template>
@@ -218,18 +248,28 @@ const toggleSider = () => {
218
  <div class="actions">
219
  <!-- <a-button type="text" @click="toggleSider">sider</a-button> -->
220
 
221
- <a-button type="text" @click="modelOpen = true"
222
  style="width:44px; height: 44px; margin-right:24px;margin-bottom: 24px;">
223
  <template #icon>
224
  <img :src="setting" width="28" height="28" alt="settings" />
225
  </template>
226
- </a-button>
 
 
 
 
 
 
 
 
 
 
227
  </div>
228
 
229
- <a-modal v-model:open="modelOpen" :title="null" :mask-closable="false" centered>
230
  <template #footer>
231
- <a-button key="back" @click="handleCancel">Cancel</a-button>
232
- <a-button key="submit" type="primary" :loading="modalLoading" @click="handleSubmit">Submit</a-button>
233
  </template>
234
  <div class="languages">
235
  <div class="echo-cancel-item">
@@ -260,6 +300,29 @@ const toggleSider = () => {
260
  </div>
261
  </div>
262
  </a-modal>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
263
  </div>
264
  </template>
265
 
@@ -276,6 +339,33 @@ const toggleSider = () => {
276
  }
277
  }
278
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
279
  .welcome-wrapper {
280
  width: 100%;
281
  height: 100%;
 
61
  }
62
 
63
 
64
+ const voiceModelOpen = ref<boolean>(false);
65
  const modalLoading = ref<boolean>(false);
66
 
67
+ const handleVoiceModalCancel = () => {
68
+ voiceModelOpen.value = false;
69
  };
70
 
71
+ const handleVoiceModalSubmit = async () => {
72
  console.log('Selected Language:', language.value);
73
  console.log('Selected Role:', role.value);
74
  console.log('Echo Cancel:', echoCancel.value);
 
79
  await pushConfig(settingsStore.$state.role);
80
  };
81
 
82
+ const promptModelOpen = ref<boolean>(false);
83
+ const default_prompt_en = "You are a helpful assistant.";
84
+ const default_prompt_zh = "你是一个乐于助人的助手。";
85
+ const current_prompt = ref<string>(settingsStore.$state.language == 'zh' ? default_prompt_zh : default_prompt_en);
86
+
87
+ const handlePromptModalCancel = () => {
88
+ current_prompt.value = settingsStore.$state.language == 'zh' ? settingsStore.$state.prompt_zh : settingsStore.$state.prompt_en;
89
+ promptModelOpen.value = false;
90
+ };
91
+
92
+ const handlePromptModalSubmit = async () => {
93
+ console.log('Prompt:', current_prompt.value);
94
+ if (settingsStore.$state.language == 'zh') {
95
+ settingsStore.$state.prompt_zh = current_prompt.value;
96
+ } else {
97
+ settingsStore.$state.prompt_en = current_prompt.value;
98
+ }
99
+ promptModelOpen.value = false;
100
+ };
101
+
102
  const pushConfig = async (model_id: string) => {
103
  try {
104
  modalLoading.value = true;
 
140
  });
141
  } finally {
142
  modalLoading.value = false;
143
+ voiceModelOpen.value = false;
144
  }
145
 
146
  console.log('Selected Language:', language.value);
 
208
  }
209
  };
210
 
211
+ const togglePopover = (item: string) => {
212
+ popoverVisible.value = !popoverVisible.value;
213
+ if (item == 'voice') {
214
+ voiceModelOpen.value = true;
215
+ } else if (item == 'prompt') {
216
+ promptModelOpen.value = true;
217
+ }
218
+ };
219
+
220
+ const handleResetPrompt = () => {
221
+ current_prompt.value = settingsStore.$state.language == 'zh' ? default_prompt_zh : default_prompt_en;
222
  };
223
 
224
+ const popoverVisible = ref<boolean>(false);
225
+
226
  </script>
227
 
228
  <template>
 
248
  <div class="actions">
249
  <!-- <a-button type="text" @click="toggleSider">sider</a-button> -->
250
 
251
+ <!-- <a-button type="text" @click="voiceModelOpen = true"
252
  style="width:44px; height: 44px; margin-right:24px;margin-bottom: 24px;">
253
  <template #icon>
254
  <img :src="setting" width="28" height="28" alt="settings" />
255
  </template>
256
+ </a-button>-->
257
+ <a-popover v-model:open="popoverVisible" trigger="click" ok-text="Yes" cancel-text="No" placement="bottomRight">
258
+ <template #content>
259
+ <div class="custom-popover-list">
260
+ <div class="custom-popover-item" @click="togglePopover('voice')">
261
+ 选择音色</div>
262
+ <div class="custom-popover-item" @click="togglePopover('prompt')">Prompt调试</div>
263
+ </div>
264
+ </template>
265
+ <img :src="setting" alt="item actions" style="width: 28px; height: 28px; margin-right:24px;margin-bottom: 24px;">
266
+ </a-popover>
267
  </div>
268
 
269
+ <a-modal v-model:open="voiceModelOpen" :title="null" :mask-closable="false" centered>
270
  <template #footer>
271
+ <a-button key="back" @click="handleVoiceModalCancel">Cancel</a-button>
272
+ <a-button key="submit" type="primary" :loading="modalLoading" @click="handleVoiceModalSubmit">Submit</a-button>
273
  </template>
274
  <div class="languages">
275
  <div class="echo-cancel-item">
 
300
  </div>
301
  </div>
302
  </a-modal>
303
+
304
+ <a-modal v-model:open="promptModelOpen" :title="null" :mask-closable="false" centered>
305
+ <template #footer>
306
+ <div class="btn-groups">
307
+ <a-button key="back" @click="handleResetPrompt">Reset</a-button>
308
+ <div class="btn-group">
309
+ <a-button key="back" @click="handlePromptModalCancel">Cancel</a-button>
310
+ <a-button key="submit" type="primary" :loading="modalLoading" @click="handlePromptModalSubmit">Submit</a-button>
311
+ </div>
312
+ </div>
313
+ </template>
314
+ <template #title>
315
+ <div class="prompt-title">
316
+ <p>Prompt 调试</p>
317
+ </div>
318
+ </template>
319
+ <div class="prompt-content">
320
+ <div class="prompt-item">
321
+ <p>Prompt:</p>
322
+ <a-textarea v-model:value="current_prompt" :placeholder="settingsStore.$state.language == 'zh' ? default_prompt_zh : default_prompt_en" :auto-size="{ minRows: 6, maxRows: 20 }" show-count :maxlength="2000" allow-clear />
323
+ </div>
324
+ </div>
325
+ </a-modal>
326
  </div>
327
  </template>
328
 
 
339
  }
340
  }
341
 
342
+ .btn-groups {
343
+ margin-top: 36px;
344
+ display: flex;
345
+ justify-content: space-between;
346
+ align-items: center;
347
+ }
348
+
349
+ .custom-popover-list {
350
+ width: 80px;
351
+ margin: 0;
352
+ .custom-popover-item {
353
+ font-size: 14px;
354
+ line-height: 36px;
355
+ font-weight: 500;
356
+ color: #1e1e1e;
357
+ cursor: pointer;
358
+ border-radius: 4px;
359
+ padding: 0 8px;
360
+ margin: 0px -8px;
361
+ transition: background 0.2s;
362
+ }
363
+ .custom-popover-item:hover, .custom-popover-item:focus {
364
+ background: #e5e7eb;
365
+ }
366
+ }
367
+
368
+
369
  .welcome-wrapper {
370
  width: 100%;
371
  height: 100%;