Pythonで未来を 

このブログはsynologのNAS、DS218で作成しています。synologyはソリューション志向のパッケージングをしてくれていて、DSMというWEB作成用にカスタマイズされたOSを乗せているのでとても短時間でブログを開設できました。

中央がsynologyDS218です。

DS218を使って、人工知能、ビッグデータ解析、スクレイピングなどの最先端アプリをpythonで開発できないか考えました。

目次

なぜPythonか

OSINTとは

べリングキャットの本を読んで、ネットでオープンになっている情報のみを使って、実際に起こったことを証明する(open-source-intelligence:OSINT)という画期的な活動があります。

ウクライナ戦争が始まって当局から発表される情報は政治的バイアスがかかって当然ということがあらためて明確になった気がします。もともとどんな情報でもそれを発表する主体者からのバイアスはかかります。客観的な真実が何かを知るということは簡単ではありませんが、非常に重要です。

OSINTで使われる具体的な方法は例えば、投稿されている動画から、それがどこか、何時ごろなのかを特定することで報道されている内容の真偽判定に利用できます。

動画内容が報道されていることが起きている本当の場所の状況なのか?全く別の場所の動画ではないのか?場所は同じでも全く別のタイミングで撮影された無関係な動画ではないのか?こうしたことを判定できるケースがあります。

動画に写っている道路、写っている建物、日影からわかる時間、方角を判定してグーグルマップとの照合が行われるようです。

実は、太陽光発電所の立地を調べるのに似たようなことをした経験があります。顧客候補である会員を集めたいために物件掲載サイトは会員登録しないと詳細情報を教えてくれません。物件の良否を判断するために、落ち着いて客観情報をじっくり考えたいという性格なので営業攻勢を受けたくありません。そこで公開されている物件の画像と市までの住所から道路パターンを目視で照合して立地を特定して、日当たりや周辺環境を確認していました。結構時間がかかりますが、6割ぐらいは分かりました。

こうした経験もあってOSINTをAIを使って短時間で結果をだせる可能性はあるのではないかということを考えていました。こうした知的興味を満足させるために、半分はボケ防止のためsynologyでpythonを検討しました。

DS218応用できないか

上で説明したようにブログ開設のためDS218を導入しています。これにはWordpress、apache、MariaDBが導入されています。データベースであるMariaDBはそのまま使い、pythonをDjangoパッケージで使用できないか検討しました。

Python利用の条件調査

pythonは標準パッケージで導入可能です。これ以外にPythonを利用するために必要な条件を調べました。Pythonパッケージの構造、考え方は下記を参照させていただきました。

Pythonのモジュール、パッケージ、ライブラリ徹底解説! – AI-interのPython3入門 (ai-inter1.com)

https://docs.python.org/ja/3/library/index.html

webでの動作環境はapache(Nginx)+Django+MariaDBで行けるようですね。下記を参考にさせていただきました。

【Django入門】apacheを使ってサーバーを動かそう | 侍エンジニアブログ (sejuku.net)

ここでwebサーバー側とのインターフェース仕様はWSGIで定義されていて、それを利用するモジュールはPython 側にmod_wsgiが必要とのことです。

mod_wsgiは設定可能か

上記調査からpythonモジュールのmod_wsgiの利用可否を調べます。Python3の設定はwebstationでおこなうようです。

https://kb.synology.com/ja-jp/DSM/tutorial/Set_up_Python_virtual_environment_on_NAS

多くはDockerを入れて仮想環境内で環境を作成されるようですが私のDS218のDMS7.2ではサポートされていないようです。DS218は非力なのでやらないほうがよさそうです。こちらの方が調べて実施されてました。参考にさせていただきました。

https://ysand.myds.me/2022/09/11/synology-dsm7-python-pip/

必要モジュールはwebstation定義で導入するようですのでそれをやってみます。MariaDBとのインターフェースにはmysqlclientが必要なのでそれを入れてみます。

webstation-スクリプト言語の設定-pythonを指定します。

モジュールを選択します。

参照欄に入れたいモジュール名を指定します。

これで指定したモジュールを保存します。

pkg-configがないためビルドできないというエラーになります。そもそもpkg-configはライブラリ管理用の機能のようなので根本的介入が必要うな感じなのでsynologyでやるべきか疑問ですね。

下記を参照させてもらってDjango環境ではMariaDBとのインターフェース方法はいくつかあるようなので別を選択してみることにしました。

【初めてのDjango】mysqlclientとは?Django Appの作成で遭遇したエラー3件の解決方法! – Qiita

DjangoでMySQLを使うためには – Qiita

pysqlを選択することにしてDjango導入後にドライバとしてこちらから設定してみます。Django にはpythonの仮想環境とプロジェクト、アプリまで定義が必要ですが失敗しますのでここで説明しません。最後の確認コマンド

python manage.py migrate

この結果がDB古いで終わりますがsynologyは現時点でこのレベルのDBを配布していません。また、どこかの不整合だとしてもこれ以側に介入するとこのHPが危ないのでここでやめにします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です