AI Dictionary — KOReader向け強化辞書プラグイン
概要
AI Dictionaryは、KOReader向けに作られた「スーパー充実型」辞書/解説プラグインです。従来の辞書が持つ「複数の曖昧な定義を並べるだけ」「文脈を無視した訳語や例示が多い」といった問題を解決する目的で設計されており、選択した語句に対してAIを用いた分かりやすい説明や例文、必要に応じた翻訳を提示します。Luaで記述されたプラグイン本体はKOReaderのプラグイン機構に組み込める形式(.koplugin)で配布され、日々の読書や語彙学習をより能率的にすることを目指しています。
リポジトリの統計情報
- スター数: 17
- フォーク数: 0
- ウォッチャー数: 17
- コミット数: 9
- ファイル数: 6
- メインの言語: Lua
主な特徴
- 文脈を考慮した説明:選択した語句を文脈に沿って解説することで、辞書だけでは分かりにくい用法を補足。
- AIによる例文生成:適切な例文や使用上の注意を自動生成して提示。
- KOReader統合:.koplugin形式でKOReaderに組み込み可能なプラグイン構成。
- 軽量で日常向け:読みながら手軽に利用できるよう設計されている点を重視。
技術的なポイント
本プロジェクトはKOReaderのプラグイン機構に合わせてLuaで実装されており、プラグインフォルダ(AI_Dictionary.koplugin)に収められています。LuaはKOReader上で動作するスクリプト言語として互換性が高く、UI操作や選択テキストの取得、外部APIとの通信(HTTPクライアントを使ったリクエスト送信)といった処理を比較的簡潔に記述できます。
AIを用いた応答生成部分は外部のAIサービス(API)へリクエストを送り、受け取ったJSONレスポンスをパースしてUIに表示するフローが想定されます。このため、非同期的なHTTP通信やタイムアウト、APIキー管理、レスポンスのキャッシュ機構などが実装上の重要点になります。特にモバイル/電子書籍リーダー環境では接続が不安定になりやすく、リトライやローカルキャッシュ(頻出語の結果保存)、およびユーザーがオフラインでも最低限の動作を得られるフォールバック設計が重要です。
プラグインはKOReaderの既存辞書表示UIにフックして動作するため、UI設計もポイントです。長文のAI応答をそのまま出すと読書体験を損なうため、要約表示、展開ボタン、翻訳切替などのインタラクションを用意すると使い勝手が向上します。また、プライバシー面の配慮が不可欠で、送信されるテキスト(選択語句と周辺文)についてユーザーに明示し、APIキーの扱いやログ保存の設定を任意にする設計が望まれます。
開発面ではLuaのエコシステムにあるJSONライブラリやHTTPクライアント、KOReader固有のAPI群(設定保存、メニュー登録、ウィジェット生成)を組み合わせることになります。将来的には複数のAIプロバイダ対応、プロンプトのカスタマイズ、ローカルモデル(エッジ推論)との連携など拡張が考えられますが、まずは安定したAPI通信とユーザーが直感的に使える表示・操作性の実装が核となります。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitattributes: file
- .gitignore: file
- AI_Dictionary.koplugin: dir
- LICENSE: file
- README.md: file
…他 1 ファイル
※ AI_Dictionary.kopluginディレクトリの中にプラグイン本体のLuaスクリプトやリソースが格納されている想定です。
まとめ
KOReaderの辞書体験をAIで拡張する実用的なプラグインで、読書中の理解を効率化します。
リポジトリ情報:
- 名前: ai-dictionary-koreader
- 説明: Supercharged dictionary plugin for KOReader
- スター数: 17
- 言語: Lua
- URL: https://github.com/SahandMalaei/ai-dictionary-koreader
- オーナー: SahandMalaei
- アバター: https://avatars.githubusercontent.com/u/13190207?v=4
READMEの抜粋:
AI Dictionary: Supercharged Dictionary/Explainer for KOReader
AI Dictionary is a dictionary/explanation plugin for KOReader that can have a transformative effect on your reading and learning. I built it out of personal frustration with the dictionary solutions that are currently available, and the resulting plugin is something I use everyday with my reading. As I’m sure you are aware, the limitation of traditional dictionaries include:
- They give you multiple definitions of the same word an…