Skip to content

Commit

Permalink
Merge pull request #257 from tegnike/develop
Browse files Browse the repository at this point in the history
本番リリース
  • Loading branch information
tegnike authored Dec 10, 2024
2 parents 630abf9 + 3ce77ad commit 409ef16
Show file tree
Hide file tree
Showing 28 changed files with 1,099 additions and 540 deletions.
19 changes: 16 additions & 3 deletions locales/en/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@
"UsingStyleBertVITS2": "Style-Bert-VITS2",
"StyleBertVITS2Info": "Using Style-Bert-VITS2. It supports only Japanese, English, and Chinese. If using a local API, you need to download and launch the app that suits your environment from the site below. Please also set up an API key if necessary.",
"SpeakerSelection": "Speaker Selection",
"IncludeTimestampInUserMessage": "Include timestamp in user message",
"IncludeTimestampInUserMessageInfo": "Including a timestamp in user messages allows AI to generate responses considering time. Please include the following text in the system prompt.\n\n「The user input may be requested with a timestamp. This represents the time at the request, so please generate a response considering that time.」",
"GoogleTTSInfo": "Using Google Cloud Text-to-Speech. It supports multiple languages.",
"AuthFileInstruction": "Obtain the authentication JSON file below and place it in the root folder of the repository as 'credentials.json'.",
"LanguageModelURL": "Select the language model from the URL below.",
Expand Down Expand Up @@ -119,7 +121,6 @@
"CharacterName": "Character name",
"ShowAssistantText": "Show answer box",
"ShowCharacterName": "Show character name in the answer box",
"AdvancedSettings": "Advanced Settings",
"ShowControlPanel": "Show settings button",
"ShowControlPanelInfo": "The settings screen can be displayed by pressing Cmd + . (Mac) / Ctrl + . (Windows) .",
"SlideMode": "Slide Mode",
Expand All @@ -135,7 +136,9 @@
"PdfConvertSuccess": "Conversion completed",
"PdfConvertError": "Conversion failed",
"PdfConvertSubmitError": "Please make sure the PDF file, folder name, and API key are set.",
"LocalStorageReset": "Reset settings (page will be reloaded)",
"LocalStorageReset": "Reset Settings",
"LocalStorageResetInfo": "Environment variables are prioritized if set. The page will be reloaded.",
"LocalStorageResetButton": "Reset Settings",
"Errors": {
"EmptyAPIKey": "API key is not set",
"AIInvalidProperty": "AI service settings are incorrect",
Expand Down Expand Up @@ -179,5 +182,15 @@
"OpenAITTSModel": "Model",
"OpenAITTSSpeed": "Speed",
"UsingAzureTTS": "Using Azure OpenAI",
"AzureTTSInfo": "Using Azure OpenAI. It supports multiple languages."
"AzureTTSInfo": "Using Azure OpenAI. It supports multiple languages.",
"SendMessage": {
"title": "AITuberKit External Adapter",
"directSendTitle": "Directly speak to AI character",
"directSendDescription": "You can send the message directly to the AI character. If multiple messages are sent, they are processed in order. The voice model is the one selected in the AITuberKit settings.",
"aiGenerateTitle": "Generate AI response and then speak",
"aiGenerateDescription": "The AI generates a response from the message sent and then speaks it. If multiple messages are sent, they are processed in order. The AI model and voice model are the ones selected in the AITuberKit settings. The system prompt can be selected to use the AITuberKit system prompt or a custom system prompt. If you want to load the past conversation history, include the string [conversation_history] in the system prompt or user message.",
"useCurrentSystemPrompt": "Use AITuberKit system prompt",
"userInputTitle": "Send user input",
"userInputDescription": "The message sent is processed the same as when input from the AITuberKit input form. If multiple messages are sent, they are processed in order. The AI model and voice model are the ones selected in the AITuberKit settings. The system prompt and conversation history are the values set in AITuberKit."
}
}
21 changes: 17 additions & 4 deletions locales/ja/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@
"StyleBertVITS2Info": "Style-Bert-VITS2を使用しています。日・英・中のみに対応しています。ローカルAPIを使用する場合は、下記のサイトから環境にあったアプリをダウンロードし起動しておく必要があります。必要な場合はAPIキーも設定してください。",
"SpeakerSelection": "ボイスタイプ選択",
"EnglishToJapanese": "英単語を日本語で読み上げる",
"IncludeTimestampInUserMessage": "ユーザー発言にタイムスタンプを含める",
"IncludeTimestampInUserMessageInfo": "ユーザー発言にタイムスタンプを含めることで、AIが時間を考慮して応答を生成できるようになります。\n以下のような文章をシステムプロンプトに含めてください。\n\n「ユーザー入力が [timestamp] 付きでリクエストされる場合があります。これはリクエスト時点の時刻を表しているので、その時刻を考慮したうえで回答を生成してください。」",
"GoogleTTSInfo": "Google Cloud Text-to-Speechを使用しています。多言語に対応可能です。",
"AuthFileInstruction": "認証用のJSONファイルを下記から取得し、リポジトリのルートフォルダに credentials.json という名称で配置してください。",
"LanguageModelURL": "言語モデルは下記のURLから選択してください。",
Expand Down Expand Up @@ -120,7 +122,6 @@
"CharacterName": "キャラクター名",
"ShowAssistantText": "回答欄を表示する",
"ShowCharacterName": "回答欄にキャラクター名を表示する",
"AdvancedSettings": "詳細設定",
"ShowControlPanel": "操作パネルを表示する",
"ShowControlPanelInfo": "設定画面は Cmd + . (Mac) / Ctrl + . (Windows) で表示することができます。",
"SlideMode": "スライドモード",
Expand All @@ -136,7 +137,9 @@
"PdfConvertSuccess": "変換が完了しました",
"PdfConvertError": "変換に失敗しました",
"PdfConvertSubmitError": "PDFファイル、フォルダ名、APIキーが設定されているか確認をしてください",
"LocalStorageReset": "設定をリセットする(ページが再読み込みされます)",
"LocalStorageReset": "設定をリセットする",
"LocalStorageResetInfo": "環境変数が設定されている場合はその値が優先されます。ページが再読み込みされます。",
"LocalStorageResetButton": "設定リセット",
"Errors": {
"EmptyAPIKey": "APIキーが設定されていません",
"AIInvalidProperty": "AIサービスの設定値が正しくありません",
Expand All @@ -158,7 +161,7 @@
"RealtimeAPIMode": "リアルタイムAPIモード",
"RealtimeAPIModeContentType": "送信タイプ",
"RealtimeAPIModeVoice": "ボイスタイプ",
"AudioMode": "オーディオモード(Beta",
"AudioMode": "オーディオモード(ベータ版",
"InputText": "テキスト",
"InputAudio": "音声",
"UpdateRealtimeAPISettings": "リアルタイムAPI設定を更新",
Expand All @@ -180,5 +183,15 @@
"OpenAITTSModel": "モデル",
"OpenAITTSSpeed": "話速",
"UsingAzureTTS": "Azure OpenAIを使用する",
"AzureTTSInfo": "Azure OpenAIを使用しています。多言語に対応可能です。"
"AzureTTSInfo": "Azure OpenAIを使用しています。多言語に対応可能です。",
"SendMessage": {
"title": "AITuberKit 外部アダプター",
"directSendTitle": "AIキャラにそのまま発言させる",
"directSendDescription": "送信したメッセージをそのままAIキャラに発言させることができます。複数送信した場合は順番に処理されます。\n音声モデルはAITuberKitの設定で選択したものが使用されます。",
"aiGenerateTitle": "AIで回答を生成してから発言させる",
"aiGenerateDescription": "送信したメッセージからAIが回答を生成し、その回答をAIキャラに発言させます。複数送信した場合は順番に処理されます。\nAIモデルおよび音声モデルはAITuberKitの設定で選択したものが使用されます。\nシステムプロンプトはAITuberKitのシステムプロンプトを使用するか、カスタムのシステムプロンプトを使用するかを選択できます。\n過去の会話履歴を読み込ませる場合は、システムプロンプト または ユーザーメッセージの任意の位置に [conversation_history] という文字列を含めてください。",
"useCurrentSystemPrompt": "AITuberKitのシステムプロンプトを利用する",
"userInputTitle": "ユーザー入力を送信する",
"userInputDescription": "送信したメッセージはAITuberKitの入力フォームから入力された場合と同じ処理がされます。複数送信した場合は順番に処理されます。\nAIモデルおよび音声モデルはAITuberKitの設定で選択したものが使用されます。\nシステムプロンプトや会話履歴はAITuberKitの値が使用されます。"
}
}
21 changes: 17 additions & 4 deletions locales/ko/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@
"UsingStyleBertVITS2": "Style-Bert-VITS2 사용",
"StyleBertVITS2Info": "Style-Bert-VITS2를 사용하고 있습니다. 일본어, 영어, 중국어만 지원됩니다. 로컬 API를 사용하는 경우 아래 사이트에서 환경에 맞는 앱을 다운로드하고 실행해야 합니다. 필요한 경우 API 키도 설정해 주세요.",
"SpeakerSelection": "보이스 타입 선택",
"IncludeTimestampInUserMessage": "사용자 발언에 타임스탬프 포함",
"IncludeTimestampInUserMessageInfo": "사용자 발언에 타임스탬프를 포함하면 AI가 시간을 고려하여 응답을 생성할 수 있습니다.\n다음과 같은 문장을 시스템 프롬프트에 포함해 주세요.\n\n「사용자 입력이 [timestamp]가 포함된 요청인 경우가 있습니다. 이는 요청 시점의 시각을 나타내므로, 해당 시각을 고려하여 답변을 생성해 주세요.」",
"GoogleTTSInfo": "Google Cloud Text-to-Speech를 사용합니다. 다국어 지원이 가능합니다.",
"AuthFileInstruction": "인증용 JSON 파일을 아래에서 얻어 리포지토리 루트 폴더에 credentials.json이라는 이름으로 배치하십시오.",
"LanguageModelURL": "언어 모델은 아래 URL에서 선택하십시오.",
Expand Down Expand Up @@ -119,7 +121,6 @@
"CharacterName": "캐릭터 이름",
"ShowAssistantText": "답변란 표시",
"ShowCharacterName": "답변란에 캐릭터 이름을 표시",
"AdvancedSettings": "고급 설정",
"ShowControlPanel": "설정 버튼 표시",
"ShowControlPanelInfo": "설정 화면은 Cmd + . (Mac) / Ctrl + . (Windows)를 눌러 표시할 수 있습니다.",
"SlideMode": "슬라이드 모드",
Expand All @@ -135,7 +136,9 @@
"PdfConvertSuccess": "변환 완료",
"PdfConvertError": "변환 실패",
"PdfConvertSubmitError": "PDF 파일, 폴더 이름, API 키가 설정되어 있는지 확인하세요.",
"LocalStorageReset": "설정을 재설정합니다 (페이지가 다시 로드됩니다)",
"LocalStorageReset": "설정 초기화",
"LocalStorageResetInfo": "환경 변수가 설정되어 있는 경우 해당 값이 우선됩니다. 페이지가 새로고침됩니다.",
"LocalStorageResetButton": "설정 초기화",
"Errors": {
"EmptyAPIKey": "API 키가 설정되지 않았습니다",
"AIInvalidProperty": "AI 서비스 설정값이 올바르지 않습니다",
Expand All @@ -157,7 +160,7 @@
"RealtimeAPIMode": "리얼타임 API 모드",
"RealtimeAPIModeContentType": "보내기 타입",
"RealtimeAPIModeVoice": "음성 타입",
"AudioMode": "오디오 모드 (Beta)",
"AudioMode": "오디오 모드 (베타 버전)",
"InputText": "텍스트",
"InputAudio": "음성",
"UpdateRealtimeAPISettings": "리얼타임 API 설정 업데이트",
Expand All @@ -179,5 +182,15 @@
"OpenAITTSModel": "모델",
"OpenAITTSSpeed": "말 속도",
"UsingAzureTTS": "Azure OpenAI 사용",
"AzureTTSInfo": "Azure OpenAI를 사용하고 있습니다. 다국어에 대응할 수 있습니다."
"AzureTTSInfo": "Azure OpenAI를 사용하고 있습니다. 다국어에 대응할 수 있습니다.",
"SendMessage": {
"title": "AITuberKit 외부 어댑터",
"directSendTitle": "AI 캐릭터에 직접 말하기",
"directSendDescription": "보낸 메시지를 그대로 AI 캐릭터에게 말하게 할 수 있습니다. 여러 메시지를 보낸 경우 순서대로 처리됩니다.\n음성 모델은 AITuberKit의 설정에서 선택한 것이 사용됩니다.",
"aiGenerateTitle": "AI가 답변을 생성한 후 말하기",
"aiGenerateDescription": "보낸 메시지에서 AI가 답변을 생성하고, 그 답변을 AI 캐릭터에게 말하게 할 수 있습니다. 여러 메시지를 보낸 경우 순서대로 처리됩니다.\nAI 모델과 음성 모델은 AITuberKit의 설정에서 선택한 것이 사용됩니다.\n시스템 프롬프트는 AITuberKit의 시스템 프롬프트를 사용하거나, 커스텀 시스템 프롬프트를 사용하거나 선택할 수 있습니다.\n과거 대화 기록을 불러오려면 시스템 프롬프트 또는 사용자 메시지의 임의의 위치에 [conversation_history]라는 문자열을 포함해 주세요.",
"useCurrentSystemPrompt": "AITuberKit의 시스템 프롬프트를 사용하기",
"userInputTitle": "사용자 입력 보내기",
"userInputDescription": "보낸 메시지는 AITuberKit의 입력 폼에서 입력한 경우와 동일한 처리가 됩니다. 여러 메시지를 보낸 경우 순서대로 처리됩니다.\nAI 모델과 음성 모델은 AITuberKit의 설정에서 선택한 것이 사용됩니다.\n시스템 프롬프트와 대화 기록은 AITuberKit의 값이 사용됩니다."
}
}
21 changes: 17 additions & 4 deletions locales/zh/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@
"UsingStyleBertVITS2": "使用 Style-Bert-VITS2",
"StyleBertVITS2Info": "使用 Style-Bert-VITS2。僅支援日語、英語和中文。如果使用本地 API,您需要從以下網站下載並啟動適合您環境的應用程式。如有需要,請也設定 API 金鑰。",
"SpeakerSelection": "選擇語音角色",
"IncludeTimestampInUserMessage": "在用戶訊息中包含時間戳記",
"IncludeTimestampInUserMessageInfo": "在用戶訊息中包含時間戳記,可以讓 AI 根據時間生成回應。\n請在系統提示中包含以下文字:\n\n「用戶輸入可能會包含 [timestamp] 時間戳記。這代表請求時的時間,請根據該時間生成回應。」",
"GoogleTTSInfo": "使用 Google Cloud 文字轉語音。支援多種語言。",
"AuthFileInstruction": "在下方獲取認證 JSON 檔案,並將其放置於儲存庫的根目錄下,命名為 'credentials.json'。",
"LanguageModelURL": "從下方 URL 選擇語言模型。",
Expand Down Expand Up @@ -119,7 +121,6 @@
"CharacterName": "角色名字",
"ShowAssistantText": "顯示回答框",
"ShowCharacterName": "在回答框中顯示角色名稱",
"AdvancedSettings": "高階設定",
"ShowControlPanel": "顯示設定按鈕",
"ShowControlPanelInfo": "可以透過按 Cmd + . (Mac) / Ctrl + . (Windows) 來顯示設定介面。",
"SlideMode": "投影片模式",
Expand All @@ -135,7 +136,9 @@
"PdfConvertSuccess": "轉換完成",
"PdfConvertError": "轉換失敗",
"PdfConvertSubmitError": "請確保已設定PDF檔案、資料夾名稱和API金鑰。",
"LocalStorageReset": "重設設定(頁面會重新載入)",
"LocalStorageReset": "設定重置",
"LocalStorageResetInfo": "環境變數設定時,優先使用其值。頁面將重新載入。",
"LocalStorageResetButton": "設定重置",
"Errors": {
"EmptyAPIKey": "API 金鑰未設定",
"AIInvalidProperty": "AI 服務設定值不正確",
Expand All @@ -157,7 +160,7 @@
"RealtimeAPIMode": "實時API模式",
"RealtimeAPIModeContentType": "送信型別",
"RealtimeAPIModeVoice": "語音型別",
"AudioMode": "音訊模式(Beta",
"AudioMode": "音訊模式(測試版",
"InputText": "文字",
"InputAudio": "音訊",
"UpdateRealtimeAPISettings": "更新實時API設定",
Expand All @@ -179,5 +182,15 @@
"OpenAITTSModel": "模型",
"OpenAITTSSpeed": "話速",
"UsingAzureTTS": "使用 Azure OpenAI",
"AzureTTSInfo": "使用 Azure OpenAI。它支援多種語言。"
"AzureTTSInfo": "使用 Azure OpenAI。它支援多種語言。",
"SendMessage": {
"title": "AITuberKit 外部適配器",
"directSendTitle": "AI角色直接發言",
"directSendDescription": "發送的訊息將直接由AI角色發言。如果發送多個訊息,將按順序處理。\n語音模型將使用AITuberKit的設定中選擇的模型。",
"aiGenerateTitle": "AI生成回答後發言",
"aiGenerateDescription": "從發送的訊息中由AI生成回答,然後由AI角色發言。如果發送多個訊息,將按順序處理。\nAI模型和語音模型將使用AITuberKit的設定中選擇的模型。\n系統提示可以選擇使用AITuberKit的系統提示或自定義的系統提示。\n如果需要讀取過去的會話記錄,請在系統提示或用戶訊息的任意位置包含 [conversation_history] 字串。",
"useCurrentSystemPrompt": "使用AITuberKit的系統提示",
"userInputTitle": "用戶輸入發送",
"userInputDescription": "發送的訊息將與AITuberKit的輸入框中輸入的訊息相同。如果發送多個訊息,將按順序處理。\nAI模型和語音模型將使用AITuberKit的設定中選擇的模型。\n系統提示和會話記錄將使用AITuberKit的值。"
}
}
10 changes: 1 addition & 9 deletions src/components/form.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import { useCallback, useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'

import settingsStore from '@/features/stores/settings'
import homeStore from '@/features/stores/home'
import menuStore from '@/features/stores/menu'
Expand All @@ -17,14 +15,8 @@ export const Form = () => {
const slideVisible = menuStore((s) => s.slideVisible)
const slidePlaying = slideStore((s) => s.isPlaying)
const chatProcessingCount = homeStore((s) => s.chatProcessingCount)

const [delayedText, setDelayedText] = useState('')

const { t } = useTranslation()
const handleSendChat = handleSendChatFn({
NotConnectedToExternalAssistant: t('NotConnectedToExternalAssistant'),
APIKeyNotEntered: t('APIKeyNotEntered'),
})
const handleSendChat = handleSendChatFn()

useEffect(() => {
// テキストと画像がそろったら、チャットを送信
Expand Down
Loading

0 comments on commit 409ef16

Please sign in to comment.