先までは、"愛記"についての記載で、どのようにブロックチェーンSNSに組み込んで実装していけばよいのか、概念的なところからアプローチ方法を記載していった。大まかな概念としてはひとまず終えた。次は、ブロックチェーンの概念設計といえるところまで、基本設計書に着手できるようなところまで、概念を具体化していきたい。
◆マッチングについて③
さて、マッチングについてだが、前回は、マップ上にニーズを表示させる方法について記載した。愛の行動をしたいと思っても、相手がいないとできない。どのような表示方法があるか、システム設計の目線で前回は示した。今回は、ニーズをあげる方法、高齢者がヘルプを出す方法、をどうやってやるか、画面設計をどうするか、について記載したい。
■愛の行動がほしい場合
ブロックチェーンSNS上のメイン画面は投稿の画面だ。日々の投稿(Facebookの投稿とおなじ)がタイムラインに流れていく。それを”いいね!”する人もいれば、”シェア”する人もいるのだろう。まるでFacebookであるかのように、投稿もし、ページもつくり、公開チームもつくり、メッセンジャーでやりとりするならFacebookと変わらない。何が変わるのか?というと、そこで通貨である”愛貨”がやりとりされる場合もあるということだ。
例えば、高齢者の方が助けを求めるシーンも多いだろう。高齢者の助けに応じて、誰かが手を貸して助けるのだろう。寝たきりになると状況は異なるが、外に杖をついてでも出て行けるとか、車椅子で出て行けるというような場合、社会でさまざまな困難に出会う。IT化された社会で、何をどう操作したら良いのかわからないだろうし、カフェやコンビニで電子マネーや仮想通貨で決済するようになればサッパリわからないだろう。困り事だらけなのだ。
その時、道行く人々が親切に教えてくれれば良いのだが、都度というわけにはいかないだろう。これが、都度に近い頻度で道行く人々が親切にしてくれる仕組みが構築できるとしたら、それは素晴らしい仕組みだろう。そんなことができるのか?出来うると答えたい。それがブロックチェーンSNSのヘルプ投稿というものだ。仕組みとしては、困った人が助けて!とヘルプを投稿すると、その投稿を見た人が助けに来て、”愛貨”をやりとりするという仕組みだ。
問題は、ヘルプ投稿をタイムラインで流してしまうと、すぐに流れてしまって閲覧する人が限られてしまう。そこで、別画面にてペルプ投稿という画面を作成したい。この画面では従来のボランティア募集のような細かい条件を入力せねばならないような画面では無い。これでは、高齢者は無理だろう。
困っていることを端的に言葉で生成AIに話しかければ、自動でヘルプ投稿がなされるような仕組みだ。つまり、困っている行動1つ1つに対しての投稿というわけだ。画面としては、ヘルプ投稿!などのような簡易ボタンを用意しておき、それを押せば、生成AIと会話でき、そのまま内容をヘルプ投稿としてアップしてくれるというものだ。
まずは、音声をテキストに変換するために、GoogleのSpeech-to-Text APIやMicrosoftのAzure Speech Serviceなどの音声認識APIを使用することが考えられる。次に、生成されたテキストを解析して、困っている内容を抽出する。最後に、抽出された情報を使用して、適切なフォーマットでヘルプリクエストを投稿するロジックを実装する。まずは、どのように進めるかを明確にするために、具体的なステップを示してみよう。以下は、簡単な例だが、このプロセスを開始するための手順である。
- 音声認識APIをセットアップして、音声をテキストに変換します。
- 変換されたテキストを解析して、問題の要約を作成します。
- 要約を使用して、適切なフォーマットでヘルプリクエストを生成します。
- ヘルプリクエストを投稿するための方法を設定します。
このプロセスを開始するには、まずはじめに音声認識APIをセットアップし、サンプルテキストを生成して、解析とリクエストの生成の部分を実装する。それから、投稿の方法を考えることができる。以下のコードは仮想的なものであり、実際のAPIキーなどの詳細は伏せていること、ご容赦願う。
from google.cloud import speech_v1p1beta1 as speech
from google.cloud import language_v1
import requests
import json
# Google CloudプロジェクトIDと認証キーを設定
project_id = "your-project-id"
api_key = "your-api-key"
# 音声ファイルのパス
audio_file_path = "path-to-your-audio-file"
# Google Speech-to-Text APIを使用して音声をテキストに変換
client = speech.SpeechClient()
config = {
"language_code": "ja-JP"
}
with open(audio_file_path, "rb") as audio_file:
content = audio_file.read()
audio = {"content": content}
response = client.recognize(config=config, audio=audio)
text = response.results[0].alternatives[0].transcript
# Google Natural Language APIを使用してテキストを解析
client = language_v1.LanguageServiceClient()
document = {"content": text, "type": language_v1.Document.Type.PLAIN_TEXT}
response = client.analyze_entities(request={'document': document})
entities = response.entities
# 問題の要約を作成
summary = ""
for entity in entities:
summary += entity.name + " "
# ヘルプリクエストを生成
help_request = {"summary": summary}
# ヘルプリクエストを投稿
url = "your-help-api-endpoint"
headers = {"Content-Type": "application/json", "Authorization": "Bearer " + api_key}
response = requests.post(url, data=json.dumps(help_request), headers=headers)
print("Help request posted successfully.")
このコードは、Google CloudのSpeech-to-Text APIとNatural Language APIを使用している。実際には、適切なAPIキーとプロジェクトIDを使用してもらう。また、ヘルプリクエストを投稿するためのAPIエンドポイントや認証方法は、実際のシステムに合わせて適切に設定してもらう。
こうして自動でヘルプ投稿されたものを閲覧することは可能だ。もちろん、高齢者は閲覧操作は難しいかもしれないが、スマートフォン操作に慣れた人や若者であれば、下記のとおり閲覧ができる。なお、下記の画面から、投稿内容を修正することもできる。画面デザインのイメージは下記のとおりだ。
画面デザイン:
-
ヘルプ投稿フォーム:
- タイトル: [ヘルプの種類や要約]
- 内容: [ヘルプの詳細情報や要望]
- 画像添付: [写真やスクリーンショットなどがあれば添付]
- ボタン: [投稿する]
-
ヘルプ投稿一覧:
- タイトルと要約: [各ヘルプ投稿のタイトルや要約を表示]
- Map上に反映:[各ヘルプ投稿の場所をMap上に表示]
- 投稿者の情報: [ユーザー名やアイコンを表示]
- タイムスタンプ: [投稿された日時を表示]
- ヘルプの内容: [簡潔な説明や詳細情報を表示]
- ヘルプに対する反応: [いいねやコメントの数を表示]
- ボタン: [コメントする、いいねする]
-
ヘルプの詳細表示:
- タイトルと要約: [詳細な情報を表示]
- 投稿者の情報: [ユーザー名やアイコンを表示]
- タイムスタンプ: [投稿された日時を表示]
- ヘルプの内容: [詳細な説明や要望を表示]
- 画像: [添付された画像があれば表示]
- ヘルプに対する反応: [いいねやコメントの数を表示]
- ボタン: [コメントする、いいねする]
-
ヘルプへのコメント:
- コメントフォーム: [コメントを入力するフォーム]
- ボタン: [コメントする]
-
プロフィール画面:
- ユーザー名とアイコン: [ユーザーの基本情報]
- ヘルプ投稿履歴: [過去のヘルプ投稿一覧]
他の誰が、どこで、という条件は自動的に投稿に反映される。誰がというのはユーザー名が出てしまうし、どこでというのもGPSで現在位置をMAP上に表示されることになる。
Google マップを利用して上記の機能を実現することができる。
なお、上記はヘルプ投稿、つまりは直ぐにでも欲しいという”顕在ニーズ”だ。一方、マッチングという意味では、以前に記載したような自分に近しい人や自分と同じようなレベルの人などの”潜在ニーズ”もマッチングできる。両方のニーズを表示させることが出来るということなら、マッチングは促進されていくのではないかと考えている。
・ヘルプ投稿管理
一方、ヘルプ投稿の内容はシンプルである必要がある。なお、投稿の有効期間は1時間だ。1時間したら自動で消去される仕組みなので、リアルタイムの困り事一覧というわけだ。
・石川太郎さん、現在地:加賀市大聖寺東町1丁目65、ヘルプ内容:お金を払いたいが財布を家に忘れてきた、誰か助けてくれませんか。
・加賀花子さん、現在地:加賀市分校町フ28-1、ヘルプ内容:携帯電話の充電が切れて困っている、誰か助けてくれませんか。
・大聖節子さん、現在地:石川県加賀市中代町ホ9-5、ヘルプ内容:タクシーを呼んで欲しい。
こんな感じだ。これらがヘルプ投稿画面にずらりとリアルタイムで並んでいくというイメージだ。近くにいる人がこのヘルプ投稿を見たら近づいてどんな人がどんな様子で困っているのだろう?と確認するのだ。GPSがONになっていれば、見ず知らずの人でもこの人か?というのが近づいていけばわかるだろう。
困っている人を特定できれば、近づいてきた人は話しかける。「どうされました?お困りですか?」という具合に。すると、ヘルプ投稿をした人は、おお!来た!と嬉しくなって、困り事の内容を話すだろう。そして、近づいてきた人は助けるのだろう。そして最後に、愛貨のやりとりをすることになる。
つまり、近づいてきた人のメリットとしては、愛貨がやりとりできるというメリットだ。愛貨が溜まりすぎて愛の行動をしたい!と思っていても、近くに愛貨を受け取ってくれる人がいない場合、このようなヘルプ投稿に反応することは、愛貨を減らすチャンスだ。喜んで愛の行動をしに自ら向かうということだ。
このような仕組みはとても興味深い。従来であれば、ボランティアをわざわざ募集して、ルールを決めて、その場所にいってもらい、説明して、ようやく行動が開始できる。しかしブロックチェーンSNSでのヘルプ投稿であれば、近くにいる人が、たまたまヘルプ投稿に反応して、愛の行動をするという仕組みだ。これであれば、市町村における全住民が助け合う仕組みになるということだ。
ヘルプ投稿一覧も、市町村における愛貨ゆえに、加賀市なら加賀市のヘルプ投稿しか出てこないので、すぐ近くに困っている人がずらりと居るということになる。遠いと行く気になれないが、目の前にいると、助けたくなるかもしれない。この近くにいる!ということが重要なのだ。こうして、愛の行動がお互いになされる仕組みが出来上がる。これはまさに、地域活性化の本質となりえる。
いかがであろうか、これがブロックチェーンSNSの基本概念だ。ヘルプ投稿という画面が意外に地域活性化の本質になり得るということが理解出来るだろう。とても重要な仕組みなのだ。