Skip to content

Commit abfb390

Browse files
authored
Merge pull request #66 from led-mirage/feature/v1.37.0
Feature/v1.37.0
2 parents b360b00 + d63dce3 commit abfb390

23 files changed

+222
-75
lines changed

Readme.en.md

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,38 +11,39 @@ Copyright (c) 2024-2025 led-mirage
1111

1212
[Japanese](Readme.md)
1313

14-
## 💎 Download
14+
## 💎 What's ZundaGPT2?
1515

16-
🚀 [Get the latest version here](https://led-mirage.github.io/ZundaGPT2Lite/)
16+
ZundaGPT2 is an AI chat client that lets you customize characters and the interface to your liking.
17+
It can also work with tools like VOICEVOX and COEIROINK to read questions and answers aloud in real time."
1718

1819
## 💎 Screenshot
1920

20-
<img src="assets/ZundaGPT2_splash.png" width="200" />
21+
↓ Customization example (background image generated by AI)
22+
<img src="doc/images/screenshot_1.37.0.png" width="600" /><br>
2123

22-
https://github.com/user-attachments/assets/bf280955-9b12-42df-973c-d49c369e6fb5
24+
## 💎 Download
25+
26+
🚀 [Get the latest version here](https://led-mirage.github.io/ZundaGPT2Lite/)
2327

2428
<div class="page" />
2529

26-
## 💎 App Introduction & Getting Started
30+
## 💎 Overview
2731

28-
This is an app that lets you chat with AI using various APIs.
29-
You can customize your own character, and one of the unique features is that it can read out both questions and answers aloud by integrating with VOICEVOX and other text-to-speech tools.
32+
Here are the key features of this app ✨
3033

31-
Here are the highlights of this app ✨
34+
- Supports three major AI services (OpenAI, Gemini, Claude) as well as local LLMs
35+
- Markdown rendering and TeX-style math formula display
36+
- Character customization
37+
- UI/theme customization
38+
- Automatic message text-to-speech
39+
- Chat history management
40+
- Printing support
41+
- Replay feature
42+
- Multi-platform support (Windows / Linux / Raspberry Pi)
3243

33-
* Supports the three major AI services (OpenAI, Google Gemini, and Anthropic Claude)
34-
* Supports OpenAI API-compatible local LLMs
35-
* Character customization feature
36-
* Automatic message read-aloud feature
37-
* Markdown display and TeX-format formula rendering
38-
* Past conversation log management
39-
* Replay function
40-
* Printing function
41-
* Compatible with Raspberry Pi (X11/LXDE only, Japanese input via IBus only, printing not supported)
42-
* Compatible with Linux Mint (Cinnamon/x64 only, Japanese input via IBus only, printing not supported)
43-
* Dark mode supported
44-
* Custom CSS support
45-
* Image-based questions are now supported (experimental) ✨
44+
※ Local LLMs must be compatible with the OpenAI API
45+
※ Linux Mint supported (Cinnamon / x64, Japanese input via IBus only, printing not supported)
46+
※ Raspberry Pi supported (X11 / LXDE, Japanese input via IBus only, printing not supported)
4647

4748
## 💎 Language Support
4849

@@ -308,17 +309,17 @@ Please understand that the developer cannot be held responsible for any damages
308309
Homepage: https://github.com/r0x0r/pywebview
309310
License:BSD-3-Clause license
310311

311-
### 🔖 openai 2.5.0
312+
### 🔖 openai 2.8.1
312313

313314
Homepage: https://github.com/openai/openai-python
314315
License:Apache License 2.0
315316

316-
### 🔖 google-genai 1.45.0
317+
### 🔖 google-genai 1.52.0
317318

318319
Homepage: https://github.com/googleapis/python-genai
319320
License:Apache License 2.0
320321

321-
### 🔖 anthropic 0.71.0
322+
### 🔖 anthropic 0.75.0
322323

323324
Homepage: https://github.com/anthropics/anthropic-sdk-python
324325
License:MIT license

Readme.md

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -11,46 +11,43 @@ Copyright (c) 2024-2025 led-mirage
1111

1212
[English](Readme.en.md)
1313

14-
## 💎 ダウンロード
14+
## 💎 What's ZundaGPT2?
1515

16-
🚀 [最新版のダウンロードはこちらなのだ](https://led-mirage.github.io/ZundaGPT2/)
16+
ZundaGPT2 はキャラクターや画面を自分好みにカスタマイズできるAIチャットクライアントなのだ。
17+
VOICEVOXやCOEIROINKなどと連携して質問と回答をリアルタイムに読み上げてくれるのだ。
1718

1819
## 💎 スクリーンショット
1920

20-
<img src="assets/ZundaGPT2_splash.png" width="200" /><br>
21-
22-
<img src="doc/images/screenshot_1.10.0.png" width="600" /><br>
23-
24-
↓ カスタムCSSを使って背景画像を設定した例なのだ。
25-
<img src="doc/images/screenshot_1.28.0.png" width="600" /><br>
21+
↓ カスタマイズ例(背景画像はAI生成画像)
22+
<img src="doc/images/screenshot_1.37.0.png" width="600" /><br>
2623

2724
<div class="page" />
2825

29-
## 💎 アプリの紹介と導入方法
26+
## 💎 ダウンロード
27+
28+
🚀 [最新版のダウンロードはこちらなのだ](https://led-mirage.github.io/ZundaGPT2/)
3029

31-
APIを使ってAIとチャットするアプリなのだ。
32-
キャラクターをカスタマイズできることと、VOICEVOXなどと連携して質問と回答を音声で読み上げてくれるのが特徴なのだ。
30+
## 💎 アプリの特徴と導入方法
3331

3432
このアプリのアピールポイントは次のとおりなのだ✨
3533

36-
- 3大AIサービス(OpenAI、Google Gemini、Anthropic Claude)に対応
37-
- ローカルLLM(OpenAI API互換)に対応
38-
- 柔軟なキャラクターカスタマイズ機能
39-
- メッセージ自動読み上げ機能
34+
- 3大AIサービス(OpenAI、Gemini、Claude)およびローカルLLMに対応
4035
- マークダウン表示、TeX形式の数式表示機能
36+
- キャラクターカスタマイズ機能
37+
- 画面デザインのカスタマイズ機能
38+
- メッセージ自動読み上げ機能
4139
- 過去ログ管理機能
42-
- リプレイ機能
4340
- 印刷機能
44-
- Raspberry Pi対応(X11/LXDE、日本語入力はIBus限定、印刷機能は非対応)
45-
- Linux Mint対応(Cinnamon/x64、日本語入力はIBus限定、印刷機能は非対応)
46-
- ダークモード対応
47-
- スタイルシート(CSS)をカスタマイズ可能
48-
- 画像を使った質問が可能(実験的機能)✨
41+
- リプレイ機能
42+
- マルチプラットフォーム対応(Windows / Linux / Raspberry Pi)
43+
44+
※ ローカルLLMはOpenAI API互換のものに対応
45+
※ Linux Mint対応(Cinnamon/x64、日本語入力はIBus限定、印刷機能は非対応)
46+
※ Raspberry Pi対応(X11/LXDE、日本語入力はIBus限定、印刷機能は非対応)
4947

5048
アプリの紹介と、もっとも手軽な導入方法を[Zennの記事](https://zenn.dev/ledmirage/articles/7650f36d3a784a)にしたので、そちらも参考にしてほしいのだ✨
5149

5250
Raspberry Pi、Linuxへの導入に関しても[Zennの記事](https://zenn.dev/ledmirage/articles/aa64356242aefb)にしたので、そちらを参考にしてほしいのだ✨
53-
記事はZundaGPT2のものだけど、導入方法はほぼ同じなのだ。
5451

5552
<div class="page" />
5653

@@ -99,8 +96,9 @@ Raspberry Pi、Linuxへの導入に関しても[Zennの記事](https://zenn.dev/
9996

10097
</details>
10198

102-
<details><summary>Anthropic Claude(2025/10/19現在)</summary>
99+
<details><summary>Anthropic Claude(2025/11/28現在)</summary>
103100

101+
- Claude Opus 4.5 (モデル名:claude-opus-4-5)
104102
- Claude Opus 4.1 (モデル名:claude-opus-4-1)
105103
- Claude Opus 4 (モデル名:claude-opus-4-0)
106104
- Claude Opus 3 (モデル名:claude-3-opus-latest)
@@ -210,7 +208,7 @@ Windowsの場合は、Windowsの検索窓で「環境変数を編集」で検索
210208

211209
以下のリンクから ZundaGPT2.ZIP をダウンロードして、作成したフォルダに展開するのだ。
212210

213-
https://github.com/led-mirage/ZundaGPT2/releases/tag/v1.36.1
211+
https://github.com/led-mirage/ZundaGPT2/releases/tag/v1.37.0
214212

215213
#### 3. 実行
216214

@@ -358,11 +356,11 @@ CSSを知らない人はなんのことかわからないかもしれないけ
358356

359357
VirusTotalでのチェック結果はこちらなのだ。
360358

361-
- Windows版: [70個中2個のアンチウィルスエンジンで検出 :2025/11/24 v1.36.1](https://www.virustotal.com/gui/file/8e8b1856fac2aebb6080c012eb722ad5b840e418c60fbd70d4b745dd6be3e347/detection)
362-
- Raspberry Pi版: [60個中0個のアンチウィルスエンジンで検出 :2025/11/24 v1.36.1](https://www.virustotal.com/gui/file/3e2a6a97fc778e09778e48367e5f435ddb85dc310acf05ce88f20114ac1eba8e?nocache=1)
363-
- Linux版: [61個中0個のアンチウィルスエンジンで検出 :2025/11/24 v1.36.1](https://www.virustotal.com/gui/file/a782aebdfb6a1dbcb9a6be600fd5cf7fc9a95325faa4ccc397c7bcbfbb95bdbc/detection)
359+
- Windows版: [72個中2個のアンチウィルスエンジンで検出 :2025/11/29 v1.37.0](https://www.virustotal.com/gui/file/e55a2acfce4000515d04a079abe80517640cd3c624a933f0b85d0c1e0be6e0c5/detection)
360+
- Raspberry Pi版: [60個中0個のアンチウィルスエンジンで検出 :2025/11/29 v1.37.0](https://www.virustotal.com/gui/file/74cd59e946fbf2081356a6d337d0233cf7f3e0e79c3f4687f347814c8c1127e9/detection)
361+
- Linux版: [63個中0個のアンチウィルスエンジンで検出 :2025/11/29 v1.37.0](https://www.virustotal.com/gui/file/7792c4572402e154ff4bb7065936a02b52e63270529dc0c8c8f0c454e2ae11f1/detection)
364362

365-
<img src="doc/images/virustotal_1.36.1.png" width="600">
363+
<img src="doc/images/virustotal_1.37.0.png" width="600">
366364

367365
### ⚡ ご利用について
368366

@@ -389,17 +387,17 @@ VirusTotalでのチェック結果はこちらなのだ。
389387
ホームページ: https://github.com/r0x0r/pywebview
390388
ライセンス:BSD-3-Clause license
391389

392-
### 🔖 openai 2.5.0
390+
### 🔖 openai 2.8.1
393391

394392
ホームページ: https://github.com/openai/openai-python
395393
ライセンス:Apache License 2.0
396394

397-
### 🔖 google-genai 1.45.0
395+
### 🔖 google-genai 1.52.0
398396

399397
ホームページ: https://github.com/googleapis/python-genai
400398
ライセンス:Apache License 2.0
401399

402-
### 🔖 anthropic 0.71.0
400+
### 🔖 anthropic 0.75.0
403401

404402
ホームページ: https://github.com/anthropics/anthropic-sdk-python
405403
ライセンス:MIT license
@@ -498,6 +496,14 @@ VirusTotalでのチェック結果はこちらなのだ。
498496

499497
## 💎 バージョン履歴
500498

499+
### 1.37.0 (2025/11/29)
500+
501+
- フルスクリーンモードに対応
502+
- Welcome画面にキャラアイコンを表示するかどうかの設定を追加
503+
- openai ライブラリを 2.8.1 に更新
504+
- google-genai ライブラリを 1.52.0 に更新
505+
- anthropic ライブラリを 0.75.0 に更新
506+
501507
### 1.36.1 (2025/11/24)
502508

503509
- Fix: コードブロックの変換処理の修正漏れに対応

app/api/api_router.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ def get_app_config_js(self):
3131
def copytext_to_clipboard(self, text):
3232
return self.app_service.copytext_to_clipboard(text)
3333

34+
# フルスクリーン状態取得
35+
def is_fullscreen(self):
36+
return self.app_service.is_fullscreen()
37+
38+
# フルスクリーン切替
39+
def toggle_fullscreen(self):
40+
return self.app_service.toggle_fullscreen()
41+
3442
# --------------------------------------------------------------------------
3543
# メイン画面のサービス
3644
# --------------------------------------------------------------------------

app/app_window.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def __init__(self, app_config: AppConfig):
2626
self._resize_timer = None
2727
self._is_minimized = False
2828
self._is_maximized = False
29+
self._is_fullscreen = False
2930

3031
def set_raw_window(self, window: webview.Window):
3132
self._window = window
@@ -37,6 +38,14 @@ def set_js_caller(self, js_caller: "JSCaller"):
3738
def set_window_title(self, title: str):
3839
self._window.set_title(title)
3940

41+
def is_fullscreen(self):
42+
return self._is_fullscreen
43+
44+
def toggle_fullscreen(self):
45+
self._is_fullscreen = not self._is_fullscreen
46+
self._window.toggle_fullscreen()
47+
return self._is_fullscreen
48+
4049
def evaluate_js(self, js: str):
4150
return self._window.evaluate_js(js)
4251

@@ -89,7 +98,7 @@ def on_restored(self):
8998
self._is_minimized = self._is_maximized = False
9099

91100
def on_resized(self, width: int, height: int):
92-
if self._is_minimized or self._is_maximized:
101+
if self._is_minimized or self._is_maximized or self._is_fullscreen:
93102
return
94103

95104
# 既存タイマーをキャンセル

app/config/app_settings.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from config.app_config import AppConfig
1616

1717
class Settings:
18-
FILE_VER = 11
18+
FILE_VER = 12
1919
FOLDER_NAME = "settings"
2020

2121
def __init__(self, settings_filename=None):
@@ -36,6 +36,7 @@ def _init_member(self):
3636
"description": "既定値",
3737
"welcome_title": "Welcome",
3838
"welcome_message": "なんでも聞いてほしいのだ!",
39+
"welcome_icon_visible": True,
3940
"group": "Default"
4041
}
4142
self.user = {

app/const.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77
# ライセンスの詳細については、このプロジェクトのLICENSEファイルを参照してください。
88

99
APP_NAME = "ZundaGPT2"
10-
APP_VERSION = "1.36.1"
10+
APP_VERSION = "1.37.0"
1111
COPYRIGHT = "© 2024-2025 led-mirage"

app/html/cross-file-search.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@
4545
<div style="height: 1em;"></div>
4646
</div>
4747
<footer><span id="copyright">Copyright</span></footer>
48+
49+
<!-- フルスクリーン時ポップアップ -->
50+
<div id="fullscreen-message"></div>
4851
</body>
4952

5053
</html>

app/html/css/style.css

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,8 @@ body {
243243
.chat-message {
244244
margin-bottom: 0.25rem;
245245
padding-bottom: 0.25rem;
246+
max-width: 950px;
247+
margin: 0 auto;
246248
}
247249
.speaker-name {
248250
font-size: 1rem;
@@ -255,7 +257,7 @@ body {
255257
}
256258
.message-text {
257259
margin-top: 0.25rem;
258-
padding: 0.5rem;
260+
padding: 0.5rem 1.0rem;
259261
line-height: 1.75rem;
260262
font-size: 1rem;
261263
overflow-wrap: break-word;
@@ -306,15 +308,17 @@ body {
306308
width: 100%;
307309
display: flex;
308310
padding: 10px;
309-
margin-bottom: 10px;
310311
background-color: var(--chat-input-bgcolor);
311312
box-sizing: border-box; /* パディングを含めた幅を100%に */
313+
max-width: 1000px;
314+
margin: 0 auto 10px auto;
315+
border-radius: 8px;
312316
}
313317
.chat-input textarea {
314318
font-size: inherit;
315319
font-family: inherit;
316320
flex: 1;
317-
padding: 1rem;
321+
padding: 1rem 1.5rem;
318322
margin-right: 0.5rem;
319323
border: var(--chat-input-textarea-border);
320324
border-radius: var(--chat-input-textarea-border-radius);
@@ -615,3 +619,19 @@ pre {
615619
text-decoration: none;
616620
cursor: pointer;
617621
}
622+
623+
#fullscreen-message {
624+
display: block;
625+
opacity: 0;
626+
transition: opacity 1s;
627+
position: fixed;
628+
top: 60px;
629+
left: 50%;
630+
transform: translateX(-50%);
631+
background-color: rgba(0, 0, 0, 0.8);
632+
color: white;
633+
padding: 10px 20px;
634+
border-radius: 5px;
635+
font-size: 16px;
636+
z-index: 1000;
637+
}

app/html/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@
106106
</div>
107107
</div>
108108
</div>
109+
<!-- フルスクリーン時ポップアップ -->
110+
<div id="fullscreen-message"></div>
109111
</body>
110112

111113
</html>

0 commit comments

Comments
 (0)