Migdal

なおおん
なおおん

Posted on

Notion と ChatGPT を使って、多言語対応版の単語帳作ってみた。

みなさん、はじめまして!
VRChat の影響で、本格的にエスペラントをほんの少しだけ話すようになりました。
「なおおん」と申します。よろしくお願いします!
もし、VRChat をやっている方がいらっしゃいましたら、以下のリンクでフレンド申請してくださると嬉しいです。

なおおん - VRChat

VRChat では、色々な言語のイベントがありますので、ぜひやってみてください👀(VRが無くても、プレイできます!)

Kion oni entute kreis?

さて今回はおそらく、migdalっぽい記事では無いのですが、一応計画言語のエスペラントの単語帳作成ということで、こちらのプラットフォームを採用しました。

今回の狙いとしては、「楽に単語を覚える」ということを目的としています。
NotionにDeepLとChatGPTを使ってオリジナルの英語単語帳を作る という記事を参考にして、今回は作成しております。しかし、この記事だけでは、英語だけの記事となっており、中身のコードをいじれば他の自然言語に拡張できるのではないか?と考えました。また、ChatGPTだけのAPIにしたら、有名な計画言語(エスペラント、トキポナ)にも拡張できるのではないか?と思いました。
なので、今回は割とやっつけのコードになりますが、そちらの対応をやってみました。

元の記事と同じアプローチになりますが、一応以下のような使い方になります。

  1. Notion データベースに知らない単語を入力する。
  2. 数十分後に、語源、発音記号、例文、意味を ChatGPT もしくは DeepL が勝手に入力してくれる。

最新版または詳細のコードは以下のリポジトリを参照してください。
naoon3/notion-words-translate

Kiel oni uzas ĝin?

今回のプログラムで必要なものは以下となっております。

  • ChatGPT API
  • DeepL API
  • Notion アカウント
  • Google アカウント

こちらを用意してください。
ChatGPT API は有料なので、その点は注意してください。他の大規模言語モデルのAPIも使うこともできますが、少しだけコードを変更する必要が出てきます。

Notion

まずは、Notion の方を参考に作成していきたいと思います。
notionを開きましたら、左上の新規ページボタンで新規ページを作成してください。
以下のような画面になると思います。

Image description

適当なタイトルをつけた後に、本文で/databaseでデータベース:フルページ作成してください。
Image description

Image description

データベースにも適当な名前をつけてください。そして、新規テーブルを作成してください。

Image description

この画面になったら、発音、意味、例文、語源という列を作成してください。
Image description

そして、この画面にあるURLを見てください。おそらく、
https://www.notion.so/username/xxxxxxxxx?v=yyyyyyyyy の形式になっていると思います。xxxxxxxxxの部分をコピーしてください。

次に、Notionのインテグレーションを作成します。
右上のハンバーガーメニュー → Notionの設定欄から「自分のコネクト」を選択する。 → インテグレーションを作成または管理する を選択
Image description
このような画面になると思います。こちらから、「新しいインテグレーション」を選択します。

インテグレーションの名前(何でもいいです。今回なら、translateとかがいいと思います。筆者は作成済みなので、testととりあえずしときます。)
Image description

関連ワークスペースで、自分のワークスペースを選択し、種類は内部(Internal)にします。
そのまま、保存ボタンを押下し、内部インテグレーションシークレットをコピーしてください。(ntn_abcdefg…みたいな文字列です。)

さきほど作成した、ページに戻って、右上の3点リーダー → 接続 → さきほどのインテグレーションの名前を選択してください。なんか聞かれますが、「はい」と選択してください。
Image description

一旦、Notionの下準備はできました。

ChatGPT

【初心者にも簡単】 ChatGPT(OpenAI)のAPIキー取得手順を徹底解説 を参考にAPI key を取得してください。ちなみに、該当の記事では、無料のAPI Keyがあると書いてありますが、2024/12/20現在では、もうありません🥺
でも、1回のAPI呼び出しで、せいぜい0.1円くらいなので、本記事のような使い方では、すごく高額になることは無いと思います。多分…

DeepL

ChatGPTと同様に、 【DeepL API】DeepL APIを取得する手順 を参考にAPI key を取得してください。計画言語やマイナー言語の場合は、DeepLの作業は不要です。(というより、DeepLが対応していない;;)

Google Apps Script

操作途中で「このアプリはGoogleで確認されていません」と出る場合

おそらく、これから行う操作でこのような警告メッセージがでますが、以下の記事を参考にして、認証してください。
GAS実行時に「このアプリはGoogleで確認されていません」と出る原因と対処法 - bestcloud

DeepLに対応している言語の場合

まずは、https://drive.google.com にアクセスしてください。
そして、新規ボタンを押して、Google スプレッドシートを押してください。

無題のスプレッドシートから、適当な分かりやすい名前に変更した後、シート名を作成した言語の単語帳の英語名に変更してください。例えば、ロシア語なら、
Russianとしてください。複数の言語を追加した場合は、その各言語に応じてシートを追加してください。

右上の拡張機能を押下してください。そこで、Apps Scriptがあるので、こちらを選択してください。

Image description

上記のような画面にたどり着いたら、まずは左の歯車マークを押し、スクリプトプロパティに
それぞれ、以下のプロパティ名と値を設定してください。

プロパティ名
DEEPL_API_KEY
NOTION_API_KEY ntn_abcdefg…
OPENAI_API_KEY

NOTION_API_KEY はNotionのデータベースの文字列ではなく、インテグレーションシークレットです。注意してください。

次に、コード.gsを僕のリポジトリにあるmain.jsを貼り付けてください。

次に、コードの中にある、 // Notion DBのここに入力 というコメント部分をさきほどNotionの設定でコピーしたデータベースのxxxxxxxxxに変更してください。main.gsでは、英語と韓国語とロシア語と中国語になっています。必要に応じて、プロパティの削除、追加、変更を各自してください。

最後に、コードの関数を実行する頻度を決定します。左のタイマーボタンみたいなアイコンである「トリガー」を選択してください。ここで、「トリガーを追加」を押してください。
Image description
画像のように変更してください。時間の間隔のところで、実行する(≒翻訳する)間隔を決定できます。

DeepLに対応していない言語の場合

コード以外の設定は DeepLに対応している言語の場合 と同様です。コードだけは、githubにあるother.gsのコードをコピーしてください。また、コード内の定数は以下の通りです。

プロパティ名
DATABASE_ID xxxxxxxxx
NOTION_API_KEY ntn_abcdefg…
OPENAI_API_KEY

上記の表の定数を同様に、Google Apps Scriptの設定画面から追加してください。

後の操作は変わりません。

Resumo

いかがでしたでしょうか?
最終的には、次のXのポストのような画面になると思います。https://x.com/naoon_x/status/1863106262839509034

それでは、良い言語学習ライフを!
Dankon, ke vi legis ĉi tiun artikolon. ☆🟩

新しい順のコメント(0)