diff --git a/vite/src/App.jsx b/vite/src/App.jsx
index 7df1f47..44da444 100644
--- a/vite/src/App.jsx
+++ b/vite/src/App.jsx
@@ -8,7 +8,7 @@ function App() {
return (
-
Conversation
+ {/*
Conversation */}
{/*
Flow */}
Free Flow
Settings
diff --git a/vite/src/main.jsx b/vite/src/main.jsx
index ce0d88c..9d070ab 100644
--- a/vite/src/main.jsx
+++ b/vite/src/main.jsx
@@ -20,7 +20,7 @@ createRoot(document.getElementById('root')).render(
- } />
+ } />
} />
} />
} />
diff --git a/vite/src/pages/flow_free.jsx b/vite/src/pages/flow_free.jsx
index b1a1ac8..b4b2c11 100644
--- a/vite/src/pages/flow_free.jsx
+++ b/vite/src/pages/flow_free.jsx
@@ -10,7 +10,7 @@ import NumPad, { NUMPAD_TYPE } from "../comps/numpad";
import { Light } from "../comps/light";
import { useData } from "../util/useData";
import VoiceAnalysis from "../comps/voiceanalysis";
-import { sendOsc, OSC_ADDRESS, updatePrompt, onOscMessageReceived } from "../util/osc";
+import { sendOsc, OSC_ADDRESS, updatePrompt, onOscMessageReceived, sendOscStatus } from "../util/osc";
import { DebugControl, TEST_PROMPT } from "../comps/debug";
import { useUser } from "../util/useUser";
@@ -239,6 +239,7 @@ export function FreeFlow(){
// setChatWelcome(false);
// setChatStatus(ChatStatus.Clear);
// break;
+
case 'summary':
console.log('Getting summary...');
@@ -298,6 +299,7 @@ export function FreeFlow(){
sendOsc(OSC_ADDRESS.COUNTDOWN, '0'); // Reset countdown for non-chat cues
}
+ sendOscStatus(`${data.id}#playcue#${cue.id}`);
console.log('~~~~ clear pause timer');
if(refPauseTimer.current) clearTimeout(refPauseTimer.current);
@@ -354,6 +356,7 @@ export function FreeFlow(){
resetTranscript(); // Reset transcript after cue ends
+ sendOscStatus(`${data.id}#endcue#${cue.id}`);
if(cue.auto) {
playCue(cuelist.find(c => c.id === cue.nextcue));
diff --git a/vite/src/util/chat.js b/vite/src/util/chat.js
index 1499b0b..1951f5f 100644
--- a/vite/src/util/chat.js
+++ b/vite/src/util/chat.js
@@ -1,8 +1,8 @@
import { fetch } from '@tauri-apps/plugin-http';
-import { params } from './system_prompt';
+import { DefaultParams } from './system_prompt';
import { sendOsc, OSC_ADDRESS, updatePrompt } from './osc';
import { invoke } from '@tauri-apps/api/core';
-import { useData } from './useData';
+
const DELAY_SEND_PROMPT = 1000; // Delay in milliseconds before sending the prompt
@@ -27,7 +27,7 @@ export async function sendChatMessage(messages, data, isLastMessage = false) {
]) : ([
{
role: "system",
- content: params.last_prompt
+ content: DefaultParams.last_prompt
}
]);
diff --git a/vite/src/util/osc.js b/vite/src/util/osc.js
index 7d6c06d..a1d6097 100644
--- a/vite/src/util/osc.js
+++ b/vite/src/util/osc.js
@@ -17,6 +17,9 @@ export const OSC_ADDRESS={
DISCARD: 'discard',
PASSWORD: '/password',
HINT:'/hint',
+
+ CLIENT_STATUS:'/client',
+ CLIENT_INPUT:'/client_input',
}
@@ -71,4 +74,27 @@ export function onOscMessageReceived(callback) {
}catch(error){
console.error('Error setting up OSC message listener:', error);
}
+}
+
+export async function sendOscStatus(message) {
+
+ if(message === undefined || message === null) {
+ console.warn('sendOscStatus: message is empty, skipping');
+ return;
+ }
+ // if(key!=OSC_ADDRESS.HINT && message === '') {
+ // return;
+ // }
+
+ try{
+ console.log(`Sending OSC Status:${message}`);
+ await invoke('send_osc_message', {
+ key: OSC_ADDRESS.CLIENT_STATUS,
+ message: message.toString(),
+ host:`0.0.0.0:0`,
+ target: '192.168.234.255:7000',
+ });
+ }catch (error){
+ console.error('Error sending OSC message:', error);
+ }
}
\ No newline at end of file
diff --git a/vite/src/util/system_prompt.js b/vite/src/util/system_prompt.js
index 044db06..cc107c9 100644
--- a/vite/src/util/system_prompt.js
+++ b/vite/src/util/system_prompt.js
@@ -1,4 +1,5 @@
-export const params={
+export const DefaultParams={
+ id:0,
system_prompt:`你是一位具有同理心的 AI 助理,透過溫柔的中文對話,引導使用者回想並表達一段內心的遺憾或未竟之事。
你的任務是協助使用者逐步揭開這段記憶的情緒層次,並在每一階段輸出一句 英文圖像生成 Prompt,讓這段過往漸漸具象為一幅畫面。
以溫柔、自然、短句式中文引導,每次只問使用者一個問題。
@@ -13,7 +14,7 @@ export const params={
summary_prompt:`幫我把以下一段話整理成一段文字,以第一人稱視角作為當事人的文字紀念,文字內容 50 字以內:`,
}
-export const ParamKeys=Object.keys(params);
+export const ParamKeys=Object.keys(DefaultParams);
// export const welcome_prompt="請開始引導使用者回想一段內心的遺憾或未竟之事。";
diff --git a/vite/src/util/useData.jsx b/vite/src/util/useData.jsx
index b853dd1..ded9531 100644
--- a/vite/src/util/useData.jsx
+++ b/vite/src/util/useData.jsx
@@ -1,6 +1,6 @@
import { createContext, useContext, useEffect, useState } from "react";
import { BaseDirectory, readTextFile, exists, writeTextFile, mkdir } from "@tauri-apps/plugin-fs";
-import { ParamKeys } from "./system_prompt";
+import { ParamKeys, DefaultParams } from "./system_prompt";
import { path } from '@tauri-apps/api';
import { openPath } from '@tauri-apps/plugin-opener';
@@ -34,7 +34,7 @@ export function DataProvider({children}) {
console.warn("Missing keys in output:", missingKeys);
// Fill missing keys with default values
missingKeys.forEach(key => {
- output[key] = params[key] || ""; // Use params[key] as default value
+ output[key] = DefaultParams[key] || ""; // Use params[key] as default value
});
}