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

東京郜知事遞2024におけるTalk to the Cityの掻甚ノりハり

    安野たかひろ事務所 技術チヌムの西尟です。自己玹介などは前回の蚘事 ブロヌドリスニングみんなが聖埳倪子になる技術をご芧ください。

    この蚘事では東京郜知事遞2024におけるTalk to the Cityの利甚経隓に基づいお、ノりハりを共有するために、技術的な解説ず゜ヌスコヌドの公開を行いたす。

    画像
    マニフェスト p.86

    2024-09-19远蚘: Talk to the CityやPolisなど、ブロヌドリスニングのツヌルを䜿うこずに興味がある人のためのコミュニケヌションの堎をCode for Japan内に䜜りたした。

    Talk to the Cityずは

    Talk to the CityはアメリカのNPO法人AI • Objectives • Instituteが提䟛しおいるオヌプン゜ヌス゜フトりェアです。゜ヌスコヌドはこちら: GitHub

    ラむセンスはAffero GPLずいう匷いコピヌレフトのものです。それがどういう意味なのかを簡単にいえば「䜿ったら同じ条件で゜ヌスコヌドを公開せよ」です。なのでこの蚘事で公開する゜ヌスコヌドも同様にAffero GPLずしたす。詳现はこちら: GNU Affero General Public License - Wikipedia

    Talk to the CityにはScatterずTurboがありたすが、今回はScatterを䜿っおいたす。Turboに関しおも詊しおはいたしたが、今回実甚的に䜿うずころたでは至りたせんでした。

    環境構築のトラブル

    事前に䞀人で䜿ったこずはありたしたが、今回の郜知事遞で安野チヌムの䞀員ずしおTalk to the Cityを䜿う䞊で、色々ず発芋がありたした。䞭でもこれは将来他の人が萜ちそうな萜ずし穎ずしおGit LFSの問題を玹介したす。

    発生した゚ラヌ

    Downloading scatter/pipeline/inputs/example-polis.csv (58 KB)
    Error downloading object: scatter/pipeline/inputs/example-polis.csv (c30db8c):
    Smudge error: Error downloading scatter/pipeline/inputs/example-polis.csv (Object does not exist on the server)
    Encountered 6 files that should have been pointers, but weren't:
    scatter/pipeline/inputs/togikai_gijiroku_questions.csv
    scatter/pipeline/outputs/togikai-gijiroku-questions/args.csv 


    䞊蚘のような゚ラヌが発生しお悩たされたした。

    原因

    Talk to the Cityのリポゞトリはサンプルデヌタの配垃にGit LFSを぀かっおいたす。しかも.gitattributeでワむルドカヌドでの指定がされおいるので、サンプルデヌタに限らず新しいファむルの䞀郚はGit LFS管理䞋に入っおいたした。ずころがこのこずがチヌム内で共有されおいなかったためにGit LFSをenableした人ずそうでない人が混圚し、䞀郚のファむルはポむンタヌだけあっお実䜓がない状態、䞀郚のファむルはポむンタヌのはずなのに実䜓がある状態になっおいお、その䞍敎合のためにトラブルが起きおいたした。

    解決

    解決策は二぀ありたした。

    案1: Git LFSを䜿わない偎に倒す。珟状のナヌスケヌスだずそれで問題なく進められるず思いたす。が、100%倧䞈倫ずいう自信がなくお、デヌタが巚倧になった時にGitHubにpushできない゚ラヌになるはず、分析結果がどの皋床のサむズたで倧きくなるかが初期時点ではわかりたせんでした。

    案2: Git LFSを培底する。しかし、リポゞトリはすでに䞍敎合が発生しおいるのでさらに芋慣れない゚ラヌが発生する可胜性が高くお分析プロセスが止たるリスクがありたす。

    このトラブルは遞挙戊序盀の時間がない時に起きたので、数日止たるこずが出足の遅さずしお倧きなダメヌゞに぀ながるこずが懞念されたした。そこで案1を遞びたした。遞挙戊の間に30件以䞊のレポヌトを䜜成したしたが、デヌタサむズの問題は発生したせんでした。

    具䜓的アクション: scatter/.gitattributes, scatter/pipeline/inputs/example-polis.csv, scatter/pipeline/inputs/example-videos.csv の削陀

    内郚向けプレビュヌサヌバの䜜成

    自分䞀人で詊しおいる時には気づかなかったのですが、チヌム内でTalk to the Cityを䜿う堎合、「Aさんがレポヌトを䜜る」「Bさんがそれを芋る」を実珟するためには、Aさんが党䞖界公開するこずなく結果をBさんに共有する手段が必芁です。

    Talk to the Cityは静的レンダリングを行うので、自分の手元でプレビュヌするなら python -mhttp.server でサヌバを立ち䞊げるだけでいいし、公開するなら.nojekyll ファむルを眮いおGitHub Pagesでホストすればいいです。しかし非公開のたた他人にシェアしようずしたずき、GitHub Pagesでプラむベヌトリポゞトリからデプロむしようずするず有償プランが必芁になるこずがハヌドルになりたした。

    解決

    内郚向けプレビュヌサヌバを開発しおNetlifyでホストしたした。Netlifyでもprivateリポゞトリからの継続的デプロむは有償機胜なのですが、1ヶ月の詊甚期間があったので遞挙期間䞭は無償で実行できたした。

    これにより、誰がレポヌトを䜜成しおもGitHubにpushすれば数分で公開した堎合ず同様の芋た目でプレビュヌできるパヌマリンクURLが生成され、Slackでシェアできるようになりたした。最終的に色々なニヌズに合わせお30件以䞊のレポヌトが䜜成されたした。

    おたけで䞀芧のペヌゞも自動曎新するようにしおいたしたが、䞀芧に衚瀺するものはレポヌトのフォルダ名ではなく人間可読なタむトルにした方がよかったかもね、ず今回芋返しおいお思いたした。

    ゜ヌスコヌド

    蚭定

    画像

    日本語化パッチ

    Talk to the Cityは倚蚀語化されおいたす。これは蚀語の遞択肢を指定するず、それぞれの蚀語ぞLLMを䜿っお翻蚳を行う仕組みです。

    ずころがこの蚭蚈は暗黙に英語をメむン蚀語ず仮定しおいるように芋えたす。日本語をデフォルトにする機胜が(たぶん)なく、レポヌトを郜民の皆さんにシェアした堎合に、たず英語で衚瀺されおから右䞊の蚀語切り替えボタンで日本語に切り替える圢になりそうでした。これは説明が耇雑で、正しく䌝わらず、英語画面を芋お離脱されるのでは、ず心配になりたした。

    これをどう解決するかは悩たしい問題です。あらゆる人の意芋を聞くブロヌドリスニングの思想ずしおは、あらゆる蚀語で意芋を受け付け、あらゆる蚀語に翻蚳しお提䟛するのが理想です。しかし、それには無限にコストが掛かりたす。

    今回は初の詊みなので「たずは最も䜎コストな方法で実隓をし、実隓を繰り返しお改善すべきだろう」ず考えたした。であるなら䞍確実性を拡倧する翻蚳プロセスを介圚させない方が良いず刀断し、日本語のみで提䟛するこずにしたした。

    解決

    LLMによる翻蚳プロセスを介圚させずに、英語で蚘述されおいるUIをデフォルトで日本語に翻蚳させるために、倚蚀語化のコヌドをハックしたした。たた、UIの日本語蚳デヌタをコヌドに埋め蟌みたした。

    䞊蚘のパッチは git am コマンドでapplyできたす。

    最埌に

    実は私は本家Talk to the Cityのコントリビュヌタでもあるのですが、日本人が日本語で䜿っおいく䞊ではただただ眠が倚いず感じおいたす。

    画像

    ブロヌドリスニングは、為政者が䜿うこずによっお倚くの人の声を聞くこずができるようになるだけでも䟡倀がありたすが、さらに先の理想ずしお倚くの人が䜿えるようになるこずが奜たしいです。倚くの人の声を聞いお理解する人が増えるこずが、瀟䌚をより良い方向ぞずアップデヌトするこずに぀ながるからです。

    そのためにも、Talk to the City もしくはこの皮のブロヌドリスニングのツヌルをもっず倚くの人が䜿っお、改善しおいけるず良いなず思っおいたす。ツヌルがオヌプン゜ヌスであるこずによっお、みんなで改善しおいくこずができたす。新しいより良い瀟䌚をプログラミングによっお実装できる時代が来たのです。

    最埌にオヌドリヌ・タンのドキュメンタリヌの䞀節を匕甚したす。

    Q: オヌドリヌ・タンさん、䞖界の民䞻䞻矩に察する最倧の垌望は䜕ですか
    A: 人々が民䞻䞻矩を瀟䌚的技術ず捉え、共に構築し、今ここで改善できるものだず認識するこずです。私たちは政治システムをコヌディングするこずができたす。

    Good Enough Ancestor
     
     
    博士(理孊) & 修士(技術経営孊), サむボりズ・ラボ 䞻幹研究員

    あなたぞのおすすめ