Commit Graph

485 Commits

Author SHA1 Message Date
misyaguziya
4eb61fa4b7 feat: アプリ終了時の app_closed イベント処理を追加 2026-01-05 22:38:17 +09:00
misyaguziya
300c0d4648 feat: テレメトリ実装設計書を追加 2026-01-05 21:55:45 +09:00
misyaguziya
c60995a0fe [Update] 初期化プロセスのログ出力を整理し、不要な時間計測を削除 2026-01-04 14:58:02 +09:00
misyaguziya
dd1c47069c [Update] エラーハンドリングの構造を統一し、VRAM不足や接続エラーの通知方法を改善 2026-01-03 09:48:14 +09:00
misyaguziya
312999a50b [Update] Optimize initialization process: reduce startup time, implement caching for model weight checks, and enhance parallel processing for AI model checks. 2026-01-03 08:35:39 +09:00
misyaguziya
b0cf8bf335 feat: Implement unified error handling system
- Added `errors.py` to define a centralized error management system with error codes and metadata.
- Created `VRCTError` class for generating standardized error responses.
- Introduced `error_handling_migration_guide.md` to document migration patterns for existing error handling to the new system.
- Updated error handling patterns in the codebase to utilize the new error management system.
2026-01-02 19:38:06 +09:00
misyaguziya
01061cf98f [Fix] Error Handling: Update setter methods to clarify None value handling and enhance authentication failure response policy. 2025-12-30 07:52:08 +09:00
misyaguziya
588b95eebe [Fix] Error Handling: Update setter methods to allow None values for type checks and enhance sensitive data handling in authentication failures. 2025-12-30 06:44:15 +09:00
misyaguziya
6014c2d362 [Fix] Error Handling: Refactor authentication response handling to avoid exposing sensitive data. 2025-12-30 06:07:46 +09:00
misyaguziya
4031a5556d [Fix] Error Handling: Update authentication check to use OpenRouter API for key validation. 2025-12-29 19:15:08 +09:00
misyaguziya
bf1c0236b5 [Fix] Error Handling: Improve network disconnection handling and enhance logging mechanisms. 2025-12-29 16:27:27 +09:00
misyaguziya
063b79477f [Fix] Error Handling: Enhance authentication checks and add support for Groq and OpenRouter models. 2025-12-26 05:30:37 +09:00
misyaguziya
97ea17f649 docs: Remove obsolete URL properties from Config class 2025-12-16 18:10:42 +09:00
misyaguziya
dac903e07c feat: Implement translation prompt history injection for Chat/Mic/Speaker
- Added a history management system in model.py to store and retrieve recent messages from Chat, Mic, and Speaker.
- Updated controller.py to automatically add messages to the translation history after processing.
- Enhanced translation clients (OpenAI, Gemini, Groq, etc.) to accept and utilize context history for improved translation quality.
- Introduced YAML configuration options for enabling history injection and customizing its behavior across different translation models.
- Ensured that only original messages are stored in history to optimize token usage during translation.
2025-12-15 01:15:47 +09:00
misyaguziya
9e88cff889 Refactor translation settings and prompts
- Updated paths for translation settings in backend.spec and backend_cuda.spec to reflect new directory structure.
- Renamed loadPromptConfig to loadTranslatePromptConfig in translation utility files for consistency.
- Created new YAML files for translation prompts (gemini, groq, lmstudio, ollama, openai, openrouter, plamo) with standardized system prompts.
- Added languages.yml file to define language mappings for various translation backends.
2025-12-14 16:10:40 +09:00
misyaguziya
c2cd5ee973 [Add] Documentation: Integrate Groq and OpenRouter API support, including model management and authentication details. 2025-12-11 14:16:02 +09:00
misyaguziya
f327b8e4fa [Add] Controller: Update model selection logic for Groq and OpenRouter, and add corresponding API endpoints in mainloop. 2025-12-11 09:28:38 +09:00
misyaguziya
8b853f4c20 [Add] OpenRouter: Integrate OpenRouter API for authentication, model management, and translation capabilities. 2025-12-10 23:48:56 +09:00
misyaguziya
e59d52815c [Add] Groq: Implement Groq API integration with authentication, model management, and translation capabilities. 2025-12-10 23:33:51 +09:00
misyaguziya
592149afed Merge branch 'build' into develop 2025-11-25 21:47:14 +09:00
misyaguziya
ea4863f195 入れ込み忘れを修正 2025-11-25 18:43:16 +09:00
misyaguziya
ff6ac43fee [Update] Build scripts and configuration: Added new build and install scripts, updated versioning in config files, and improved project structure. 2025-11-25 12:20:55 +09:00
misyaguziya
54ec5ba45d [Update] バージョン管理: package.json, tauri.conf.json, config.pyのバージョンを更新し、update_version.pyを追加 2025-11-25 00:22:23 +09:00
misyaguziya
9a35577ec6 [Update] Controller: Add methods for LMStudio and Ollama connection status checks 2025-11-24 18:01:30 +09:00
misyaguziya
5ca809c8dd [Update] Config: Add model revalidation logic to ensure selected models are valid based on available options. 2025-11-23 00:59:09 +09:00
misyaguziya
add96c1fda [Update] Config: Enhance configuration persistence by filtering serializable properties and updating loading logic for managed properties. 2025-11-23 00:07:32 +09:00
misyaguziya
27b3006ffd [Update] Controller: Add error handling for empty translation model lists and improve logging for translation engine availability checks. 2025-11-20 01:38:50 +09:00
misyaguziya
877f4cefa9 [Fix] Update configuration handling to improve stability and error management 2025-11-14 11:26:33 +09:00
misyaguziya
bc6798714d [Fix] Improve OpenAI authentication handling and error response 2025-11-14 10:42:40 +09:00
misyaguziya
215f5f6815 [Refactor] Update endpoint names to use 'selectable' prefix for mic, speaker, and translation engines 2025-11-12 20:55:08 +09:00
misyaguziya
cfc0e9fcc4 [Feature] Add VAD parameters and no-repeat N-gram size to Config and AudioTranscriber 2025-11-12 12:42:04 +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
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
c97ceec3bc 長文の折り返しに対応 2025-10-23 16:23:50 +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
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
misyaguziya
66d3c09a0d overlay: ルビ表示の上下パディングを対称化(outer_padding導入)しテキスト周囲にUIパディングを追加、ルビ機能のドキュメントを追加 2025-10-22 17:22:50 +09:00
misyaguziya
8be132abe6 overlay: フォントキャッシュ追加と小型ログのルビ描画を改善
- フォントのメモリキャッシュ(_font_cache)と _get_font を導入し truetype 読み込みを最適化
- createTextboxSmallLog を堅牢化(None対応、幅測定の例外処理、改行判定の改善)
- 単語単位ルビ描画機能を追加(renderRubyBlock / createTextboxSmallLogWithRubyTokens)
  - トークン毎の幅算出/センタリング、行折り返し検出時のフォールバック実装
- createOverlayImageSmallLog を拡張して、元文・翻訳それぞれにルビ適用とフォールバック合成を実行
- __main__ のテスト呼び出しを翻訳リスト形式に合わせて修正し、ルビテスト追加
2025-10-22 14:23:41 +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
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