An open API service indexing awesome lists of open source software.

https://github.com/okamyuji/studybuddy-ai


https://github.com/okamyuji/studybuddy-ai

Last synced: 2 months ago
JSON representation

Awesome Lists containing this project

README

          

# StudyBuddy AI - パーソナル学習コンパニオン

![StudyBuddy AI](https://img.shields.io/badge/Go-1.23+-blue.svg)
![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)
![License](https://img.shields.io/badge/License-MIT-green.svg)

StudyBuddy AIは、AI技術を活用した中学生向けのパーソナル学習コンパニオンです。個人の学習パターンを分析し、最適な学習体験を提供します。

## ✨ 主な機能

### 🤖 AIチューター

- **学習指導要領準拠**: 2024年度の文部科学省の学習指導要領に完全準拠した問題を生成します
- **数学的正確性保証**: 自動計算検証により数学的に正確な問題のみを提供します
- **個人化された問題生成**: 理解度と苦手分野に基づいた問題を自動生成します
- **日本語対応**: 日本語対応のAI(Ollama + 日本語LLM)です
- **リアルタイムフィードバック**: 解答に対する詳細な説明を行い、励まします
- **オフライン対応**: AIが利用できない場合も内蔵問題で学習継続できます

### 📊 学習分析

- **進捗追跡**: 科目別の学習進捗をリアルタイムで分析します
- **弱点検出**: 間違いパターンを分析して改善点を提案します
- **学習継続記録**: ストリーク機能で学習習慣をサポートします
- **統計表示**: 総合的な学習統計とパフォーマンスを表示します

### 🔒 プライバシー保護

- **完全ローカル処理**: すべてのデータは端末内で管理しています
- **外部送信なし**: 学習データや個人情報の外部送信は行いません
- **セキュア設計**: SQLiteによるローカルデータベース管理です

## 🚀 セットアップ

### 前提条件

1. **Go 1.23以上**
2. **Ollama** (ローカルAI実行環境)

### インストール手順

#### 1. Ollamaのインストール

```bash
# macOS
brew install ollama

# Linux
curl -fsSL https://ollama.ai/install.sh | sh

# Windows
# https://ollama.ai からダウンロード
```

#### 2. 日本語対応AIモデルのダウンロード

```bash
# 推奨:軽量で高性能な日本語モデル(デフォルト)
ollama pull 7shi/ezo-gemma-2-jpn:2b-instruct-q8_0

# または大型高精度モデル
ollama pull dsasai/llama3-elyza-jp-8b:latest
```

#### 3. Ollamaサーバーの起動

```bash
ollama serve
# バックグラウンドで起動するなら以下を実行
# ollama serve &>/dev/null &
```

#### 4. StudyBuddy AIのビルドと実行

```bash
# リポジトリクローン
git clone https://github.com/okamyuji/studybuddy-ai
cd studybuddy-ai

# 依存関係のインストール
go mod tidy

# ビルド
go build -o studybuddy-ai .

# 実行
./studybuddy-ai
```

### 開発者向け情報

#### コード品質チェック

プロジェクトルートには静的解析を実行するスクリプトが含まれています。

```bash
# 実行権限を付与
chmod +x lint.sh

# コード品質チェックの実行
./lint.sh
```

このスクリプトは以下を実行します。

- `go vet`: Go標準の静的解析
- `golangci-lint`: 複数のlinterを統合したツール(staticcheckを含む)

## 🏗️ アーキテクチャ

### 技術スタック

- **言語**: Go 1.23+
- **GUI**: Fyne v2.6+ (クロスプラットフォーム)
- **AI**: Ollama (ローカルLLM)
- **データベース**: SQLite
- **フォント**: M+ 1 (日本語対応)

### モジュール構成

```text
studybuddy-ai/
├── main.go # メインエントリーポイント・アプリケーション管理
├── assets/
│ └── fonts/ # 日本語フォント(M+ 1)
├── internal/
│ ├── ai/ # AI推論エンジン・数学的正確性検証
│ ├── config/ # 設定管理
│ ├── database/ # データベース管理
│ ├── gui/ # GUI実装・学習画面
│ └── theme/ # UI テーマ・フォント管理
├── go.mod
└── README.md
```

### 数学的正確性保証システム

StudyBuddy AIは独自の数学的正確性検証システムを搭載しています。

- **AI生成時検証**: 問題作成前の計算実行要求
- **パース時検証**: 問題読み込み時の自動計算チェック
- **架空資料禁止**: 存在しない図表・文章への参照を自動検出・拒否
- **学習指導要領チェック**: 各学年の範囲外出題を防止

## 📚 対応機能

### 学習科目

- ✅ 数学(中学1〜3年範囲)- 正の数・負の数、方程式、関数、図形、確率
- ✅ 英語(基礎〜応用)- 単語、文法、読解
- ✅ 国語(読解・文法)- 漢字、文法、古典基礎
- ✅ 理科(物理・化学・生物・地学)- 実験、観察、理論
- ✅ 社会(地理・歴史・公民)- 日本史、世界史、地理、政治経済

### AI機能

- ✅ 学習指導要領準拠問題生成
- ✅ 数学的正確性自動検証
- ✅ リアルタイムフィードバック
- ✅ 弱点分析
- ✅ 学習推奨
- ✅ 日本語対話
- ✅ オフライン学習対応

### サポート機能

- ✅ グレーダブル終了処理
- ✅ 自動フォント設定
- ✅ 学習進捗保存
- ✅ 設定永続化
- ✅ エラーハンドリング

## 🆘 トラブルシューティング

### よくある問題

#### 1. Ollamaに接続できない

```bash
# Ollamaサーバーが起動しているか確認
ollama list

# ポート11434が使用されているか確認
lsof -i :11434

# Ollamaサービスの再起動
ollama serve
```

#### 2. 日本語モデルが見つからない

```bash
# インストール済みモデルの確認
ollama list

# 推奨モデルのインストール
ollama pull 7shi/ezo-gemma-2-jpn:2b-instruct-q8_0
```

#### 3. ビルドエラー

```bash
# Go Modulesのキャッシュをクリア
go clean -modcache

# 依存関係を再インストール
go mod download
go mod tidy

# 再ビルド
go build -o studybuddy-ai .
```

#### 4. 日本語フォントが表示されない

アプリケーションは自動的に日本語フォントを検索・設定しますが、表示に問題がある場合には以下を実行してください。

```bash
# フォントファイルの確認
ls assets/fonts/

# アプリケーション再起動
./studybuddy-ai
```

#### 5. アプリケーションが終了しない

正常終了はCtrl+C、ウィンドウクローズ、またはメニューから「終了」を選択してください。強制終了が必要な場合には以下を実行してください。

```bash
# プロセス確認
ps aux | grep studybuddy

# 強制終了
killall studybuddy-ai
```

### 性能最適化

#### 低スペック端末の場合

- 軽量モデルを使用: `7shi/ezo-gemma-2-jpn:2b-instruct-q8_0`
- Ollamaの設定調整(メモリ使用量削減)

#### 高性能環境の場合

- 高精度モデルを使用: `dsasai/llama3-elyza-jp-8b:latest`
- 生成パラメータの調整(温度、トークン数)

## 📜 変更履歴

### v1.0.0

- ✅ 数学的正確性保証システム導入
- ✅ 学習指導要領完全準拠
- ✅ オフライン学習機能強化
- ✅ アプリケーション終了処理改善
- ✅ デフォルトAIモデル変更(軽量化)

## 📄 ライセンス

MIT License

## 👨‍💻 開発者

okamyuji

## 🤝 コントリビューション

プルリクエストやイシューは歓迎します。

## 🎯 今後の開発予定

- [ ] Web版の提供
- [ ] より多くの学年・科目対応
- [ ] 学習計画自動生成
- [ ] 保護者向けレポート機能

---

StudyBuddy AIと一緒に楽しく学習しましょう!🎓✨