feat: support var in suggested questions (#17340)

Co-authored-by: crazywoola <427733928@qq.com>
This commit is contained in:
le0zh 2025-07-11 15:07:32 +08:00 committed by GitHub
parent 9a9ec0c99b
commit fe4e2f7921
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
20 changed files with 22 additions and 5 deletions

View File

@ -83,12 +83,11 @@ export const useChat = (
const ret = [...threadMessages] const ret = [...threadMessages]
if (config?.opening_statement) { if (config?.opening_statement) {
const index = threadMessages.findIndex(item => item.isOpeningStatement) const index = threadMessages.findIndex(item => item.isOpeningStatement)
if (index > -1) { if (index > -1) {
ret[index] = { ret[index] = {
...ret[index], ...ret[index],
content: getIntroduction(config.opening_statement), content: getIntroduction(config.opening_statement),
suggestedQuestions: config.suggested_questions, suggestedQuestions: config.suggested_questions?.map(item => getIntroduction(item)),
} }
} }
else { else {
@ -97,7 +96,7 @@ export const useChat = (
content: getIntroduction(config.opening_statement), content: getIntroduction(config.opening_statement),
isAnswer: true, isAnswer: true,
isOpeningStatement: true, isOpeningStatement: true,
suggestedQuestions: config.suggested_questions, suggestedQuestions: config.suggested_questions?.map(item => getIntroduction(item)),
}) })
} }
} }

View File

@ -130,6 +130,7 @@ const OpeningSettingModal = ({
<input <input
type="input" type="input"
value={question || ''} value={question || ''}
placeholder={t('appDebug.openingStatement.openingQuestionPlaceholder') as string}
onChange={(e) => { onChange={(e) => {
const value = e.target.value const value = e.target.value
setTempSuggestedQuestions(tempSuggestedQuestions.map((item, i) => { setTempSuggestedQuestions(tempSuggestedQuestions.map((item, i) => {

View File

@ -92,7 +92,7 @@ export const useChat = (
ret[index] = { ret[index] = {
...ret[index], ...ret[index],
content: getIntroduction(config.opening_statement), content: getIntroduction(config.opening_statement),
suggestedQuestions: config.suggested_questions, suggestedQuestions: config.suggested_questions?.map((item: string) => getIntroduction(item)),
} }
} }
else { else {
@ -101,7 +101,7 @@ export const useChat = (
content: getIntroduction(config.opening_statement), content: getIntroduction(config.opening_statement),
isAnswer: true, isAnswer: true,
isOpeningStatement: true, isOpeningStatement: true,
suggestedQuestions: config.suggested_questions, suggestedQuestions: config.suggested_questions?.map((item: string) => getIntroduction(item)),
}) })
} }
} }

View File

@ -298,6 +298,7 @@ const translation = {
add: 'Hinzufügen', add: 'Hinzufügen',
writeOpener: 'Eröffnung schreiben', writeOpener: 'Eröffnung schreiben',
placeholder: 'Schreiben Sie hier Ihre Eröffnungsnachricht, Sie können Variablen verwenden, versuchen Sie {{Variable}} zu tippen.', placeholder: 'Schreiben Sie hier Ihre Eröffnungsnachricht, Sie können Variablen verwenden, versuchen Sie {{Variable}} zu tippen.',
openingQuestionPlaceholder: 'Sie können Variablen verwenden, versuchen Sie {{variable}} einzugeben.',
openingQuestion: 'Eröffnungsfragen', openingQuestion: 'Eröffnungsfragen',
noDataPlaceHolder: noDataPlaceHolder:
'Den Dialog mit dem Benutzer zu beginnen, kann helfen, in konversationellen Anwendungen eine engere Verbindung mit ihnen herzustellen.', 'Den Dialog mit dem Benutzer zu beginnen, kann helfen, in konversationellen Anwendungen eine engere Verbindung mit ihnen herzustellen.',

View File

@ -446,6 +446,7 @@ const translation = {
writeOpener: 'Edit opener', writeOpener: 'Edit opener',
placeholder: 'Write your opener message here, you can use variables, try type {{variable}}.', placeholder: 'Write your opener message here, you can use variables, try type {{variable}}.',
openingQuestion: 'Opening Questions', openingQuestion: 'Opening Questions',
openingQuestionPlaceholder: 'You can use variables, try typing {{variable}}.',
noDataPlaceHolder: noDataPlaceHolder:
'Starting the conversation with the user can help AI establish a closer connection with them in conversational applications.', 'Starting the conversation with the user can help AI establish a closer connection with them in conversational applications.',
varTip: 'You can use variables, try type {{variable}}', varTip: 'You can use variables, try type {{variable}}',

View File

@ -329,6 +329,7 @@ const translation = {
writeOpener: 'Escribir apertura', writeOpener: 'Escribir apertura',
placeholder: 'Escribe tu mensaje de apertura aquí, puedes usar variables, intenta escribir {{variable}}.', placeholder: 'Escribe tu mensaje de apertura aquí, puedes usar variables, intenta escribir {{variable}}.',
openingQuestion: 'Preguntas de Apertura', openingQuestion: 'Preguntas de Apertura',
openingQuestionPlaceholder: 'Puede usar variables, intente escribir {{variable}}.',
noDataPlaceHolder: 'Iniciar la conversación con el usuario puede ayudar a la IA a establecer una conexión más cercana con ellos en aplicaciones de conversación.', noDataPlaceHolder: 'Iniciar la conversación con el usuario puede ayudar a la IA a establecer una conexión más cercana con ellos en aplicaciones de conversación.',
varTip: 'Puedes usar variables, intenta escribir {{variable}}', varTip: 'Puedes usar variables, intenta escribir {{variable}}',
tooShort: 'Se requieren al menos 20 palabras en la indicación inicial para generar una apertura de conversación.', tooShort: 'Se requieren al menos 20 palabras en la indicación inicial para generar una apertura de conversación.',

View File

@ -364,6 +364,7 @@ const translation = {
writeOpener: 'نوشتن آغازگر', writeOpener: 'نوشتن آغازگر',
placeholder: 'پیام آغازگر خود را اینجا بنویسید، می‌توانید از متغیرها استفاده کنید، سعی کنید {{variable}} را تایپ کنید.', placeholder: 'پیام آغازگر خود را اینجا بنویسید، می‌توانید از متغیرها استفاده کنید، سعی کنید {{variable}} را تایپ کنید.',
openingQuestion: 'سوالات آغازین', openingQuestion: 'سوالات آغازین',
openingQuestionPlaceholder: 'می‌توانید از متغیرها استفاده کنید، سعی کنید {{variable}} را تایپ کنید.',
noDataPlaceHolder: 'شروع مکالمه با کاربر می‌تواند به AI کمک کند تا ارتباط نزدیک‌تری با آنها برقرار کند.', noDataPlaceHolder: 'شروع مکالمه با کاربر می‌تواند به AI کمک کند تا ارتباط نزدیک‌تری با آنها برقرار کند.',
varTip: 'می‌توانید از متغیرها استفاده کنید، سعی کنید {{variable}} را تایپ کنید', varTip: 'می‌توانید از متغیرها استفاده کنید، سعی کنید {{variable}} را تایپ کنید',
tooShort: 'حداقل 20 کلمه از پرسش اولیه برای تولید نظرات آغازین مکالمه مورد نیاز است.', tooShort: 'حداقل 20 کلمه از پرسش اولیه برای تولید نظرات آغازین مکالمه مورد نیاز است.',

View File

@ -317,6 +317,7 @@ const translation = {
writeOpener: 'Écrire l\'introduction', writeOpener: 'Écrire l\'introduction',
placeholder: 'Rédigez votre message d\'ouverture ici, vous pouvez utiliser des variables, essayez de taper {{variable}}.', placeholder: 'Rédigez votre message d\'ouverture ici, vous pouvez utiliser des variables, essayez de taper {{variable}}.',
openingQuestion: 'Questions d\'ouverture', openingQuestion: 'Questions d\'ouverture',
openingQuestionPlaceholder: 'Vous pouvez utiliser des variables, essayez de taper {{variable}}.',
noDataPlaceHolder: noDataPlaceHolder:
'Commencer la conversation avec l\'utilisateur peut aider l\'IA à établir une connexion plus proche avec eux dans les applications conversationnelles.', 'Commencer la conversation avec l\'utilisateur peut aider l\'IA à établir une connexion plus proche avec eux dans les applications conversationnelles.',
varTip: 'Vous pouvez utiliser des variables, essayez de taper {{variable}}', varTip: 'Vous pouvez utiliser des variables, essayez de taper {{variable}}',

View File

@ -362,6 +362,7 @@ const translation = {
placeholder: placeholder:
'यहां अपना प्रारंभक संदेश लिखें, आप वेरिएबल्स का उपयोग कर सकते हैं, {{variable}} टाइप करने का प्रयास करें।', 'यहां अपना प्रारंभक संदेश लिखें, आप वेरिएबल्स का उपयोग कर सकते हैं, {{variable}} टाइप करने का प्रयास करें।',
openingQuestion: 'प्रारंभिक प्रश्न', openingQuestion: 'प्रारंभिक प्रश्न',
openingQuestionPlaceholder: 'आप वेरिएबल्स का उपयोग कर सकते हैं, {{variable}} टाइप करके देखें।',
noDataPlaceHolder: noDataPlaceHolder:
'उपयोगकर्ता के साथ संवाद प्रारंभ करने से एआई को संवादात्मक अनुप्रयोगों में उनके साथ निकट संबंध स्थापित करने में मदद मिल सकती है।', 'उपयोगकर्ता के साथ संवाद प्रारंभ करने से एआई को संवादात्मक अनुप्रयोगों में उनके साथ निकट संबंध स्थापित करने में मदद मिल सकती है।',
varTip: varTip:

View File

@ -365,6 +365,7 @@ const translation = {
placeholder: placeholder:
'Scrivi qui il tuo messaggio introduttivo, puoi usare variabili, prova a scrivere {{variable}}.', 'Scrivi qui il tuo messaggio introduttivo, puoi usare variabili, prova a scrivere {{variable}}.',
openingQuestion: 'Domande iniziali', openingQuestion: 'Domande iniziali',
openingQuestionPlaceholder: 'Puoi usare variabili, prova a digitare {{variable}}.',
noDataPlaceHolder: noDataPlaceHolder:
'Iniziare la conversazione con l\'utente può aiutare l\'IA a stabilire un legame più stretto con loro nelle applicazioni conversazionali.', 'Iniziare la conversazione con l\'utente può aiutare l\'IA a stabilire un legame più stretto con loro nelle applicazioni conversazionali.',
varTip: 'Puoi usare variabili, prova a scrivere {{variable}}', varTip: 'Puoi usare variabili, prova a scrivere {{variable}}',

View File

@ -434,6 +434,7 @@ const translation = {
writeOpener: 'オープナーを書く', writeOpener: 'オープナーを書く',
placeholder: 'ここにオープナーメッセージを書いてください。変数を使用できます。{{variable}} を入力してみてください。', placeholder: 'ここにオープナーメッセージを書いてください。変数を使用できます。{{variable}} を入力してみてください。',
openingQuestion: '開始質問', openingQuestion: '開始質問',
openingQuestionPlaceholder: '変数を使用できます。{{variable}} と入力してみてください。',
noDataPlaceHolder: noDataPlaceHolder:
'ユーザーとの会話を開始すると、会話アプリケーションで彼らとのより密接な関係を築くのに役立ちます。', 'ユーザーとの会話を開始すると、会話アプリケーションで彼らとのより密接な関係を築くのに役立ちます。',
varTip: '変数を使用できます。{{variable}} を入力してみてください', varTip: '変数を使用できます。{{variable}} を入力してみてください',

View File

@ -328,6 +328,7 @@ const translation = {
writeOpener: '오프너 작성', writeOpener: '오프너 작성',
placeholder: '여기에 오프너 메시지를 작성하세요. 변수를 사용할 수 있습니다. {{variable}}를 입력해보세요.', placeholder: '여기에 오프너 메시지를 작성하세요. 변수를 사용할 수 있습니다. {{variable}}를 입력해보세요.',
openingQuestion: '시작 질문', openingQuestion: '시작 질문',
openingQuestionPlaceholder: '변수를 사용할 수 있습니다. {{variable}}을(를) 입력해 보세요.',
noDataPlaceHolder: '사용자와의 대화를 시작하면 대화 애플리케이션에서 그들과 더 밀접한 관계를 구축하는 데 도움이 됩니다.', noDataPlaceHolder: '사용자와의 대화를 시작하면 대화 애플리케이션에서 그들과 더 밀접한 관계를 구축하는 데 도움이 됩니다.',
varTip: '변수를 사용할 수 있습니다. {{variable}}를 입력해보세요.', varTip: '변수를 사용할 수 있습니다. {{variable}}를 입력해보세요.',
tooShort: '대화 시작에는 최소 20 단어의 초기 프롬프트가 필요합니다.', tooShort: '대화 시작에는 최소 20 단어의 초기 프롬프트가 필요합니다.',

View File

@ -360,6 +360,7 @@ const translation = {
placeholder: placeholder:
'Tutaj napisz swoją wiadomość wprowadzającą, możesz użyć zmiennych, spróbuj wpisać {{variable}}.', 'Tutaj napisz swoją wiadomość wprowadzającą, możesz użyć zmiennych, spróbuj wpisać {{variable}}.',
openingQuestion: 'Pytania otwierające', openingQuestion: 'Pytania otwierające',
openingQuestionPlaceholder: 'Możesz używać zmiennych, spróbuj wpisać {{variable}}.',
noDataPlaceHolder: noDataPlaceHolder:
'Rozpoczynanie rozmowy z użytkownikiem może pomóc AI nawiązać bliższe połączenie z nim w aplikacjach konwersacyjnych.', 'Rozpoczynanie rozmowy z użytkownikiem może pomóc AI nawiązać bliższe połączenie z nim w aplikacjach konwersacyjnych.',
varTip: 'Możesz używać zmiennych, spróbuj wpisać {{variable}}', varTip: 'Możesz używać zmiennych, spróbuj wpisać {{variable}}',

View File

@ -334,6 +334,7 @@ const translation = {
writeOpener: 'Escrever abertura', writeOpener: 'Escrever abertura',
placeholder: 'Escreva sua mensagem de abertura aqui, você pode usar variáveis, tente digitar {{variável}}.', placeholder: 'Escreva sua mensagem de abertura aqui, você pode usar variáveis, tente digitar {{variável}}.',
openingQuestion: 'Perguntas de Abertura', openingQuestion: 'Perguntas de Abertura',
openingQuestionPlaceholder: 'Você pode usar variáveis, tente digitar {{variable}}.',
noDataPlaceHolder: noDataPlaceHolder:
'Iniciar a conversa com o usuário pode ajudar a IA a estabelecer uma conexão mais próxima com eles em aplicativos de conversação.', 'Iniciar a conversa com o usuário pode ajudar a IA a estabelecer uma conexão mais próxima com eles em aplicativos de conversação.',
varTip: 'Você pode usar variáveis, tente digitar {{variável}}', varTip: 'Você pode usar variáveis, tente digitar {{variável}}',

View File

@ -370,6 +370,7 @@ const translation = {
writeOpener: 'Написать начальное сообщение', writeOpener: 'Написать начальное сообщение',
placeholder: 'Напишите здесь свое начальное сообщение, вы можете использовать переменные, попробуйте ввести {{variable}}.', placeholder: 'Напишите здесь свое начальное сообщение, вы можете использовать переменные, попробуйте ввести {{variable}}.',
openingQuestion: 'Начальные вопросы', openingQuestion: 'Начальные вопросы',
openingQuestionPlaceholder: 'Вы можете использовать переменные, попробуйте ввести {{variable}}.',
noDataPlaceHolder: noDataPlaceHolder:
'Начало разговора с пользователем может помочь ИИ установить более тесную связь с ним в диалоговых приложениях.', 'Начало разговора с пользователем может помочь ИИ установить более тесную связь с ним в диалоговых приложениях.',
varTip: 'Вы можете использовать переменные, попробуйте ввести {{variable}}', varTip: 'Вы можете использовать переменные, попробуйте ввести {{variable}}',

View File

@ -368,6 +368,7 @@ const translation = {
writeOpener: 'Başlangıç mesajı yaz', writeOpener: 'Başlangıç mesajı yaz',
placeholder: 'Başlangıç mesajınızı buraya yazın, değişkenler kullanabilirsiniz, örneğin {{variable}} yazmayı deneyin.', placeholder: 'Başlangıç mesajınızı buraya yazın, değişkenler kullanabilirsiniz, örneğin {{variable}} yazmayı deneyin.',
openingQuestion: 'Açılış Soruları', openingQuestion: 'Açılış Soruları',
openingQuestionPlaceholder: 'Değişkenler kullanabilirsiniz, {{variable}} yazmayı deneyin.',
noDataPlaceHolder: noDataPlaceHolder:
'Kullanıcı ile konuşmayı başlatmak, AI\'ın konuşma uygulamalarında onlarla daha yakın bir bağlantı kurmasına yardımcı olabilir.', 'Kullanıcı ile konuşmayı başlatmak, AI\'ın konuşma uygulamalarında onlarla daha yakın bir bağlantı kurmasına yardımcı olabilir.',
varTip: 'Değişkenler kullanabilirsiniz, örneğin {{variable}} yazmayı deneyin', varTip: 'Değişkenler kullanabilirsiniz, örneğin {{variable}} yazmayı deneyin',

View File

@ -328,6 +328,7 @@ const translation = {
writeOpener: 'Напишіть вступне повідомлення', // Write opener writeOpener: 'Напишіть вступне повідомлення', // Write opener
placeholder: 'Напишіть тут своє вступне повідомлення, ви можете використовувати змінні, спробуйте ввести {{variable}}.', // Write your opener message here... placeholder: 'Напишіть тут своє вступне повідомлення, ви можете використовувати змінні, спробуйте ввести {{variable}}.', // Write your opener message here...
openingQuestion: 'Відкриваючі питання', // Opening Questions openingQuestion: 'Відкриваючі питання', // Opening Questions
openingQuestionPlaceholder: 'Ви можете використовувати змінні, спробуйте ввести {{variable}}.',
noDataPlaceHolder: 'Початок розмови з користувачем може допомогти ШІ встановити більш тісний зв’язок з ним у розмовних застосунках.', // ... conversational applications. noDataPlaceHolder: 'Початок розмови з користувачем може допомогти ШІ встановити більш тісний зв’язок з ним у розмовних застосунках.', // ... conversational applications.
varTip: 'Ви можете використовувати змінні, спробуйте ввести {{variable}}', // You can use variables, try type {{variable}} varTip: 'Ви можете використовувати змінні, спробуйте ввести {{variable}}', // You can use variables, try type {{variable}}
tooShort: 'Для створення вступних зауважень для розмови потрібно принаймні 20 слів вступного запиту.', // ... are required to generate an opening remarks for the conversation. tooShort: 'Для створення вступних зауважень для розмови потрібно принаймні 20 слів вступного запиту.', // ... are required to generate an opening remarks for the conversation.

View File

@ -328,6 +328,7 @@ const translation = {
writeOpener: 'Viết câu mở đầu', writeOpener: 'Viết câu mở đầu',
placeholder: 'Viết thông điệp mở đầu của bạn ở đây, bạn có thể sử dụng biến, hãy thử nhập {{biến}}.', placeholder: 'Viết thông điệp mở đầu của bạn ở đây, bạn có thể sử dụng biến, hãy thử nhập {{biến}}.',
openingQuestion: 'Câu hỏi mở đầu', openingQuestion: 'Câu hỏi mở đầu',
openingQuestionPlaceholder: 'Bạn có thể sử dụng biến, hãy thử nhập {{variable}}.',
noDataPlaceHolder: 'Bắt đầu cuộc trò chuyện với người dùng có thể giúp AI thiết lập mối quan hệ gần gũi hơn với họ trong các ứng dụng trò chuyện.', noDataPlaceHolder: 'Bắt đầu cuộc trò chuyện với người dùng có thể giúp AI thiết lập mối quan hệ gần gũi hơn với họ trong các ứng dụng trò chuyện.',
varTip: 'Bạn có thể sử dụng biến, hãy thử nhập {{biến}}', varTip: 'Bạn có thể sử dụng biến, hãy thử nhập {{biến}}',
tooShort: 'Cần ít nhất 20 từ trong lời nhắc ban đầu để tạo ra các câu mở đầu cho cuộc trò chuyện.', tooShort: 'Cần ít nhất 20 từ trong lời nhắc ban đầu để tạo ra các câu mở đầu cho cuộc trò chuyện.',

View File

@ -436,6 +436,7 @@ const translation = {
writeOpener: '编写开场白', writeOpener: '编写开场白',
placeholder: '在这里写下你的开场白,你可以使用变量,尝试输入 {{variable}}。', placeholder: '在这里写下你的开场白,你可以使用变量,尝试输入 {{variable}}。',
openingQuestion: '开场问题', openingQuestion: '开场问题',
openingQuestionPlaceholder: '可以使用变量,尝试输入 {{variable}}。',
noDataPlaceHolder: noDataPlaceHolder:
'在对话型应用中,让 AI 主动说第一段话可以拉近与用户间的距离。', '在对话型应用中,让 AI 主动说第一段话可以拉近与用户间的距离。',
varTip: '你可以使用变量,试试输入 {{variable}}', varTip: '你可以使用变量,试试输入 {{variable}}',

View File

@ -313,6 +313,7 @@ const translation = {
writeOpener: '編寫開場白', writeOpener: '編寫開場白',
placeholder: '在這裡寫下你的開場白,你可以使用變數,嘗試輸入 {{variable}}。', placeholder: '在這裡寫下你的開場白,你可以使用變數,嘗試輸入 {{variable}}。',
openingQuestion: '開場問題', openingQuestion: '開場問題',
openingQuestionPlaceholder: '可以使用變量,嘗試輸入 {{variable}}。',
noDataPlaceHolder: noDataPlaceHolder:
'在對話型應用中,讓 AI 主動說第一段話可以拉近與使用者間的距離。', '在對話型應用中,讓 AI 主動說第一段話可以拉近與使用者間的距離。',
varTip: '你可以使用變數,試試輸入 {{variable}}', varTip: '你可以使用變數,試試輸入 {{variable}}',