Commit Graph

2698 Commits

Author SHA1 Message Date
Sakamoto Shiina
2062849887 Merge branch 'ui_refactor' into develop 2025-11-08 07:47:13 +09:00
Sakamoto Shiina
1bdea275dc [Refactor] Improve slider logic flexibility.(Adjust to Vr section) 2025-11-08 06:46:52 +09:00
Sakamoto Shiina
4770908831 [bugfix] Correct postUpdateAction handling in slider component.
- Fixed bug where postUpdateAction was not properly passed as a prop to the slider component
- Prevented infinite re-renders by removing postUpdateAction from the dependency array
2025-11-07 08:09:18 +09:00
Sakamoto Shiina
9b69ffe8ff [Refactor/TMP2] Refactor slider logic and appearance settings
- Improve slider logic by adding useMemo for marks calculation and fixing floating point precision issues
- Add loop safety check to prevent infinite loops in createMarks function
- Remove show_label_values prop from TransparencyContainer
- Add proper decimal place handling for slider values
2025-11-07 06:41:33 +09:00
Sakamoto Shiina
2cd4ddc4a3 [Refactor/TMP1] Unify Slider components. (Appearance, Transcription.) VR section is commented out temporally. 2025-11-06 21:44:33 +09:00
Sakamoto Shiina
e23bf223ae [Refactor] Improve clarity of slider logic by inverting label filtering. 2025-11-06 13:04:35 +09:00
Sakamoto Shiina
c76b2981c6 [Refactor] Unify and encapsulate slider UI logic into useSliderLogic hook. Part 1. 2025-11-06 12:44:04 +09:00
Sakamoto Shiina
4adfc8fbc1 [Refactor] Export config hooks from index.js 2025-11-06 10:50:21 +09:00
Sakamoto Shiina
5cbd7618e3 [Refactor] Reorganize config hooks into config_page_setter folder. 2025-11-05 15:15:09 +09:00
Sakamoto Shiina
db820375f1 [Refactor] Move to src-ui/views and src-ui/logics structure. 2025-11-05 11:49:48 +09:00
misyaguziya
62f7c6d534 Merge branch 'test_client' into develop 2025-10-30 22:04:34 +09:00
misyaguziya
3af594960a test_endpoints.py と docs/test_endpoints.md を追加: APIエンドポイント総合テストモジュールを実装・文書化
- 新規: src-python/test_endpoints.py を追加。メインループ統合の総合テストモジュールを実装
  - /set/data/* の動的値を実行時に /get/data/... から取得して self.config_dict にキャッシュしてから選択する方式を導入
  - main_instance の start()/controller.init() 呼び出しと、Watchdog 用の no-op コールバック設定を追加
  - main.mapping のすべての status を True に設定してテスト対象を列挙
  - /set/enable /set/disable /set/data /run /delete/data の個別テスト実装(single/all/random/specific パターン)
  - LLM/API 関連(plamo/gemini/openai/lmstudio/ollama 等)のモデルリスト取得・ランダム選択、認証キー/URL 系は期待ステータスに [200,400] を設定
  - マイク/スピーカー等の検証(閾値・タイムアウト)で不正値時に期待ステータスを [400] にするバリデーション追加
  - 実行系エンドポイント(/run/*)のテスト実装、テスト不能な操作は [401] でスキップ扱い
  - ランダムアクセステスト(全体/ON-OFF/特定セット)を実装
  - 翻訳の総当たりテスト機能と結果を translation_test_results.json に出力
  - テスト結果を収集する record_test_result と generate_summary によるサマリー出力を実装
  - 実行中のデバッグログ出力やスキップ/エラー時の詳細ログを追加

- 新規: src-python/docs/test_endpoints.md を追加。上記モジュールの目的・使用方法・取得/キャッシュ戦略・対象エンドポイント一覧などを文書化

目的: API エンドポイントの包括的な自動テスト基盤を整備し、動的値取得による安定化・LLM/API の接続挙動検査・ランダム負荷試験を容易にする
2025-10-30 22:03:37 +09:00
misyaguziya
7f3db2f82c test_client.pyを改善: /set/data/ のモデル/認証キー/URL系エンドポイント(plamo,gemini,openai,lmstudio,ollama)で expected に [200,400] を追加。データが None の場合のスキップ条件を見直し、expected に 400 が含まれる場合はデータ無しでもリクエストを送信してテストするように変更。 2025-10-29 23:37:12 +09:00
misyaguziya
5f3dcbec81 Merge branch 'bugfix_config' into develop 2025-10-29 11:51:58 +09:00
misyaguziya
8e73469e41 backend_test.mdを更新・mainloop.mdを更新・test_client.mdを追加: /set/data/* の実行時取得とキャッシュ挙動を文書化して動的値選択の理由を追記、mainloopの start() 簡素化(メインループ維持、KeyboardInterruptでstop)と Watchdog(/run/feed_watchdog) 連携を明記、status=348ログ取り扱い・初期化待機・Watchdog運用などドキュメント整形と説明強化 2025-10-29 11:51:04 +09:00
misyaguziya
30f5b44168 test_client.pyを改善: サイレントモード・348ログ展開・自動テストのエクスポート機能を追加
- TestClient.send_request に silent 引数を追加し、詳細ログの抑制に対応
- バックエンド初期化待機/受信処理で status==348 をログ扱いとして全フィールドを整形表示するよう拡張
- 受信表示や他エンドポイントログの出力を silent フラグで抑制するよう修正
- AutomatedEndpointTester のコンストラクタを拡張 (silent, export_path, export_csv) とし、内部呼び出しで silent を伝搬
- テスト結果の JSON/CSV エクスポート機能を追加 (export_results / export_results_csv) とエクスポート用ユーティリティを実装
- インタラクティブメニューに詳細ログ抑制・出力ファイル選択オプションを追加し、AutomatedEndpointTester へ渡すようにした
- その他、watchdog/disable系呼び出し等で silent を使った出力抑制を適用
2025-10-29 11:22:38 +09:00
misyaguziya
66d102abf1 test_client.pyを改善: watchdog スレッドを追加して /run/feed_watchdog を30秒間隔で送信、初期化後に起動・cleanupで停止してjoinする処理と送信エラーのハンドリングを追加 2025-10-29 04:46:46 +09:00
misyaguziya
cf5ce23839 test_client.pyを改善: 起動時のconfig.json削除を追加、初期化待機ロジックを拡張(VRCT_INIT_TIMEOUT対応、ソフトタイムアウト警告、30秒ごとの進捗ログ、プロセス終了検出とログ化、JSONログ表示の安定化)およびAutomatedEndpointTesterクラスを追加して run_all / run_random / run_specific を実装・メニューに統合 2025-10-29 04:38:49 +09:00
misyaguziya
65729d8cad test_client.pyを追加: バックエンドをsubprocessで起動しstdin/stdout経由で通信する対話式テストクライアントを実装。/run/initialization_completeの待機、リクエストデータのJSON→Base64変換、サンプルテスト/対話モード、色付きログ表示、タイムアウト・通信エラーのハンドリング、プロセスの安全なクリーンアップを含む 2025-10-28 23:03:26 +09:00
misyaguziya
5ce281e99b Main.startを簡素化し、受信/ハンドラスレッドの起動を削除してメインループで稼働を維持。KeyboardInterruptでstopを呼び出すように変更 2025-10-28 23:02:16 +09:00
misyaguziya
73969c2fb6 compute_typesをソートして出力を安定化、getBestComputeTypeのselected_typesを初期化してロジックを簡素化 2025-10-25 15:22:50 +09:00
misyaguziya
a54538ee70 configのdictとlistの保存の問題を修正 2025-10-24 16:17:02 +09:00
misyaguziya
c5d075253d Merge branch 'overlay_ruby' into develop 2025-10-23 16:24:05 +09:00
misyaguziya
c97ceec3bc 長文の折り返しに対応 2025-10-23 16:23:50 +09:00
misyaguziya
72a82d82d8 Merge branch 'overlay_ruby' into develop 2025-10-23 15:39:37 +09:00
misyaguziya
c9d09f1e08 不要なconfig Parameterを削除 2025-10-23 15:39:12 +09:00
misyaguziya
a66459baa3 Merge branch 'overlay_ruby' into develop
# Conflicts:
#	src-python/config.py
2025-10-23 14:51:47 +09:00
misyaguziya
31e7ba2a08 Merge branch 'config' into develop 2025-10-23 14:42:24 +09:00
misyaguziya
0a9cb9952b overlay: 大ログにトランスリテレーション(ルビ)対応を追加し描画/APIを拡張
- controller/model: transliteration_message / transliteration_translation を伝搬するよう変更し、createOverlayImage* 呼び出しの引数を更新
- overlay: createTextboxLargeLogWithRubyTokens を実装し、大ログでのトークン単位ルビ描画(フォールバックロジック、外側パディング、行間等)を追加
- overlay: 小型ログAPI/呼び出しを transliteration_* 名に合わせて修正・簡素化
- docs: overlay_ruby.md に大ログ向け仕様と使用例を追記
2025-10-23 14:41:37 +09:00
Sakamoto Shiina
ad8a5ce8a7 Merge branch 'ui_refactor_and_connect_to_backend' into develop 2025-10-23 11:28:39 +09:00
Sakamoto Shiina
4fdaf6611f [Refactor] Remove the commented code that is no longer needed. 2025-10-23 11:20:05 +09:00
Sakamoto Shiina
d3ef567ef2 [Refactor/TMP5] Refactor UI components and connect to backend APIs. (VR(Overlay)) 2025-10-22 17:34:57 +09:00
misyaguziya
66d3c09a0d overlay: ルビ表示の上下パディングを対称化(outer_padding導入)しテキスト周囲にUIパディングを追加、ルビ機能のドキュメントを追加 2025-10-22 17:22:50 +09:00
Sakamoto Shiina
e9287318c3 [Refactor/TMP4] Refactor UI components and connect to backend APIs. (MessageFormat) 2025-10-22 15:17:06 +09:00
misyaguziya
8be132abe6 overlay: フォントキャッシュ追加と小型ログのルビ描画を改善
- フォントのメモリキャッシュ(_font_cache)と _get_font を導入し truetype 読み込みを最適化
- createTextboxSmallLog を堅牢化(None対応、幅測定の例外処理、改行判定の改善)
- 単語単位ルビ描画機能を追加(renderRubyBlock / createTextboxSmallLogWithRubyTokens)
  - トークン毎の幅算出/センタリング、行折り返し検出時のフォールバック実装
- createOverlayImageSmallLog を拡張して、元文・翻訳それぞれにルビ適用とフォールバック合成を実行
- __main__ のテスト呼び出しを翻訳リスト形式に合わせて修正し、ルビテスト追加
2025-10-22 14:23:41 +09:00
Sakamoto Shiina
9473bdef13 [Update/Refactor/TMP3] Refactor UI components and connect to backend APIs. (WordFilter)
Remove message format redo function.
2025-10-22 13:41:08 +09:00
Sakamoto Shiina
dfb08a96bb [Refactor/TMP2] Refactor UI components and connect to backend APIs. (Translation, Transcription models) 2025-10-22 12:04:05 +09:00
misyaguziya
c8ffb329ba config: ManagedProperty/ValidatedProperty を拡張して自動シリアライズ登録を導入
- ManagedProperty / ValidatedProperty に serialize / readonly オプションを追加
- 属性の取得/設定で可変型(dict/list)を deepcopy するようにして外部からの破壊的変更を防止
- readonly プロパティへの書き込みを AttributeError で拒否
- _auto_register_descriptors() を導入し、serialize=True なディスクリプタを自動で json_serializable に登録して JSON シリアライズのボイラープレートを削減
- 多数の手動プロパティ/シリアライズ関数をディスクリプタ定義へ置換・整理し、バリデータ群を上部に集約
- 不要になった inspect インポートを削除
2025-10-21 23:16:42 +09:00
Sakamoto Shiina
36fb857dbb [Refactor/TMP1] Refactor UI components and connect to backend APIs. (Device, Appearance) 2025-10-21 13:17:37 +09:00
misyaguziya
98e2e50b34 config: ManagedProperty/ValidatedProperty を導入して Config を大規模リファクタリング
- 冗長な getter/setter を ManagedProperty / ValidatedProperty のディスクリプタで置換
- _apply_validated_set を追加して複雑なプロパティ設定と保存を共通化・安全化
- オーバーレイ設定・メッセージフォーマット・デバイス選択などのバリデータを整理・強化
- 各プロパティ用の JSON シリアライズヘルパーを追加
- device_manager 依存や初期化時の例外に対して堅牢化
- スクリプト単体実行時の簡易テスト出力を追加
2025-10-21 10:37:59 +09:00
misyaguziya
dd0109d591 config: SEND_MESSAGE_FORMAT_PARTS / RECEIVED_MESSAGE_FORMAT_PARTS の定義と初期化を整理
- プロパティ/セッターと validate ロジックを関連する箇所へ移動
- init_config 内のデフォルト値初期化を移動して設定周りの構成を整備
- 動作に変更はなく、コードの可読性と構造を改善
2025-10-21 07:01:28 +09:00
misyaguziya
caeb8b6888 Merge branch 'translate_api' into develop 2025-10-20 17:20:02 +09:00
misyaguziya
87d11c617c backend_test/docs: LMStudio/Ollama run 接続エンドポイントのテスト追加とドキュメント修正
- backend_test: /run/lmstudio_connection, /run/ollama_connection をテスト対象に追加(期待ステータス 200,400)
- docs: controller.md / mainloop.md の LMStudio/Ollama 接続エンドポイント表記を /get/data→/run に修正
- docs: APIキー検証の厳格化と翻訳モデル選択時の適用確実化に関する説明を追記
2025-10-20 12:23:16 +09:00
misyaguziya
306f0af734 controller: 翻訳モデル選択時にモデル適用とクライアント更新を確実に行うよう修正
- デフォルト選択時および明示的なモデル設定時に model.setTranslatorXModel(...) を呼び出し、モデル状態を確実に反映
- OpenAI/LMStudio/Ollama/Plamo/Gemini/Ollama でクライアント更新を適切な箇所に追加して整合性を向上

mainloop: LMStudio/Ollama 接続チェックのエンドポイントを run 系に変更、ローマ字変換関連を追加
- "/get/data/*_connection" → "/run/*_connection" に変更(LMStudio/Ollama)
- ローマ字変換(convert_message_to_romaji) のマッピングを追加(取得/有効化/無効化)

translation_ollama: 認証チェックのエンドポイント呼び出しを修正
- base_url + "/api/ping" ではなく base_url 直下に対して GET を行うよう変更(環境による応答差異に対応)
2025-10-20 03:48:41 +09:00
misyaguziya
452f564c00 backend_test: LLM/API関連の set/data テスト拡張とデバッグ出力を追加
- /set/data 系のテストに Plamo/Gemini/OpenAI/LMStudio/Ollama のモデル選択と認証キー投入を追加(/get/data/* でモデルリストを事前取得してランダム選択)
- LMStudio の URL を正常/異常ケースでランダム投入するテストを追加
- Deepl 等の認証キーの期待ステータスを [200, 400] に更新(成功/失敗両方を許容)
- set_data_endpoints の数をデバッグログ出力する行を追加
- transliteration 機能(convert_message_to_romaji / convert_message_to_hiragana)の enable/disable エントリをテスト用に追加
2025-10-20 01:30:41 +09:00
misyaguziya
49aafadd1c 認証キー検証を修正(Plamo/Gemini/OpenAI)
- Plamo API のキー判定を厳密化: 長さチェックを「==72」から「>=72」に変更して72文字以上を受け入れるように
- Gemini API の最小長を20→39に引き上げ
- OpenAI API キー判定を簡易長さチェックから厳格化: "sk-"で始まりかつ長さ>=164 を要求するように変更
- OpenAI のエラーメッセージを「長さが不正」から「無効」に変更して意図を明確化
2025-10-20 01:30:00 +09:00
misyaguziya
bcfbf51696 LMStudio 認証呼び出しで base_url を明示渡しへ修正 + ドキュメント整備(ローカルLLM/言語マッピング/フォント等)
- controller: model.authenticationTranslatorLMStudio 呼び出しに base_url=config.LMSTUDIO_URL を明示的に渡すよう修正(LMStudio 接続判定で設定 URL を利用)
- docs: 新規ドキュメントを追加・更新
  - 追加: translation_gemini.md, translation_lmstudio.md, translation_ollama.md, translation_openai.md, translation_plamo.md
  - 更新: config.md, controller.md, mainloop.md, model.md, overlay.md, translation_languages.md, translation_translator.md, 仕様書.md(翻訳/モデル管理・エンドポイント・YAML 言語定義・フォント探索・VRAM フォールバック等の記載追加)
- ドキュメントに記載した主な変更点
  - LMStudio / Ollama のローカルLLM統合(モデルリスト/選択用プロパティ追加、接続確認エンドポイント)
  - CTranslate2 の言語定義を weight_type ネスト構造へ変更対応
  - 外部 YAML による言語マッピング導入(loadTranslationLanguages)
  - フォント探索を PyInstaller バンドル(_internal/fonts/) を考慮して強化
  - 認証後のモデルリスト自動更新・SELECTED_* プロパティ名統一、VRAM エラー検知時の自動フォールバック等の動作説明追加

(コードの振る舞いは既存処理に合わせた引数指定の修正とドキュメント反映が主体)
2025-10-20 01:19:49 +09:00
misyaguziya
83e72b37cc LMStudio 接続チェックとモデル選択処理を追加・強化、mainloop にエンドポイント追加、LMStudio/Ollama のモデル取得を例外耐性化
- Controller に checkTranslatorLMStudioConnection を追加し、接続成功時に SELECTABLE_TRANSLATION_ENGINE_STATUS や SELECTABLE_LMSTUDIO_MODEL_LIST を更新、選択モデルのフォールバック設定・クライアント更新・UI 更新呼び出しを行うよう実装
- setTranslatorLMStudioURL を接続成功時にモデルリスト/ステータス更新や選択モデルのフォールバック処理を行うよう拡張
- checkTranslatorOllamaConnection 成功時にも SELECTABLE_TRANSLATION_ENGINE_STATUS/モデルリスト更新、選択モデルフォールバック、クライアント更新、UI 更新呼び出しを追加
- mainloop に /get/data/lmstudio_connection エンドポイントを追加して LMStudio 接続チェックを公開
- translation_lmstudio.py と translation_ollama.py のモデル取得処理を try/except で保護し、例外時は空リストを返すよう修正(接続失敗やレスポンス異常に対する耐性向上)
2025-10-20 00:38:38 +09:00
misyaguziya
e71bf17e13 各翻訳クライアントで supported_languages を YAML から translation_lang に移行・参照するよう修正、プロンプトYAMLの重複した supported_languages ブロックを削除、LMStudio のデフォルト URL を /v1 に変更、mainloop に LMStudio/Ollama のモデル関連エンドポイントと run_mapping を追加、Controller 内の Ollama 表記のtypo(Lollama→Ollama)を修正してメソッド名・ログ文を更新、各クライアントで translation_languages のフォールバック import を追加 2025-10-19 22:07:58 +09:00
misyaguziya
6596743b6b 翻訳言語定義を YAML に移行しロード処理を実装
- 言語マッピングを src-python/models/translation/languages/languages.yml として追加
- translation_languages.py を全面リファクタ:YAML から読み込み、構造検証、スレッドロック、キャッシュ対応を導入
- config.py に loadTranslationLanguages のインポート/フォールバックを追加し、Config 初期化時に言語定義を読み込むよう変更
- PyYAML を requirements.txt / requirements_cuda.txt に追記
- PyInstaller spec (backend.spec / backend_cuda.spec) に言語ファイル配布先を追加
- translation_ollama.py の loadPromptConfig 呼び出しを修正(ファイル名を明示)
2025-10-18 23:16:22 +09:00