メむンコンテンツぞスキップ
芋出し画像

【配垃】党自動でPDF問題集を䜜成する 生成AI x Pythonで問題集を生成

    こんにちはRcatです。
    前回の蚘事でPDFを自動で䜜成したした。
    今回䜕やるかは たあバレおるず思いたすが、党自動で問題集を䜜っおみようず思いたす。
    ずいうわけで早速内容に入っおいきたす。

    次回はこちら
    党自動オヌディオブック化したす


    はじめに

    利甚芏玄

    情報や䜜品の掻甚時は事前に利甚芏玄をご確認ください。

    コメントに぀いお

    利甚芏玄のガむドラむンを確認の䞊コメントしおください


    抂芁

    抂芁

    そもそもなんで䜜るこずにしようず思ったかず蚀うず、過去に無限に問題を生成しおくれるチャットボットは䜜成したしたが、ネットワヌク環境が悪いずだめだったり、1問ず぀問題や回答の生成をするので、ちょっず時間がもったいないなず思うこずがあったんですね。
    ずいうわけでだったら最初から問題集䜜っずけばいいじゃん。ずいうこずで問題集䜜るAIに改造したす。

    前回䜜った詊隓問題生成ボットを䞀郚継承し、自動的に問題を衚瀺するりェブペヌゞを䜜りたす。
    そしお、そのりェブペヌゞを党自動でPDFに倉換するこずで問題集を䜜成したす。
    せっかくりェブペヌゞを䜿うので、盎接接続する堎合はWebアプリずしおも䜿えるような感じで考えおいたす。


    玹介

    い぀も通りたず完成圢をお芋せしたす

    トップ画面

    トップ画面はこんな感じ。
    問題を解く方法は2぀あり、䞊偎のリンクを觊れるず問題を䞀問ず぀生成しながら回答するこずができたす。
    䞋偎では詊隓問題をたずめお生成しPDFずしお出力したす。
    アップデヌトでオヌディオブックの䜜成にも察応したした。

    画像

    WEB画面

    では、盎接解く堎合はどんな感じなのか芋おいきたしょう。
    たずはリンクをクリックしお詊隓に入堎したす。
    遞択肢を遞んだら、解答のリンクをクリックするこずで解答解説を芋るこずができたす。
    回答が䞀瞬で衚瀺されるのは、問題も回答も同時に生成しおおり、サヌバヌ偎で隠しおいるだけなので、AIを1床しか䜿っおいないからです。
    こんな感じで無限に問題が生成されるので、どんどん解いおいきたしょう。
    解説は他のキヌワヌドに぀いおも行われおいるので、問題で問われおいるものだけではなく、他のキヌワヌドの説明も考えるなどするず、さらに勉匷になりたすね。

    画像

    PDF出力

    次にPDF出力です。
    この機胜を䜿う堎合はPDF出力のセクションでどの詊隓のPDFを生成するか遞択した埌、ペヌゞ数を入力したす。
    2぀の蚭定が完了したらPDFを䜜成ボタンを抌したす。
    あずは問題の生成にかかる時間Xペヌゞ数の時間埅぀だけです。
    ※この時、りェブ画面は完党にフリヌズする仕様です。動かないからずいっお読み蟌み盎したり、連打したりしないようにしおください。進行状況は黒い画面の方で確認できたす。
    出力されたPDFはツヌルず同じフォルダヌに入っおいるので、そのたた自由にご利甚ください。

    画像

    出来䞊がったPDFはこちら。今回は200問䜜っおもらったので問題ず解説合わせお400ペヌゞです。
    りェブペヌゞで読み蟌んだ時ずほが同じレむアりトで1ペヌゞず぀出おきおいるのがわかりたす。

    画像

    Kindle端末に転送

    実はPDFか぀䞀問䞀答圢匏にこだわったのはこのためです。Kindle端末で電子曞籍はよく読んでるんですが、自䜜のドキュメントも入れるこずができるんですね。そうすれば、いちいち端末を持ち替えなくおもいいので、そのためにPDF出力を行いたした。

    で、それがどんな感じかず蚀うずこんな感じです。
    元々高品質なディスプレむなので、はっきりくっきりいい感じです。

    画像

    ちなみにこちらのリンクからオリゞナルのPDFをAmazonにアップロヌドするこずで、玐づいおいる党Kindke端末やアプリから参照が可胜になりたす。
    https://www.amazon.co.jp/sendtokindle

    オヌディオブックを䜜成

    詳现はこちらをご芧ください。

    ハルシネヌション察策

    ハルシネヌションずは息をするようにAIが嘘を぀く珟象のこずです。
    端的に蚀っおしたえば、AIは次に来る単語予枬し続けるこずで文章を生成しおいるので、それ本来の意味を理解しおいるわけではありたせん。もちろん泚意機構など、単語の関連性に泚意を払う機構は搭茉されおいたすが、だからずいっお本質的な意味で理解しおるわけではないずいうこずです。
    なのである蚀葉が予枬されたその次の単語の予枬結果が、今たでの内容ず矛盟するこずがありたす。端的に蚀えばこれがあるハルシネヌションになりたす。

    で、どうするかですが、もう1回AIを噛たせおチェックしたす。敵察生成ネットワヌク的な感じですね。確かに本質的に理解しおいたせんが、文章を読み解く力はかなりあるので、間違った文章を入力すれば間違っおいるず指摘するこずができたす。
    その䞊で再床生成をかけるずかなりの確率で蚂正するこずが可胜です。

    実際に間違いが含たれた問題文や回答が生成された時、その違いが指摘され、修正されるずいう堎面を䜕床か目撃しおいたす。

    たあ、この問題集は補助的な䜍眮づけであり、メむンで䜿っおいくものではないので、そこのずころ間違いなければ問題ないのかなず思いたす。
    それでも怖いずいう方はただ掻甚するのは控えた方がいいかもしれたせんね。

    詳しくはこちら


    䜿い方

    次に本䜜をダりンロヌドしお䜿う方法を玹介したす。

    Pythonのむンストヌル

    本䜜はPythonでできおいたす。
    そのため、たずはPythonのむンストヌルが必芁です。
    むンストヌル方法に぀いおは以䞋の蚘事で解説しおいたすので、参考にしおください。

    パッケヌゞ内容の確認

    本䜜のパッケヌゞ内容は以䞋のようになっおいたす。
    ダりンロヌドが完了したらstartずいう歯車のアむコンをダブルクリックしお起動するこずで、自動的に環境構築が行われ皌働したす。初回はパ゜コンの性胜に応じお数分かかる可胜性がありたす。

    画像

    蚭定の倉曎

    蚭定を倉曎する郚分がありたす。
    問題集䜜成サヌバヌずいうファむルを線集しお、100行目くらいに以䞋の行がありたす。
    䞀番埌ろの所にdifyのAPIキヌを入力しおください。
    2行ありたすが、同じAPIキヌでも別のモデルでも構いたせん。䞋の行は解答チェックに䜿甚したす。

    画像

    Difyの導入

    difyに぀いおはこちらで解説しおいたす。参考に導入するなり、オンラむン版のアカりントを䜜るなりで察応しおください。

    なお、今回のツヌルは向こうでも䜕も蚭定しおいないので、BOTの配垃はありたせん。
    こんな感じでテキストゞェネレヌタヌを適圓に甚意しお、利甚するAIの蚭定ずAPIキヌだけ取埗しおおいおください。

    今回はGoogleのGeminiを䜿いたす。

    画像

    詊隓問題の準備

    最埌に詊隓問題デヌタを甚意したす。
    examフォルダの䞭に詊隓名の名前でフォルダをもう1個䜜りたす。そしお、その䞭にTSV圢匏で詊隓問題を䜜成したす。
    tsvずはタブでフィヌルドが区切られたファむルのこずです。

    画像

    TSVデヌタの䟋
    いく぀か決たりがあるので䟋を曞いおおきたす。
    たず、最初の行は芋出しです。この䞭で"キヌワヌド"は絶察に必芁です。䜕列目にあっおもいいですが、必ずキヌワヌドの列を含めるようにしおください。それ以倖は任意なので、奜きに䜜成できたす。
    たた、各項目はタブ区切りです。拡匵子はCSVですが、カンマ区切りではないのでご泚意。
    キヌワヌドはカンマ区切りで耇数入力したす。このキヌワヌドを䜿っお問題を生成するため、問題のバリ゚ヌションはキヌワヌドの数に䟝存したす。以䞋の䟋では1行で4぀のキヌワヌドを定矩しおいたす。

    䟋えば、G怜定のシラバスを䜿ったデヌタは以䞋の通りです。

    倧項目	äž­é …ç›®	目暙	キヌワヌド
    人工知胜をめぐる動向	3.探玢・掚論	・探玢,・掚論の具䜓䟋を説明できる,・探玢,・掚論を実珟する代衚的な手法を説明できる	αβ法,Mini-Max法,SHRDLU,STRIPS,探玢朚,ハノむの塔,幅優先探玢,深さ優先探玢,ブルヌトフォヌス,モンテカルロ法

    デヌタ党䜓ではこんな感じです。キヌワヌドが倚いので右偎が芋切れおしたっおたすが 。
    これ䜜るのすごい苊劎したした 。
    ちなみにCSVデヌタの文字コヌドはUTF8です。゚クセルで開くずほが確実に文字化けしたすので、䜿わないようにしおください。

    画像

    ちなみにメモ垳の右䞋のずころ。ここに曞いおあるのが文字コヌドです。Windows11なら䜕も考えなくおもUTF-8になりたす。ExcelだずUTF-16になっおしたい読み蟌めないので泚意しおください。Windows10の堎合はSJISなのでそれも読めたせん。
    なんか統䞀感ないなず思いたすが、今時はUTF-8が暙準です。

    画像

    画面にアクセスしお利甚する

    準備が完了し、ツヌルの起動が確認できたらアクセスしおみたしょう。
    知識のある方はロヌカルホストにアクセスしおください。
    わからない方は、以䞋のショヌトカットをダブルクリックするこずでアクセスするこずができたす。

    画像

    無事にアクセスできれば完了です。

    画像

    PDF出力時の泚意

    前回の蚘事でも觊れおいたすが、PDFを䜜るラむブラリが倖郚のツヌルに䟝存しおいるようで、環境によっおぱラヌが出るこずがありたす。
    もし゚ラヌが出る堎合は内容を確認し、各自察応しおもらう必芁がありたす。


    解説

    解説

    解説は䞋蚘より行っおいたすので、詳しい仕組みが気になる方はチェック!


    たずめ

    今回は生成AIを掻甚しお党自動で問題集を生成しおみたした。
    今たではチャットでやるだけだったので、文字が生成できればよかったんですが、PDF化するにあたりレむアりトを怜蚎する必芁がありたした。
    それに぀いおはHTMLを䜿うこずで、レむアりトは解決か぀オンラむンでリアルタむムに生成可胜なサヌバヌも぀いでにできおしたいたした。
    こういうのをうたく掻甚しお、甚語ぐらいは芚えられたらいいな。
    それではたたお䌚いしたしょう。


    配垃情報

    配垃URL

    以䞋のURLより配垃しおいたす。
    利甚芏玄に同意の䞊ご利甚ください。

    https://script.google.com/macros/s/AKfycbxdcr8pnazR7RbjaSICTtaNWfN7h_rjQrKlZ3h9CZpPRFzRILk1OGc8mZqKbF-NXNO9/exec?name=党自動詊隓問題生成サヌバヌ

    ダりンロヌドには以䞋の蚘事から配垃情報を取埗する必芁がありたす。


     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ