<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Migdal: なおおん</title>
    <description>The latest articles on Migdal by なおおん (@naoon).</description>
    <link>https://migdal.jp/naoon</link>
    <image>
      <url>https://migdal.jp/uploads/user/profile_image/627/10bde747-7375-4792-a63c-9ea30f730fb6.png</url>
      <title>Migdal: なおおん</title>
      <link>https://migdal.jp/naoon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://migdal.jp/feed/naoon"/>
    <language>en</language>
    <item>
      <title>Notion と ChatGPT を使って、多言語対応版の単語帳作ってみた。</title>
      <dc:creator>なおおん</dc:creator>
      <pubDate>Fri, 20 Dec 2024 09:42:46 +0000</pubDate>
      <link>https://migdal.jp/naoon/notion-%E3%81%A8-chatgpt-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E5%A4%9A%E8%A8%80%E8%AA%9E%E5%AF%BE%E5%BF%9C%E7%89%88%E3%81%AE%E5%8D%98%E8%AA%9E%E5%B8%B3%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F-p7l</link>
      <guid>https://migdal.jp/naoon/notion-%E3%81%A8-chatgpt-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E5%A4%9A%E8%A8%80%E8%AA%9E%E5%AF%BE%E5%BF%9C%E7%89%88%E3%81%AE%E5%8D%98%E8%AA%9E%E5%B8%B3%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F-p7l</guid>
      <description>&lt;p&gt;みなさん、はじめまして！&lt;br&gt;
VRChat の影響で、本格的にエスペラントをほんの少しだけ話すようになりました。&lt;br&gt;
「なおおん」と申します。よろしくお願いします！ &lt;br&gt;
もし、VRChat をやっている方がいらっしゃいましたら、以下のリンクでフレンド申請してくださると嬉しいです。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vrchat.com/home/user/usr_014f26ac-cbd6-404f-9794-7417c3aba2a9"&gt;なおおん - VRChat&lt;/a&gt;&lt;/p&gt;

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

&lt;h1&gt;
  
  
  Kion oni entute kreis?
&lt;/h1&gt;

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

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

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

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

&lt;p&gt;最新版または詳細のコードは以下のリポジトリを参照してください。&lt;br&gt;
&lt;a href="https://github.com/naoon3/notion-words-translate"&gt;naoon3/notion-words-translate&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Kiel oni uzas ĝin?
&lt;/h1&gt;

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

&lt;ul&gt;
&lt;li&gt;ChatGPT API&lt;/li&gt;
&lt;li&gt;DeepL API&lt;/li&gt;
&lt;li&gt;Notion アカウント&lt;/li&gt;
&lt;li&gt;Google アカウント&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h2&gt;
  
  
  Notion
&lt;/h2&gt;

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

&lt;p&gt;&lt;a href="https://migdal.jp/uploads/articles/b5oylo9aebb09pg0qw07.png" class="article-body-image-wrapper"&gt;&lt;img src="https://migdal.jp/uploads/articles/b5oylo9aebb09pg0qw07.png" alt="Image description" width="1744" height="1057"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;適当なタイトルをつけた後に、本文で&lt;code&gt;/database&lt;/code&gt;でデータベース：フルページ作成してください。&lt;br&gt;
&lt;a href="https://migdal.jp/uploads/articles/aos636zc599ehpwb394c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://migdal.jp/uploads/articles/aos636zc599ehpwb394c.png" alt="Image description" width="1731" height="1028"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://migdal.jp/uploads/articles/nnxy3xb791sj3sjsqo8a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://migdal.jp/uploads/articles/nnxy3xb791sj3sjsqo8a.png" alt="Image description" width="2260" height="910"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://migdal.jp/uploads/articles/pern48d3sys1o8wfff8u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://migdal.jp/uploads/articles/pern48d3sys1o8wfff8u.png" alt="Image description" width="2336" height="890"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;この画面になったら、発音、意味、例文、語源という列を作成してください。&lt;br&gt;
&lt;a href="https://migdal.jp/uploads/articles/ts6wcoy4hcw8asypznv3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://migdal.jp/uploads/articles/ts6wcoy4hcw8asypznv3.png" alt="Image description" width="1555" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;次に、Notionのインテグレーションを作成します。&lt;br&gt;
右上のハンバーガーメニュー → Notionの設定欄から「自分のコネクト」を選択する。 → インテグレーションを作成または管理する を選択&lt;br&gt;
&lt;a href="https://migdal.jp/uploads/articles/m4oifex9vxy3z6fbsliz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://migdal.jp/uploads/articles/m4oifex9vxy3z6fbsliz.png" alt="Image description" width="1253" height="460"&gt;&lt;/a&gt;&lt;br&gt;
このような画面になると思います。こちらから、「新しいインテグレーション」を選択します。&lt;/p&gt;

&lt;p&gt;インテグレーションの名前（何でもいいです。今回なら、translateとかがいいと思います。筆者は作成済みなので、testととりあえずしときます。）&lt;br&gt;
&lt;a href="https://migdal.jp/uploads/articles/vc9els48eogkves09b1m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://migdal.jp/uploads/articles/vc9els48eogkves09b1m.png" alt="Image description" width="1201" height="837"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;さきほど作成した、ページに戻って、右上の3点リーダー → 接続 → さきほどのインテグレーションの名前を選択してください。なんか聞かれますが、「はい」と選択してください。&lt;br&gt;
&lt;a href="https://migdal.jp/uploads/articles/io89r65uu24n9z2c2tz2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://migdal.jp/uploads/articles/io89r65uu24n9z2c2tz2.png" alt="Image description" width="1657" height="783"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;一旦、Notionの下準備はできました。&lt;/p&gt;

&lt;h2&gt;
  
  
  ChatGPT
&lt;/h2&gt;

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

&lt;h2&gt;
  
  
  DeepL
&lt;/h2&gt;

&lt;p&gt;ChatGPTと同様に、 &lt;a href="https://zenn.dev/eito_blog/articles/2e353b96a42494"&gt;【DeepL API】DeepL APIを取得する手順&lt;/a&gt; を参考にAPI key を取得してください。計画言語やマイナー言語の場合は、DeepLの作業は不要です。(というより、DeepLが対応していない；；)&lt;/p&gt;

&lt;h2&gt;
  
  
  Google Apps Script
&lt;/h2&gt;

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

&lt;p&gt;おそらく、これから行う操作でこのような警告メッセージがでますが、以下の記事を参考にして、認証してください。&lt;br&gt;
&lt;a href="https://best-cloud.jp/google-apps-script-authentication/"&gt;GAS実行時に「このアプリはGoogleで確認されていません」と出る原因と対処法 - bestcloud&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  DeepLに対応している言語の場合
&lt;/h3&gt;

&lt;p&gt;まずは、&lt;a href="https://drive.google.com"&gt;https://drive.google.com&lt;/a&gt; にアクセスしてください。&lt;br&gt;
そして、新規ボタンを押して、Google スプレッドシートを押してください。&lt;/p&gt;

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

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

&lt;p&gt;&lt;a href="https://migdal.jp/uploads/articles/ppl7g8clfy4fdqirxzz7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://migdal.jp/uploads/articles/ppl7g8clfy4fdqirxzz7.png" alt="Image description" width="839" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;プロパティ名&lt;/th&gt;
&lt;th&gt;値&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DEEPL_API_KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;NOTION_API_KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ntn_abcdefg…&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;OPENAI_API_KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

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

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

&lt;p&gt;最後に、コードの関数を実行する頻度を決定します。左のタイマーボタンみたいなアイコンである「トリガー」を選択してください。ここで、「トリガーを追加」を押してください。&lt;br&gt;
&lt;a href="https://migdal.jp/uploads/articles/w1q707cwufdtsi1s1h5a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://migdal.jp/uploads/articles/w1q707cwufdtsi1s1h5a.png" alt="Image description" width="674" height="762"&gt;&lt;/a&gt;&lt;br&gt;
画像のように変更してください。時間の間隔のところで、実行する(≒翻訳する)間隔を決定できます。&lt;/p&gt;

&lt;h3&gt;
  
  
  DeepLに対応していない言語の場合
&lt;/h3&gt;

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

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;プロパティ名&lt;/th&gt;
&lt;th&gt;値&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DATABASE_ID&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;xxxxxxxxx&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;NOTION_API_KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ntn_abcdefg…&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;OPENAI_API_KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;p&gt;後の操作は変わりません。&lt;/p&gt;

&lt;h1&gt;
  
  
  Resumo
&lt;/h1&gt;

&lt;p&gt;いかがでしたでしょうか？&lt;br&gt;
最終的には、次のXのポストのような画面になると思います。&lt;a href="https://x.com/naoon_x/status/1863106262839509034"&gt;https://x.com/naoon_x/status/1863106262839509034&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;それでは、良い言語学習ライフを！&lt;br&gt;
Dankon, ke vi legis ĉi tiun artikolon. ☆🟩&lt;/p&gt;

</description>
      <category>翻訳</category>
      <category>chatgpt</category>
      <category>notion</category>
    </item>
  </channel>
</rss>
