🔌

ElectronとOpenAI APIとNotionで用語を覚えるためのアプリを作った

2024/11/20に公開

経緯

11月から新しい職場で働き始めて、新しく耳にする言葉がたくさん出てきました。
私の場合はNotionのデータベースに覚えたい言葉を整理しているのですが、普段の会話の中で突然出てきた言葉に対し、「メモ → 意味を調査 → Notionへ登録」という操作は時間がかかるので、効率化したいと思いました。
そこでElectronでシステムトレイに常在するアプリケーションを作ることにしました。

Electronとは

Electronとはデスクトップアプリケーションを作成するためのフレームワークで、JavaScript、HTML、CSSを使用してクロスプラットフォーム(Windows、MacOS、Linux)で動作するアプリケーションを構築できます。

構成イメージ

今回の記事のソースコード

https://github.com/ogreverse/ogura-an

ちなみにアプリ名は「Ogura OpenAI and Notion」略して「Ogura AN」です。

動作環境

MacBook Pro M3
Node.js 22.8.0

事前準備

OpenAIのAPIキーの取得

https://openai.com/index/openai-api/ で登録し、APIキーを発行します。
※ 従量課金なので、念の為Budget Limitは設定しておくのがおすすめです。

Notion関連

データベースの作成

下記のようなテーブルを作成します。

Word Meaning Usage Status Tags CreatedAt
カラムの意味 用語 意味 使い方 習得ステータス(慣れてない/慣れた/習得済み) タグ 作成日
カラムタイプ title rech_text rech_text status multi_select date

インテグレーションシークレットキーの取得

https://www.notion.so/profile/integrations でインテグレーションを作成します。
作成後にシークレットキーが発行されます。

保存先のデータベースのコネクト

データベースのページの設定から、作成したインテグレーションにコネクトします。

保存先のデータベースのIDを取得

データベースのURLをコピーし、以下のXXXの部分の文字列がIDになります。
https://www.notion.so/XXXXXXXXX

アプリケーションの準備

セットアップ

ソースコードをcloneし、下記のコマンドを実行します。

$ sh setup.sh

.envファイルに取得したキーを設定します。

OPENAI_API_KEY={OpenAIのAPIキー}
NOTION_SECRET_KEY={Notionのインテグレーションのシークレットキー}
NOTION_DATABASE_ID={対象のデータベースのID}

使い方

アプリケーションのビルドと起動

ソースコードのrootディレクトリで以下のコマンドを実行します。

$ npm run build && npm run start

Ogura Anが起動し、システムトレイにアイコンが表示されます。
一番左に「餡」と表示されている、茶色のアイコンです。

アプリを使う

「ワード」に調べたい言葉を入れ、回答の精度を上げるためにその言葉が使われている文章などを「文脈」に入れます。
「文脈」は入力しなくてもOKです。

「調べる」を押すと結果のJSONが出力されます。

「登録」を押すと、Notionのデータベースに登録されます。

将来の展望

  • 自動起動
  • UIのスタイル調整
  • OpenAIから取得した結果を調整できるようにする。
  • やり直しボタンの実装。
  • データベースからデータを取得して、習得度のテストができるようにする。

ご覧になってる方も、もし良い案があればください。餡だけに。

参考資料

最新版で学ぶElectron入門 ウェブ技術でPCアプリを開発しよう
Notion Developers Database properties

Discussion