「Enchanted」 を使って iPhone から Ollama にアクセスしてみる
はじめに
なぜか、急にローカルLLMにハマり色々遊んでいます。
私はローカルLLM新参なのでこれまでの状況があまりわかっていませんが、流行っているっぽいので「Ollama」で遊んでいます。
Web UIを使われている方も多いと思うのですが、スマホからできたら楽しいなーと思って調べてたら、iOS向けに配信されている 「Enchanted」 というiPhoneアプリを見つけました。ChatGPTライクなUIで使いやすいです。私は使っていませんが、テキスト読み上げ機能などもあります。
機能の一覧やスクリーンショットは下記から見ていただいた方が早いと思います。
というわけで、このアプリを使って「Ollama」にアクセスしてみると地味にハマった部分があったりしたので、メモします。
「Ollama」はインストール済みの前提で書くので、インストールについては下記の記事が役に立つと思います。
※ OSによって大きな差異はないと思うのですが、私はWindows上でOllamaを動かしているので、コマンドとかはWindows前提のお話しになります。
「Enchanted」の準備
下記からダウンロード/インストールできます。
以上。
「Ollama」の準備
「Ollama」のインストール直後だとモデルがないと思うので、そこから準備します。
> ollama pull llama3
llama3
の部分は適切なモデル名に変えてください。
このコマンドでロードできるモデルは下記に一覧があります。
ここにないモデルの場合はダウンロードした後、Modelfile
というのを書いてコマンドを入力すれば使えます。今回は「Umievo-itr012-Gleipnir-7B」を4bit量子化したものを使わせていただきました。
Modelfile
の書き方例はこんな感じです。
FROM ./Umievo-itr012-Gleipnir-7B_q4_K_M.gguf
PARAMETER temperature 1.0
PARAMETER repeat_penalty 1.2
PARAMETER num_ctx 4096
TEMPLATE """{{ if .System }}{{ .System }} {{ end }}{{ if .Prompt }}USER: {{ .Prompt }} {{ end }}ASSISTANT: {{ .Response }}"""
SYSTEM """あなたはユーザーに親身になり、役立つ、詳細な、丁寧な回答を提供します。"""
PARAMETER stop "USER:"
PARAMETER stop "ASSISTANT:"
PARAMETER stop <s>
PARAMETER stop </s>
Modlefile
を作ったら、下記のコマンドでモデルデータを作ります。
> ollama create モデル名 -f ./Modelfile
今回はこう。
> ollama create Umievo-itr012-Gleipnir-7B_q4_K_M -f ./Modelfile
-f
オプションをつけないと同じディレクトリにあるModlefile
が読み込まれるので、ファイルを明示的に指定する場合は-fオプションをつけてください。
ここで指定するモデル名は後々も出てくるので、わかりやすいものにしておくのをオススメします。
少し時間がかかります。その後確認すれば追加したモデルがリストに表示されるはずです。
> ollama list
NAME ID SIZE MODIFIED
Umievo-itr012-Gleipnir-7B_q4_K_M:latest 809c4cf8b016 4.4 GB 2 hours ago
llama3:latest 365c0bd3c000 4.7 GB 5 hours ago
まずは、手元で試してみます。
> ollama run Umievo-itr012-Gleipnir-7B_q4_K_M
>>> あなたは誰ですか?
私はAIアシスタントの「AnyChat」です。ユーザーに様々な情報や解決方法を提供することが役割です。ご相談事やお悩み、あ
ゆるジャンルの疑問等、気兼ねなくどんなことでもお訊きください。
>>> 明日の夕飯についてアドバイスを下さい
もちろんです!ご家族やお好み、予算等によって異なりますが、これから季節的に旬を迎える食材を取り入れたメニューはいか
でしょうか?
例えば「秋鮭」。脂の乗って美味しい時期を迎えます。簡単に調理できる「ホイル包み焼き」や、子どもさんが喜びそうな「ム
エル」といったレシピはいかがでしょう。
ほかにも秋野菜を使用して作れる「秋野菜のグリル盛り合わせ」や、食欲増進効果のある香辛料「生姜」を使った「豆腐とねぎ
生姜スープ」などもおすすめです。
ご家族全員が喜んでくれそうなメニュー選びに、私たちアシスタントを是非活用してみて下さいね!
大丈夫そうですね、次に行きましょう。
※ なんらかの理由で「Ollama」が落ちていたら下記のコマンドで起動してください
> ollama serve
「Enchanted」で接続してみる
ここまで終わったら「Enchanted」の“Settings”にアドレスを入力して保存を押せばOK……と思っていたのですが、なぜか繋がりません。
「何回も見返したけどアドレスはあってるじゃろーーー???」って、調べてたら下記の記事にたどり着きました。
デフォルトでは 127.0.0.1:11434 で待ち受けされるため、ローカルからのアクセスに制限されます。
なるほど。というわけで環境変数を設定します。環境変数を設定した後は「Ollama」を再起動しておきましょう。
> set OLLAMA_HOST=0.0.0.0
> set OLLAMA_ORIGINS=192.168.10.*
※ 公式のドキュメントには「ngrok」を使う方法が書いてあります。いわゆるトンネリングツール的なやつで、外出先から使ったりとかするときには割と便利なことに気がつきました。
もし、ご興味ある方がいらっしゃったら下記の記事などを参考にどうぞ。静的ドメインにすると楽だと思いますが、そこはセキュリティ的なアレコレとかとのバランスで。
繋がった!
これでiPhoneからも遊べます、やったね!
Discussion