磯野家、ネット断絶!?Project N.O.M.A.Dで挑む「オフライン生存戦略」の巻
Crosstalk-Solutions/project-nomad
カツオ
「ねえねえ姉さん!もし明日、磯野家のネットが突然止まって、GoogleもChatGPTも使えなくなったらどうする?」
サザエ
「あらやだカツオ、そんなの波平さんに『バカモン!』って言われるより恐ろしいわよ!献立も調べられないし、迷子になっちゃうわ!」
カツオ
「そこでこれだよ!Project N.O.M.A.D!これはね、ネットが一切ない『オフライン』環境でも、AIや地図、サバイバル知識をまるごと持ち運べる『自給自足コンピュータ』なんだ。エンジニアの間で今、話題なんだよ!」
マスオ
「おっ、カツオくん。エンジニア視点で見ると、これは単なる『備蓄』じゃないんだよ。技術的に面白いポイントが3つあるんだ。」
完全ローカルLLM(AI)
クラウドを介さず、自分のハードウェア上でAIを動かすんだ。プライバシーもバッチリだし、通信代もかからない。
コンテナ化による移植性
Dockerを使って環境が固められているから、どんなマシンでも同じツールセットをすぐ動かせる。
ナレッジのパッケージング
Wikipediaの全データやOpenStreetMapを丸ごとローカルに持つことで、検索エンジンへの依存をゼロにしているんだ。
サザエ
「難しそうだけど、私にもできるかしら?」
カツオ
「まずは、Dockerが動くPC(Raspberry Piや古いノートPCでもOK!)を用意して、このコマンドを打つだけさ!」
# プロジェクトをクローンして
git clone https://github.com/Crosstalk-Solutions/project-nomad.git
# ディレクトリに移動!
cd project-nomad
# 魔法の呪文で起動!
docker-compose up -d
マスオ
「これで、ブラウザから localhost:8080 にアクセスすれば、自分専用のオフライン司令塔が立ち上がるんだよ。サザエさん、簡単だろう?」
タマ
「ニャーン(使い方は?)」
カツオ
「例えば、内蔵されているローカルAI(Ollamaなど)を使って、サバイバル術を聞くコードはこんな感じになるよ。」
import requests
# ローカルで動いているAIサーバーにリクエスト
def ask_nomad(question):
url = "http://localhost:11434/api/generate" # Ollamaの例
payload = {
"model": "llama3", # Project NOMADで設定したモデル
"prompt": question,
"stream": False
}
response = requests.post(url, json=payload)
return response.json().get('response')
# 実際に聞いてみる
print(ask_nomad("電気が止まったとき、冷蔵庫の魚(カツオ)を長持ちさせる方法は?"))
波平
「バカモン!ネットに頼り切りの生活は危ういと思っていたが……これなら安心だな。カツオ、お前も宿題の答えをオフラインで探すんじゃないぞ!」
カツオ
「えへへ、バレちゃった? でもこれで、もしもの時も磯野家は安泰だね!」
サザエ
「いかがだったかしら?ネットがなくても知恵と技術で乗り切る、エンジニアのサバイバル術!ワクワクするわね。」
「来週もまた見てくださいね!ンガ、グ、グ!」