0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【個人開発】LINE BOT x GPT4 x Wolfram 学習アプリ ~ 宿題モードの追加

Last updated at Posted at 2023-05-14

こんばんは、ぽ〜さんです。

「ぽ〜さんのお勉強アプリ」をリリース後、徐々に使っていただいている方も増えております。

ありがとうございます。
まだの方はぜひこちらからお友だち登録してください。もちろん無償です。

友だち追加

これまでの機能まとめ

こちら宿題アプリで実現している機能です。

  • 問題分をOCR読み込み(Mathpixを利用)
  • 数式を含む問題分の場合には、Wolfram Alpha経由で解答を取得する
  • Wolfram Alpha経由の場合は、Promptで 問題文と解答をGPTに与え、解説を生成させる

この3点目により、GPTは苦手な数学の解答ではなく、得意な、「順序だった説明」の役割を担います。
また、Wolfram Language に翻訳する部分もGPTが担ってます。

要はGPTなので、Wolframがわからないところは、GPTが ”GPTなり” に答えてくれます。

Wolframとは

日本ではまだまだ知られてませんが、自然科学ならなんでもござれの強者です。

構造化されたデータを使って計算し答えを返す質問応答システムです。科学者であれば知らない人はいないMathematica (数式>処理システム)を開発したWolfram 社が提供しています。アメリカの多くの中高生がWolfram Alphaを自宅学習に利用しています

画面

Wolframはリッチに数式をグラフ化できたりするので、GPTでは、出来得ない画像が表示できたりします。
HTML化してLINEでは送付してます。

この生成の過程で Flex messenger の仕様に詳しくなりました。

参考画像

追加機能 - 宿題モード

今回は、GPTの生成能力をより生かして、【宿題モード】を追加してみました。
宿題モードは、「Wolfram alphaの答えがあった場合のみ」の限定モードです。

Prompt上の考慮

  • 送付された問題の”勉強させようとしている内容=二次方程式の因数分解であるなど、をGPTに把握さる
  • その上で、追加の問題を生成させる
  • 以降は解説生成まで同じプロセス
  • 宿題のおかわりが可能 
    → 永遠に問題を解き続けることが可能

Promptがまだ未熟で、ほぼ連立方程式だとほぼ係数部分を置き換えただけの問題になるので、Promptをいろいろ追加調整は必要そうです。

まとめと課題

宿題モードは、Promptの調整によって、計算ドリルを不要としてしまう可能性を感じます。

課題

GPT4をToken多めに贅沢に使っているので、とにかく反応が遅い。
120秒以上かかることも平気であります。もちろんHerokuはTime outしています。

ぽ〜さんは「Code Stranger」なので、コードの冗長部分の最適化や、非同期処理
(ただLINE messangerには公式の非同期処理はないらしい?)までいくと、技術力不足に直面します。

このあたりが今後の課題で要調査です。

#開発環境

Python
LINE messenger API
Mac
Heroku
LINE messenger API
Wolfram API
Mathpix API
Open AI 
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?