3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Bolt.newを使っていますが、有料プランを思うように使うことができず、歯がゆい思いをしていました。
先日bolt.newのフォークで、ローカル環境で使えるbolt.diyを知りました。
早速リポジトリにアクセスして、試しました。

リポジトリのクローンを作りました。
私は、Windowsの環境で始めたので、Dockerを使い起動しました。

こちらで、Dockerのビルドを始めました。

npm run dockerbuild       # Development build  

こちらのコマンドで、起動しました。

docker-compose --profile development up  # Development 

起動した画面で、LLMのAPIキーを入力する画面になりました。
LLMを選ぶプルダウンメニューの中に、LM Studioの文字があったので、すごいと思いました。
スクリーンショット 2024-12-14 131216.png

ターミナルに、この表示が出ました。

★═══════════════════════════════════════★
app-dev-1  |           B O L T . D I Y                                                                                                                                
app-dev-1  |          ⚡️  Welcome  ⚡️                                                                                                                                 
app-dev-1  | ★═══════════════════════════════════════★                                                                                                                
app-dev-1  |                                                                                                                                                          
app-dev-1  | 📍 Current Commit Version: ****************************                                                                                      
app-dev-1  | ★═══════════════════════════════════════★                                                                                                                
app-dev-1  | [warn] Route discovery/manifest behavior is changing in React Router v7                                                                                  
app-dev-1  | ┃ You can use the `v3_lazyRouteDiscovery` future flag to opt-in early.
app-dev-1  | ┃ -> https://remix.run/docs/en/2.13.1/start/future-flags#v3_lazyRouteDiscovery                                                                           
app-dev-1  | ┗                                                                                                                                                        
app-dev-1  | [warn] Data fetching is changing to a single fetch in React Router v7                                                                                    
app-dev-1  | ┃ You can use the `v3_singleFetch` future flag to opt-in early.
app-dev-1  | ┃ -> https://remix.run/docs/en/2.13.1/start/future-flags#v3_singleFetch
app-dev-1  | ┗
app-dev-1  |   ➜  Local:   http://localhost:5173/
app-dev-1  |   ➜  Network: http://172.19.0.2:5173/

OllamaのLLMは、APIKEYが不要と書かれていました。
でも、ローカルにダウンロードしないといけないようです。
スクリーンショット 2024-12-14 132524.png

Windows版をインストールしました。
https://ollama.com/download

Powershellで、確認しました。

PS C:\Users\hoge> ollama --version
ollama version is 0.5.1

Windowsのタスクバーに、Ollamaのアイコンが表示されますので、そこから起動、停止を操作できます。
スクリーンショット 2024-12-14 161851.png

Modelのダウンロードが、必要です。

PS C:\Users\hoge> ollama run llama2

ヘルプを確認しました。

PS C:\Users\hoge> ollama
Usage:
  ollama [flags]
  ollama [command]

Available Commands:
  serve       Start ollama
  create      Create a model from a Modelfile
  show        Show information for a model
  run         Run a model
  stop        Stop a running model
  pull        Pull a model from a registry
  push        Push a model to a registry
  list        List models
  ps          List running models
  cp          Copy a model
  rm          Remove a model
  help        Help about any command

Flags:
  -h, --help      help for ollama
  -v, --version   Show version information

下記のURLにアクセスすると、起動確認ができます。
http://localhost:11434/
Ollama is running と表示されたら、起動できています。

Modelのインストールできました。

PS C:\Users\hoge> ollama run llama2
pulling manifest
pulling 8934d96d3f08... 100% ▕████████████████████████████████████████████████████████▏ 3.8 GB
pulling 8c17c2ebb0ea... 100% ▕████████████████████████████████████████████████████████▏ 7.0 KB
pulling 7c23fb36d801... 100% ▕████████████████████████████████████████████████████████▏ 4.8 KB
pulling 2e0493f67d0c... 100% ▕████████████████████████████████████████████████████████▏   59 B
pulling fa304d675061... 100% ▕████████████████████████████████████████████████████████▏   91 B
pulling 42ba7f8a01dd... 100% ▕████████████████████████████████████████████████████████▏  557 B
verifying sha256 digest
writing manifest
success
>>> Hello
Hello there! How are you today?

>>> Send a message (/? for help)

Modelのインストールがきたら、そのままターミナルで、会話できました。

Use Ctrl + d or /bye to exit.

で、会話を終えることができます。

Modelのインストールしたら、モデルを選べるようになりました。
image.png

ollama run llama2

でインストールしたモデルは、システムのメモリが18GB必要でした。
私は、12GBしか利用できないので、エラーになってしまいました。

PS C:\Users\hoge> ollama run llama3.2

llama3.2の3Bで、使えました。
私のパソコンは、RAM16GB、RTX3060のノートパソコンなので、VRAMは6GBです。
日本で、指示できました。

スクリーンショット 2024-12-14 161142.png

Google APIKEYで使うことができました

私は、OpenAIなどのAPI KEYの料金の心配があり、API KEYを使いづらい心境です。
それで、無料で使える Google API KEYを試しにセットしたら、Google Gemini2.0 flashで使うことができました。

スクリーンショット 2024-12-14 141859.png

API KEYを得ることができないときは

API KEYを得ることができないときは、llama3.2の3BのModelを使うと良いかもしれないです。
ターミナルでは、なぜか下記のエラーが出ました。

 responseBody: '{"error":"model \\"claude-3-5-sonnet-latest\\" not found, try pulling it first"}',

私は、bolt.diyを起動したままModelを入れ替えていたので、反映されなかったかもしれないです。
でもページを再読み込みしたら、スクリーンショットのようにコードを生成できました。

補足

もし、一度ビルドした後にエラーが出たときは、このコマンドの実行が必要かもしれません。

docker build -t bolt-ai:development .

Docker Scout CLIの新しいバージョンがリリースされているという通知が出たときに、このコマンドの実行が必要になります。

追記

私は、LMStudioを試したいと思いました。
パソコンのメインメモリが16GBということもあり、DockerとLMStudioの両方を起動することに不安でした。
それで、WSLを利用して、bolt.diyを起動して、LMStudioを使おうとしました。
でも、Dockerを使わない形のbolt.diyでは、LM Studioを使うとエラーが出てしまいました。
Githubで、質問しています。
https://github.com/stackblitz-labs/bolt.diy/issues/821

そのためDockerで起動して、LMStudioを使うことにしました。
LMStudioでは、CORSを有効しました。
そして、ローカルネットワークでサービングをONにしました。
発行されたURLを.env.localと.env.exampleの両方に設定して、Dockerのビルドからやり直しました。
そうしたら、LMStudioのModelを使うことができました。
スクリーンショット 2024-12-18 235018.png

今回トークン数が4096では足りないとLMStudioのサーバーでエラーになりましたので、画像のように、トークン数を増やしました。
スクリーンショット 2024-12-18 235721.png

WSLでも使えました

2024年12月19日repositoryのクローンを作り直しました。
そして/root/WSL-boltdiy/bolt.diy/.env.exampleのファイルに、LM Studioのサーバーの「ローカルネットワークでサービング」をONにして発行されたURLをセットしました。
そして、/root/WSL-boltdiy/bolt.diy/.env.localと名前を変えて保存しました。

# Get LMStudio Base URL from LM Studio Developer Console
# Make sure to enable CORS
# Example: http://localhost:1234
LMSTUDIO_API_BASE_URL=http://***.***.***.***:1234

このあと下記のように、インストールのあと起動したら、bolt.diyを使うことができました。

pnpm install  

root@MSI:~/WSL-boltdiy/bolt.diy# pnpm run dev  

> bolt@0.0.3 dev /root/WSL-boltdiy/bolt.diy
> node pre-start.cjs  && remix vite:dev


★═══════════════════════════════════════★
          B O L T . D I Y
         ⚡️  Welcome  ⚡️
★═══════════════════════════════════════★

📍 Current Commit Version: eb6d4353565be31c6e20bfca2c5aea29e4f45b6d
★═══════════════════════════════════════★
 warn  Data fetching is changing to a single fetch in React Router v7
┃ You can use the `v3_singleFetch` future flag to opt-in early.
┃ -> https://remix.run/docs/en/2.13.1/start/future-flags#v3_singleFetch
┗
  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h + enter to show help
WARN Constants Failed to get Ollama models:  fetch failed
10:37:06 AM [vite] ✨ new dependencies optimized: remix-island, ai/react, framer-motion, node:path, jszip, file-saver, @octokit/rest, date-fns, @radix-ui/react-dialog, react-resizable-panels, istextorbinary, diff, @codemirror/autocomplete, @codemirror/commands, @codemirror/language, @codemirror/search, @codemirror/state, @codemirror/view, @radix-ui/react-dropdown-menu, @radix-ui/react-context-menu, react-markdown, @uiw/codemirror-theme-vscode, @codemirror/lang-vue, @codemirror/lang-javascript, @codemirror/lang-html, @codemirror/lang-css, @codemirror/lang-sass, @codemirror/lang-json, @codemirror/lang-markdown, @codemirror/lang-wast, @codemirror/lang-python, @codemirror/lang-cpp, rehype-raw, remark-gfm, rehype-sanitize, unist-util-visit, shiki, @xterm/addon-fit, @xterm/addon-web-links, @xterm/xterm, @radix-ui/react-switch
10:37:06 AM [vite] ✨ optimized dependencies changed. reloading
The file does not exist at "/root/WSL-boltdiy/bolt.diy/node_modules/.vite/deps/chunk-TF2QXV2V.js?v=071e51fb" which is in the optimize deps directory. The dependency might be incompatible with the dep optimizer. Try adding it to `optimizeDeps.exclude`.
WARN Constants Failed to get Ollama models:  fetch failed
WARN Constants Failed to get Ollama models:  fetch failed
usage { promptTokens: NaN, completionTokens: NaN, totalTokens: NaN }
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?